How to traverse Dominator Tree in pre-order manner

Hi,

Can anyone tell me how to traverse Dominator tree in pre-order manner?

Regards,
Chayan

Chayan Sarkar wrote:

Hi,

Can anyone tell me how to traverse Dominator tree in pre-order manner?
  
In previous versions of LLVM, I believe you could get some sort of Node object from DominatorTree and then use a method to get the children of the Node (and then use a method of the Node to get the BasicBlock held in that Node).

However, I don't see such a method in the doxygen documentation for mainline LLVM.

Does this method still exist? My own code (written for LLVM 2.6) traverses the dominator tree top-down as well, and I'll probably need to port this code to LLVM 2.7 and beyond.

-- John T.

Chayan Sarkar wrote:

Hi,

Can anyone tell me how to traverse Dominator tree in pre-order manner?

In previous versions of LLVM, I believe you could get some sort of Node
object from DominatorTree and then use a method to get the children of
the Node

There is a iterator that can be used to walk children.

(and then use a method of the Node to get the BasicBlock held
in that Node).

This exists. getBlock().

Devang Patel wrote:

  

Chayan Sarkar wrote:
    

Hi,

Can anyone tell me how to traverse Dominator tree in pre-order manner?

In previous versions of LLVM, I believe you could get some sort of Node
object from DominatorTree and then use a method to get the children of
the Node
    
There is a iterator that can be used to walk children.
  
Okay. I think I finally found it in doxygen:

http://llvm.org/doxygen/classllvm_1_1DomTreeNodeBase.html

(and then use a method of the Node to get the BasicBlock held
in that Node).
    
This exists. getBlock().
-
Devang
  
Thanks, Devang.

-- John T.