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

Data Fields

int check
int reloads_num
int calls_num
bool after_p
rtx insns

Detailed Description

   Info about last usage of registers in EBB to do inheritance/split
   transformation.  Inheritance transformation is done from a spilled
   pseudo and split transformations from a hard register or a pseudo
   assigned to a hard register.  

Field Documentation

bool usage_insns::after_p
     It can be true only for splitting.  And it means that the restore
     insn should be put after insn given by the following member.  

Referenced by lra_constraints().

int usage_insns::calls_num
     Value of global reloads_nums at the last insn in INSNS.  

Referenced by lra_constraints().

int usage_insns::check
     If the value is equal to CURR_USAGE_INSNS_CHECK, then the member
     value INSNS is valid.  The insns is chain of optional debug insns
     and a finishing non-debug insn using the corresponding reg.  The
     value is also used to mark the registers which are set up in the
     current insn.  The negated insn uid is used for this.  

Referenced by lra_constraints().

rtx usage_insns::insns
     Next insns in the current EBB which use the original reg and the
     original reg value is not changed between the current insn and
     the next insns.  In order words, e.g. for inheritance, if we need
     to use the original reg value again in the next insns we can try
     to use the value in a hard register from a reload insn of the
     current insn.  

Referenced by lra_constraints().

int usage_insns::reloads_num
     Value of global reloads_num at the last insn in INSNS.  

Referenced by lra_constraints().

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