GCC Middle and Back End API Reference
queued_debug_insn_change Struct Reference
Collaboration diagram for queued_debug_insn_change:

Data Fields

struct queued_debug_insn_changenext
rtx insn
rtxloc
rtx new_rtx

Detailed Description

   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.  

Field Documentation

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

The documentation for this struct was generated from the following file: