GCC Middle and Back End API Reference
_fence Struct Reference

#include <sel-sched-ir.h>

Collaboration diagram for _fence:

Data Fields

insn_t insn
state_t state
int cycle
int cycle_issued_insns
ilist_t bnds
deps_t dc
tc_t tc
vec< rtx, va_gc > * executing_insns
int * ready_ticks
int ready_ticks_size
rtx last_scheduled_insn
int issue_more
rtx sched_next
BOOL_BITFIELD processed_p: 1
BOOL_BITFIELD scheduled_p: 1
BOOL_BITFIELD starts_cycle_p: 1
BOOL_BITFIELD after_stall_p: 1

Detailed Description

   Fence information.  A fence represents current scheduling point and also
   blocks code motion through it when pipelining.  

Field Documentation

BOOL_BITFIELD _fence::after_stall_p
     True when the next insn scheduled here would be scheduled after a stall.  
ilist_t _fence::bnds
     At the end of fill_insns () this field holds the list of the instructions
     that are inner boundaries of the scheduled parallel group.  
int _fence::cycle
     Current cycle that is being scheduled on this fence.  
int _fence::cycle_issued_insns
     Number of insns that were scheduled on the current cycle.
     This information has to be local to a fence.  
deps_t _fence::dc
     Deps context at this fence.  It is used to model dependencies at the
     fence so that insn ticks can be properly evaluated.  
vec<rtx, va_gc>* _fence::executing_insns
     A vector of insns that are scheduled but not yet completed.  
insn_t _fence::insn
     Insn before which we gather an instruction group.
int _fence::issue_more
     The last value of can_issue_more variable on this fence.  
rtx _fence::last_scheduled_insn
     Insn, which has been scheduled last on this fence.  
BOOL_BITFIELD _fence::processed_p
     True if fill_insns processed this fence.  
int* _fence::ready_ticks
     A vector indexed by UIDs that caches the earliest cycle on which
     an insn can be scheduled on this fence.  
int _fence::ready_ticks_size
     Its size.  
rtx _fence::sched_next
     If non-NULL force the next scheduled insn to be SCHED_NEXT.  
BOOL_BITFIELD _fence::scheduled_p
     True if fill_insns actually scheduled something on this fence.  
BOOL_BITFIELD _fence::starts_cycle_p
     True when the next insn scheduled here would start a cycle.  
state_t _fence::state
     Modeled state of the processor pipeline.  
tc_t _fence::tc
     Target context at this fence.  Used to save and load any local target
     scheduling information when changing fences.  

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