GCC Middle and Back End API Reference
|
Data Fields | |
struct queued_debug_insn_change * | next |
rtx | insn |
rtx * | loc |
rtx | new_rtx |
Copy propagation on hard registers for the GNU compiler. Copyright (C) 2000-2013 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/. The following code does forward propagation of hard register copies. The object is to eliminate as many dependencies as possible, so that we have the most scheduling freedom. As a side effect, we also clean up some silly register allocation decisions made by reload. This code may be obsoleted by a new register allocator. DEBUG_INSNs aren't changed right away, as doing so might extend the lifetime of a register and get the DEBUG_INSN subsequently reset. So they are queued instead, and updated only when the register is used in some subsequent real insn before it is set.
rtx queued_debug_insn_change::insn |
rtx* queued_debug_insn_change::loc |
rtx queued_debug_insn_change::new_rtx |
struct queued_debug_insn_change* queued_debug_insn_change::next |