GCC Middle and Back End API Reference
|
#include <sched-int.h>
Data Fields | |
struct _dep_link | back |
struct _dep | dep |
struct _dep_link | forw |
@verbatim
Suppose we have a dependence Y between insn pro1 and con1, where pro1 has additional dependents con0 and con2, and con1 is dependent on additional insns pro0 and pro1:
.con0 pro0 . ^ | . | | . | | . X A . | | . | | . | V .pro1--Y-->con1 . | ^ . | | . | | . Z B . | | . | | . V | .con2 pro2
This is represented using a "dep_node" for each dependence arc, which are connected as follows (diagram is centered around Y which is fully shown; other dep_nodes shown partially):
. +------------+ +--------------+ +------------+ . : dep_node X : | dep_node Y | : dep_node Z : . : : | | : : . : : | | : : . : forw : | forw | : forw : . : +--------+ : | +--------+ | : +--------+ : forw_deps : |dep_link| : | |dep_link| | : |dep_link| : +-----+ : | +----+ | : | | +----+ | | : | +----+ | : |first|----->| |next|-+------+->| |next|-+--+----->| |next|-+--->NULL +-----+ : | +----+ | : | | +----+ | | : | +----+ | : . ^ ^ : | ^ | : | | ^ | | : | | : . | | : | | | : | | | | | : | | : . | +--<----+--+ +--+---<--+--+--+ +--+--+--<---+--+ | : . | : | | | : | | | | | : | | | : . | : | +----+ | : | | +----+ | | : | +----+ | : . | : | |prev| | : | | |prev| | | : | |prev| | : . | : | |next| | : | | |next| | | : | |next| | : . | : | +----+ | : | | +----+ | | : | +----+ | : . | : | | :<-+ | | | |<-+ : | | :<-+ . | : | +----+ | : | | | +----+ | | | : | +----+ | : | . | : | |node|-+----+ | | |node|-+--+--+ : | |node|-+----+ . | : | +----+ | : | | +----+ | | : | +----+ | : . | : | | : | | | | : | | : . | : +--------+ : | +--------+ | : +--------+ : . | : : | | : : . | : SAME pro1 : | +--------+ | : SAME pro1 : . | : DIFF con0 : | |dep | | : DIFF con2 : . | : : | | | | : : . | | | +----+ | | .RTX<------------------------+--+-|pro1| | | .pro1 | | +----+ | | . | | | | . | | +----+ | | .RTX<------------------------+--+-|con1| | | .con1 | | +----+ | | . | | | | | . | | | +----+ | | . | | | |kind| | | . | | | +----+ | | . | : : | | |stat| | | : : . | : DIFF pro0 : | | +----+ | | : DIFF pro2 : . | : SAME con1 : | | | | : SAME con1 : . | : : | +--------+ | : : . | : : | | : : . | : back : | back | : back : . v : +--------+ : | +--------+ | : +--------+ : back_deps : |dep_link| : | |dep_link| | : |dep_link| : +-----+ : | +----+ | : | | +----+ | | : | +----+ | : |first|----->| |next|-+------+->| |next|-+--+----->| |next|-+--->NULL +-----+ : | +----+ | : | | +----+ | | : | +----+ | : . ^ : | ^ | : | | ^ | | : | | : . | : | | | : | | | | | : | | : . +--<----+--+ +--+---<--+--+--+ +--+--+--<---+--+ | : . : | | | : | | | | | : | | | : . : | +----+ | : | | +----+ | | : | +----+ | : . : | |prev| | : | | |prev| | | : | |prev| | : . : | |next| | : | | |next| | | : | |next| | : . : | +----+ | : | | +----+ | | : | +----+ | : . : | | :<-+ | | | |<-+ : | | :<-+ . : | +----+ | : | | | +----+ | | | : | +----+ | : | . : | |node|-+----+ | | |node|-+--+--+ : | |node|-+----+ . : | +----+ | : | | +----+ | | : | +----+ | : . : | | : | | | | : | | : . : +--------+ : | +--------+ | : +--------+ : . : : | | : : . : dep_node A : | dep_node Y | : dep_node B : . +------------+ +--------------+ +------------+
struct _dep_link _dep_node::back |
Backward link.
struct _dep _dep_node::dep |
The dep.
struct _dep_link _dep_node::forw |
Forward link.