diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2016-02-19 10:59:43 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2016-02-19 10:59:43 +0000 |
commit | fe6345c53701ee5487cc5921688c52ace9fa1d30 (patch) | |
tree | 834c52ce5d2271bf8fede2d56f10ee3adeab4bd8 /docs/WritingAnLLVMPass.rst | |
parent | eca46e623a412be47a3ac000984676ec172961a4 (diff) |
[LPM] Document the new helpers to make it easy to get consistent require
and preserve behavior from loop passes.
Differential Revision: http://reviews.llvm.org/D17443
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261319 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/WritingAnLLVMPass.rst')
-rw-r--r-- | docs/WritingAnLLVMPass.rst | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/docs/WritingAnLLVMPass.rst b/docs/WritingAnLLVMPass.rst index 241066842b7..4e5f8a90a93 100644 --- a/docs/WritingAnLLVMPass.rst +++ b/docs/WritingAnLLVMPass.rst @@ -525,6 +525,14 @@ interface. Implementing a loop pass is usually straightforward. these methods should return ``true`` if they modified the program, or ``false`` if they didn't. +A ``LoopPass`` subclass which is intended to run as part of the main loop pass +pipeline needs to preserve all of the same *function* analyses that the other +loop passes in its pipeline require. To make that easier, +a ``getLoopAnalysisUsage`` function is provided by ``LoopUtils.h``. It can be +called within the subclass's ``getAnalysisUsage`` override to get consistent +and correct behavior. Analogously, ``INITIALIZE_PASS_DEPENDENCY(LoopPass)`` +will initialize this set of function analyses. + The ``doInitialization(Loop *, LPPassManager &)`` method ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |