GCC Middle and Back End API Reference
_dep_node Struct Reference

#include <sched-int.h>

Collaboration diagram for _dep_node:

Data Fields

struct _dep_link back
struct _dep dep
struct _dep_link forw

Detailed Description

@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 : . +------------+ +--------------+ +------------+


Field Documentation

struct _dep_link _dep_node::back
     Backward link.  
struct _dep _dep_node::dep
     The dep.  
struct _dep_link _dep_node::forw
     Forward link.  

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