GCC Middle and Back End API Reference
insn_chain Struct Reference

#include <reload.h>

Collaboration diagram for insn_chain:

Data Fields

struct insn_chainnext
struct insn_chainprev
struct insn_chainnext_need_reload
rtx insn
int block
unsigned int need_reload:1
unsigned int need_operand_change:1
unsigned int need_elim:1
unsigned int is_caller_save_insn:1
bitmap_head live_throughout
bitmap_head dead_or_set
struct reloadrld
int n_reloads
HARD_REG_SET used_spill_regs

Detailed Description

   This structure describes instructions which are relevant for reload.
   Apart from all regular insns, this also includes CODE_LABELs, since they
   must be examined for register elimination.  

Field Documentation

int insn_chain::block
     The basic block this insn is in.  
rtx insn_chain::insn
     The rtx of the insn.  

Referenced by do_output_reload(), maybe_fix_stack_asms(), and saved_hard_reg_compare_func().

unsigned int insn_chain::is_caller_save_insn
     Nonzero if this insn was inserted by perform_caller_saves.  
bitmap_head insn_chain::live_throughout
     Register life information: record all live hard registers, and
     all live pseudos that have a hard register.  This set also
     contains pseudos spilled by IRA.  

Referenced by save_call_clobbered_regs(), and saved_hard_reg_compare_func().

int insn_chain::n_reloads

Referenced by maybe_fix_stack_asms().

unsigned int insn_chain::need_elim
     Nonzero if eliminate_regs_in_insn said it requires eliminations.  

Referenced by maybe_fix_stack_asms(), and spill_hard_reg().

unsigned int insn_chain::need_operand_change
     Nonzero if find_reloads needs to be run during reload_as_needed to
     perform modifications on any operands.  

Referenced by maybe_fix_stack_asms().

unsigned int insn_chain::need_reload
     Nonzero if find_reloads said the insn requires reloading.  

Referenced by maybe_fix_stack_asms().

struct insn_chain* insn_chain::next
     Links to the neighbor instructions.  

Referenced by maybe_fix_stack_asms(), and saved_hard_reg_compare_func().

struct insn_chain* insn_chain::next_need_reload
     Link through a chains set up by calculate_needs_all_insns, containing
     all insns that need reloading.  

Referenced by maybe_fix_stack_asms().

struct insn_chain * insn_chain::prev

Referenced by maybe_fix_stack_asms().

struct reload* insn_chain::rld
     Copies of the global variables computed by find_reloads.  
HARD_REG_SET insn_chain::used_spill_regs
     Indicates which registers have already been used for spills.  

Referenced by elimination_target_reg_p().

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