[LLVMdev] Walking all the predecessors for a basic block

Prabhat Kumar Saraswat prabhat.saraswat at gmail.com
Tue Jan 22 06:11:07 PST 2008


Hi all,

 Is there a way to walk through ALL the predecessors of a basic block
in a CFG. I tried to iterate over the preds using this method

 for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++I) {
 BasicBlock *PredBB = *PI;
 }

but this only gives the immediate predecessors for a basic block.

For example, in this sample control flow graph.

entry -> bb1 -> bb2 -> bb4 -> return
                   |        |
                   bb3 <-|


walking over the predecessors for bb2 only gives bb3 and bb1.. while i
need something like bb3 bb1 and return (i.e. walking till the root of
the CFG)

Any Ideas ?


Regards
Prabhat



More information about the llvm-dev mailing list