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: