GCC Middle and Back End API Reference
lra_operand_data Struct Reference

#include <lra-int.h>

Collaboration diagram for lra_operand_data:

Data Fields

const char * constraint
ENUM_BITFIELD(machine_mode)
mode ENUM_BITFIELD(op_type)
type unsigned int 
strict_low: 1
unsigned int is_operator: 1
unsigned int early_clobber: 1
unsigned int is_address: 1

Detailed Description

Static info about each insn operand (common for all insns with the same ICODE). Warning: if the structure definition is changed, the initializer for debug_operand_data in lra.c should be changed too.


Field Documentation

const char* lra_operand_data::constraint

The machine description constraint string of the operand.

Referenced by init_op_alt_data(), and valid_address_p().

unsigned int lra_operand_data::early_clobber

True if there is an early clobber alternative for this operand. This field is set up every time when corresponding operand_alternative in lra_static_insn_data is set up.

Referenced by process_alt_operands().

unsigned int lra_operand_data::is_address

True if the operand is an address.

Referenced by init_op_alt_data().

unsigned int lra_operand_data::is_operator

True if the operand is an operator.

Referenced by init_op_alt_data().

ENUM_BITFIELD (machine_mode) mode ENUM_BITFIELD (op_type) type unsigned int lra_operand_data::strict_low

It is taken only from machine description (which is different from recog_data.operand_mode) and can be of VOIDmode. The type of the operand (in/out/inout). Through if accessed through STRICT_LOW.

Referenced by init_op_alt_data(), and process_alt_operands().


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