[LLVMdev] Accessing Dominator Tree

david.dewey at comcast.net david.dewey at comcast.net
Fri Jul 29 08:00:20 PDT 2011


Thanks for the quick reply.  Using a PassManager object should work fine.  As you said, my only objection is to exec'ing opt.  

I had actually tried instantiating a PassManager object before, but I was definitely not doing it right.  I will take a look at how clang and SAFECode use it, and see if I can get it working. 



----- Original Message -----

From: "John Criswell" <criswell at illinois.edu> 
To: "david dewey" <david.dewey at comcast.net> 
Cc: llvmdev at cs.uiuc.edu 
Sent: Friday, July 29, 2011 10:56:20 AM 
Subject: Re: [LLVMdev] Accessing Dominator Tree 

On 7/29/11 9:43 AM, david.dewey at comcast.net wrote: 



I am working on a project that requires me to perform some analysis on a bitcode file outside the existing LLVM analysis frameworks (opt, etc.).  In what I am doing, I need to be able to access the dominator tree for a given function.  Is there a way I can instantiate a DominatorTree object outside the existing analysis frameworks? 
If you use a PassManager object to run passes, then you can simply have your analysis be an LLVM pass and use the standard getAnalysis<>() template function to get access to the dominator tree analysis.  Any program can create a PassManager to run LLVM passes to perform analysis and transformation; the clang C/C++ front-end and the sc tool in SAFECode do this. 

I don't know if using a PassManager is what you consider to be "outside the existing LLVM framework."  I'm hoping your only objection is to using the opt tool to run LLVM passes. 

-- John T. 


I have tried several things all along the lines of: 


DominatorTree DT; 



Everything I have tried results in an assertion failure when trying to access the front() of what I assume is the DominatorTree: 


Assertion failed: !empty() && "Called front() on empty list!" 


If anyone has an example of how to do this, I would really appreciate it. 





LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110729/044d12a7/attachment.html>

More information about the llvm-dev mailing list