Displaying 3 results from an estimated 3 matches for "basicblockinversegraph".
2010 Apr 07
2
[LLVMdev] graph abstraction proposal
...Function& f;
BasicBlockGraph(Function& f) : f(f) {}
typedef BasicBlock NodeType;
...
child_begin(NodeType* node) {return succ_begin(node);}
child_begin(NodeType* node) {return succ_end(node);}
...
};
An invese graph is just another implementation
e.g.
struct BasicBlockInverseGraph
{
...
child_begin(NodeType* node) {return pred_begin(node);}
child_begin(NodeType* node) {return pred_end(node);}
...
};
And finally, the goal of the whole stuff, the simplification of
DominatorTreeBase::recalculate with some pseudocode:
void recalculate(Graph& graph) {...
2010 Apr 08
0
[LLVMdev] graph abstraction proposal
...) : f(f) {}
>
> typedef BasicBlock NodeType;
>
> ...
> child_begin(NodeType* node) {return succ_begin(node);}
> child_begin(NodeType* node) {return succ_end(node);}
>
> ...
> };
>
> An invese graph is just another implementation
> e.g.
> struct BasicBlockInverseGraph
> {
> ...
>
> child_begin(NodeType* node) {return pred_begin(node);}
> child_begin(NodeType* node) {return pred_end(node);}
>
> ...
> };
>
>
>
> And finally, the goal of the whole stuff, the simplification of
> DominatorTreeBase::recalculate with s...
2010 Apr 09
0
[LLVMdev] graph abstraction proposal
...}
>
> typedef BasicBlock NodeType;
>
> ...
> child_begin(NodeType* node) {return succ_begin(node);}
> child_begin(NodeType* node) {return succ_end(node);}
>
> ...
> };
>
> An invese graph is just another implementation
> e.g.
> struct BasicBlockInverseGraph
> {
> ...
>
> child_begin(NodeType* node) {return pred_begin(node);}
> child_begin(NodeType* node) {return pred_end(node);}
>
> ...
> };
But here you also have to implement the inverse. Not for GraphTraits but
for your Graph class.
Like ether I do not u...