GCC Middle and Back End API Reference
_haifa_insn_data Struct Reference

#include <sched-int.h>

Collaboration diagram for _haifa_insn_data:

Data Fields

int luid
int priority
int tick
int exact_tick
int inter_tick
int tick_estimate
int queue_index
short cost
signed char priority_status
unsigned int fed_by_spec_load: 1
unsigned int is_load_insn: 1
unsigned int feeds_backtrack_insn: 1
unsigned int shadow_p: 1
unsigned int must_recompute_spec: 1
ds_t todo_spec
ds_t done_spec
ds_t check_spec
basic_block recovery_block
rtx orig_pat
rtx predicated_pat
struct reg_pressure_datareg_pressure
int * max_reg_pressure
struct reg_use_datareg_use_list
struct reg_set_datareg_set_list
int reg_pressure_excess_cost_change
int model_index

Field Documentation

ds_t _haifa_insn_data::check_spec
     What speculations are checked by this instruction.  
short _haifa_insn_data::cost
ds_t _haifa_insn_data::done_spec
     What speculations were already applied.  
int _haifa_insn_data::exact_tick
     For insns that are scheduled at a fixed difference from another,
     this records the tick in which they must be ready.  
unsigned int _haifa_insn_data::fed_by_spec_load
     Set if there's DEF-USE dependence between some speculatively
     moved load insn and this one.  
unsigned int _haifa_insn_data::feeds_backtrack_insn
     Nonzero if this insn has negative-cost forward dependencies against
     an already scheduled insn.  
int _haifa_insn_data::inter_tick
     INTER_TICK is used to adjust INSN_TICKs of instructions from the
     subsequent blocks in a region.  
unsigned int _haifa_insn_data::is_load_insn
int _haifa_insn_data::luid
     We can't place 'struct _deps_list' into h_i_d instead of deps_list_t
     because when h_i_d extends, addresses of the deps_list->first
     change without updating deps_list->first->next->prev_nextp.  
     Logical uid gives the original ordering of the insns.  
int* _haifa_insn_data::max_reg_pressure
     The following array contains maximal reg pressure between last
     scheduled insn and given insn.  There is an element for each
     pressure class of pseudos referenced in insns.  This info updated
     after scheduling each insn for each insn between the two
     mentioned insns.  
int _haifa_insn_data::model_index
unsigned int _haifa_insn_data::must_recompute_spec
     Used internally in unschedule_insns_until to mark insns that must have
     their TODO_SPEC recomputed.  
rtx _haifa_insn_data::orig_pat
     Original pattern of the instruction.  
rtx _haifa_insn_data::predicated_pat
     For insns with DEP_CONTROL dependencies, the predicated pattern if it
     was ever successfully constructed.  
int _haifa_insn_data::priority
     A priority for each insn.  
signed char _haifa_insn_data::priority_status
     '> 0' if priority is valid,
     '== 0' if priority was not yet computed,
     '< 0' if priority in invalid and should be recomputed.  
int _haifa_insn_data::queue_index
     See comment on QUEUE_INDEX macro in haifa-sched.c.  
basic_block _haifa_insn_data::recovery_block
     Recovery block for speculation checks.  
struct reg_pressure_data* _haifa_insn_data::reg_pressure
     The following array contains info how the insn increases register
     pressure.  There is an element for each cover class of pseudos
     referenced in insns.  
int _haifa_insn_data::reg_pressure_excess_cost_change
     Info about how scheduling the insn changes cost of register
     pressure excess (between source and target).  
struct reg_set_data* _haifa_insn_data::reg_set_list
     The following list contains info about set pseudos and hard
     registers available for allocation.  
struct reg_use_data* _haifa_insn_data::reg_use_list
     The following list contains info about used pseudos and hard
     registers available for allocation.  
unsigned int _haifa_insn_data::shadow_p
     Nonzero if this insn is a shadow of another, scheduled after a fixed
     delay.  We only emit shadows at the end of a cycle, with no other
     real insns following them.  
int _haifa_insn_data::tick
     The minimum clock tick at which the insn becomes ready.  This is
     used to note timing constraints for the insns in the pending list.  
int _haifa_insn_data::tick_estimate
     Used temporarily to estimate an INSN_TICK value for an insn given
     current knowledge.  
ds_t _haifa_insn_data::todo_spec
     What speculations are necessary to apply to schedule the instruction.  

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