diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-07-01 23:38:44 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-07-01 23:38:44 +0000 |
commit | b71725b468d8710f95d91fc0fd0637dbf2b41fcf (patch) | |
tree | 1de683d68c82171f02aefd6ceee27ba04fab104c | |
parent | 7074feab96ef137eb6c6afb4cea8765d430f601a (diff) | |
download | external_llvm-b71725b468d8710f95d91fc0fd0637dbf2b41fcf.zip external_llvm-b71725b468d8710f95d91fc0fd0637dbf2b41fcf.tar.gz external_llvm-b71725b468d8710f95d91fc0fd0637dbf2b41fcf.tar.bz2 |
Try to clarify a point about getting DominatorTree info from a module pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74668 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/WritingAnLLVMPass.html | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/docs/WritingAnLLVMPass.html b/docs/WritingAnLLVMPass.html index 8374bfa..b8ac9e9 100644 --- a/docs/WritingAnLLVMPass.html +++ b/docs/WritingAnLLVMPass.html @@ -491,10 +491,15 @@ class is the most general of all superclasses that you can use. Deriving from <tt>ModulePass</tt> indicates that your pass uses the entire program as a unit, refering to function bodies in no predictable order, or adding and removing functions. Because nothing is known about the behavior of <tt>ModulePass</tt> -subclasses, no optimization can be done for their execution. A module pass -can use function level passes (e.g. dominators) using getAnalysis interface -<tt> getAnalysis<DominatorTree>(Function)</tt>, if the function pass -does not require any module passes. </p> +subclasses, no optimization can be done for their execution.</p> + +<p>A module pass can use function level passes (e.g. dominators) using +the getAnalysis interface +<tt>getAnalysis<DominatorTree>(llvm::Function *)</tt> to provide the +function to retrieve analysis result for, if the function pass does not require +any module passes. Note that this can only be done for functions for which the +analysis ran, e.g. in the case of dominators you should only ask for the +DominatorTree for function definitions, not declarations.</p> <p>To write a correct <tt>ModulePass</tt> subclass, derive from <tt>ModulePass</tt> and overload the <tt>runOnModule</tt> method with the |