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_insninsn
 
rtxloc
 
rtx new_rtx
 

Detailed Description

Copy propagation on hard registers for the GNU compiler.
Copyright (C) 2000-2024 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

◆ insn

◆ loc

rtx* queued_debug_insn_change::loc

◆ new_rtx

rtx queued_debug_insn_change::new_rtx

◆ next

struct queued_debug_insn_change* queued_debug_insn_change::next

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