GCC Middle and Back End API Reference
|
#include <lra-int.h>
Data Fields | |
struct lra_operand_data * | operand |
int * | dup_num |
int | commutative |
char | n_operands |
char | n_dups |
char | n_alternatives |
struct lra_insn_reg * | hard_regs |
struct operand_alternative * | operand_alternative |
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.
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 |
Referenced by lra_update_insn_recog_data().
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().