GCC Middle and Back End API Reference
lra_insn_recog_data Struct Reference

#include <lra-int.h>

Collaboration diagram for lra_insn_recog_data:

Data Fields

int icode
rtx insn
struct lra_static_insn_datainsn_static_data
rtx ** operand_loc
rtx ** dup_loc
int * arg_hard_regs
boolalternative_enabled_p
int used_insn_alternative
struct lra_insn_regregs

Detailed Description

LRA internal info about an insn (LRA internal insn representation).


Field Documentation

bool* lra_insn_recog_data::alternative_enabled_p

Alternative enabled for the insn. NULL for debug insns.

Referenced by lra_update_insn_recog_data().

int* lra_insn_recog_data::arg_hard_regs

Number of hard registers implicitly used in given call insn. The value can be NULL or points to array of the hard register numbers ending with a negative value.

rtx** lra_insn_recog_data::dup_loc
int lra_insn_recog_data::icode

The insn code.

rtx lra_insn_recog_data::insn

The insn itself.

Referenced by lra_create_copy().

struct lra_static_insn_data* lra_insn_recog_data::insn_static_data

Common data for insns with the same ICODE. Asm insns (their ICODE is negative) do not share such structures.

rtx** lra_insn_recog_data::operand_loc

Two arrays of size correspondingly equal to the operand and the duplication numbers:

Referenced by process_alt_operands(), push_insns(), uses_hard_regs_p(), and valid_address_p().

struct lra_insn_reg* lra_insn_recog_data::regs

The following member value is always NULL for a debug insn.

Referenced by lra_create_copy().

int lra_insn_recog_data::used_insn_alternative

The alternative should be used for the insn, -1 if invalid, or we should try to use any alternative, or the insn is a debug insn.


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