GCC Middle and Back End API Reference
_haifa_deps_insn_data Struct Reference

#include <sched-int.h>

Collaboration diagram for _haifa_deps_insn_data:

Data Fields

int dep_count
unsigned int has_internal_dep
deps_list_t hard_back_deps
deps_list_t spec_back_deps
deps_list_t forw_deps
deps_list_t resolved_back_deps
deps_list_t resolved_forw_deps
rtx cond
rtx cond_deps
unsigned int reverse_cond: 1
unsigned int cant_move: 1

Detailed Description

   Indexed by INSN_UID, the collection of all data associated with
   a single instruction.  

Field Documentation

unsigned int _haifa_deps_insn_data::cant_move
     Some insns (e.g. call) are not allowed to move across blocks.  
rtx _haifa_deps_insn_data::cond
     If the insn is conditional (either through COND_EXEC, or because
     it is a conditional branch), this records the condition.  NULL
     for insns that haven't been seen yet or don't have a condition;
     const_true_rtx to mark an insn without a condition, or with a
     condition that has been clobbered by a subsequent insn.  
rtx _haifa_deps_insn_data::cond_deps
     For a conditional insn, a list of insns that could set the condition
     register.  Used when generating control dependencies.  
int _haifa_deps_insn_data::dep_count
     The number of incoming edges in the forward dependency graph.
     As scheduling proceeds, counts are decreased.  An insn moves to
     the ready queue when its counter reaches zero.  
deps_list_t _haifa_deps_insn_data::forw_deps
     A list of insns which depend on the instruction.  Unlike 'back_deps',
     it represents forward dependencies.  
deps_list_t _haifa_deps_insn_data::hard_back_deps
     NB: We can't place 'struct _deps_list' here instead of deps_list_t into
     h_i_d because when h_i_d extends, addresses of the deps_list->first
     change without updating deps_list->first->next->prev_nextp.  Thus
     BACK_DEPS and RESOLVED_BACK_DEPS are allocated on the heap and FORW_DEPS
     list is allocated on the obstack.  
     A list of hard backward dependencies.  The insn is a consumer of all the
     deps mentioned here.  
unsigned int _haifa_deps_insn_data::has_internal_dep
     Nonzero if instruction has internal dependence
     (e.g. add_dependence was invoked with (insn == elem)).  
deps_list_t _haifa_deps_insn_data::resolved_back_deps
     A list of scheduled producers of the instruction.  Links are being moved
     from 'back_deps' to 'resolved_back_deps' while scheduling.  
deps_list_t _haifa_deps_insn_data::resolved_forw_deps
     A list of scheduled consumers of the instruction.  Links are being moved
     from 'forw_deps' to 'resolved_forw_deps' while scheduling to fasten the
     search in 'forw_deps'.  
unsigned int _haifa_deps_insn_data::reverse_cond
     True if the condition in 'cond' should be reversed to get the actual
     condition.  
deps_list_t _haifa_deps_insn_data::spec_back_deps
     A list of speculative (weak) dependencies.  The insn is a consumer of all
     the deps mentioned here.  

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