GCC Middle and Back End API Reference
lra_static_insn_data Struct Reference

#include <lra-int.h>

Collaboration diagram for lra_static_insn_data:

Data Fields

struct lra_operand_dataoperand
int * dup_num
int commutative
char n_operands
char n_dups
char n_alternatives
struct lra_insn_reghard_regs
struct operand_alternativeoperand_alternative

Detailed Description

Static part (common info for insns with the same ICODE) of LRA internal insn info. It exists in at most one exemplar for each non-negative ICODE. There is only one exception. Each asm insn has own structure. Warning: if the structure definition is changed, the initializer for debug_insn_static_data in lra.c should be changed too.


Field Documentation

int lra_static_insn_data::commutative

The number of an operand marked as commutative, -1 otherwise.

int* lra_static_insn_data::dup_num

Each duplication refers to the number of the corresponding operand which is duplicated.

Referenced by lra_emit_move().

struct lra_insn_reg* lra_static_insn_data::hard_regs

Insns in machine description (or clobbers in asm) may contain explicit hard regs which are not operands. The following list describes such hard registers.

char lra_static_insn_data::n_alternatives
char lra_static_insn_data::n_dups

Referenced by lra_emit_move().

char lra_static_insn_data::n_operands

Number of operands, duplications, and alternatives of the insn.

Referenced by push_insns().

struct lra_operand_data* lra_static_insn_data::operand

Static info about each insn operand.

Referenced by init_op_alt_data(), insert_move_for_subreg(), process_alt_operands(), push_insns(), and valid_address_p().

struct operand_alternative* lra_static_insn_data::operand_alternative

Array [n_alternatives][n_operand] of static constraint info for given operand in given alternative. This info can be changed if the target reg info is changed.

Referenced by free_insn_recog_data(), process_alt_operands(), and reg_in_class_p().


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