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: