[LLVMdev] Accessing Dominator Tree
david.dewey at comcast.net
david.dewey at comcast.net
Fri Jul 29 08:00:20 PDT 2011
John,
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.
Thanks,
David
----- 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:
Hello,
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;
DT.getBase().recalculate(F);
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.
Thanks,
David
_______________________________________________
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