GCC Middle and Back End API Reference
model_insn_info Struct Reference
Collaboration diagram for model_insn_info:

Data Fields

rtx insn
struct model_insn_infoprev
struct model_insn_infonext
int old_queue
unsigned int model_priority
unsigned int depth
unsigned int alap
int unscheduled_preds

Detailed Description

   Per-instruction information that is used while building the model
   schedule.  Here, "schedule" refers to the model schedule rather
   than the main schedule.  

Field Documentation

unsigned int model_insn_info::alap
     The length of the longest path of dependencies of any kind
     that leads from this instruction.  

Referenced by check_clobbered_conditions(), and model_analyze_insns().

unsigned int model_insn_info::depth
     The length of the longest path of satisfied true dependencies
     that leads to this instruction.  

Referenced by model_analyze_insns(), and model_remove_from_worklist().

unsigned int model_insn_info::model_priority
     The relative importance of an unscheduled instruction.  Higher
     values indicate greater importance.  

Referenced by model_analyze_insns(), model_init_pressure_group(), and model_promote_insn().

int model_insn_info::old_queue
     While constructing the schedule, QUEUE_INDEX describes whether an
     instruction has already been added to the schedule (QUEUE_SCHEDULED),
     is in model_worklist (QUEUE_READY), or neither (QUEUE_NOWHERE).
     old_queue records the value that QUEUE_INDEX had before scheduling
     started, so that we can restore it once the schedule is complete.  

Referenced by check_clobbered_conditions().

struct model_insn_info* model_insn_info::prev
     If this instruction is in model_worklist, these fields link to the
     previous (higher-priority) and next (lower-priority) instructions
     in the list.  

Referenced by setup_insn_max_reg_pressure().

int model_insn_info::unscheduled_preds
     The number of predecessor nodes that must still be scheduled.  

Referenced by check_clobbered_conditions(), and model_init_pressure_group().

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