<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 8, 2015 at 11:12 AM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> On 2015-Jan-07, at 03:14, Chandler Carruth <<a href="mailto:chandlerc@gmail.com">chandlerc@gmail.com</a>> wrote:<br>
><br>
> Author: chandlerc<br>
> Date: Wed Jan  7 05:14:51 2015<br>
> New Revision: 225346<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=225346&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=225346&view=rev</a><br>
> Log:<br>
> [PM] Give slightly less horrible names to the utility pass templates for<br>
> requiring and invalidating specific analyses. Also make their printed<br>
> names match their class names. Writing these out as prose really doesn't<br>
> make sense to me any more.<br>
<br>
</span>This looks better to me too.  I think the prose gets in the way, and<br>
makes the output unnecessarily awkward to deal with in scripts.<br></blockquote><div><br></div><div>+1</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
> Modified:<br>
>    llvm/trunk/include/llvm/IR/PassManager.h<br>
>    llvm/trunk/test/Other/new-pass-manager.ll<br>
>    llvm/trunk/tools/opt/Passes.cpp<br>
><br>
> Modified: llvm/trunk/include/llvm/IR/PassManager.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/PassManager.h?rev=225346&r1=225345&r2=225346&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/PassManager.h?rev=225346&r1=225345&r2=225346&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/include/llvm/IR/PassManager.h (original)<br>
> +++ llvm/trunk/include/llvm/IR/PassManager.h Wed Jan  7 05:14:51 2015<br>
> @@ -781,7 +781,7 @@ createModuleToFunctionPassAdaptor(Functi<br>
> ///<br>
> /// This is a no-op pass which simply forces a specific analysis pass's result<br>
> /// to be available when it is run.<br>
> -template <typename AnalysisT> struct NoopAnalysisRequirementPass {<br>
> +template <typename AnalysisT> struct RequireAnalysisPass {<br>
>   /// \brief Run this pass over some unit of IR.<br>
>   ///<br>
>   /// This pass can be run over any unit of IR and use any analysis manager<br>
> @@ -796,7 +796,7 @@ template <typename AnalysisT> struct Noo<br>
>     return PreservedAnalyses::all();<br>
>   }<br>
><br>
> -  static StringRef name() { return "No-op Analysis Requirement Pass"; }<br>
> +  static StringRef name() { return "RequireAnalysisPass"; }<br>
> };<br>
><br>
> /// \brief A template utility pass to force an analysis result to be<br>
> @@ -804,7 +804,7 @@ template <typename AnalysisT> struct Noo<br>
> ///<br>
> /// This is a no-op pass which simply forces a specific analysis result to be<br>
> /// invalidated when it is run.<br>
> -template <typename AnalysisT> struct NoopAnalysisInvalidationPass {<br>
> +template <typename AnalysisT> struct InvalidateAnalysisPass {<br>
>   /// \brief Run this pass over some unit of IR.<br>
>   ///<br>
>   /// This pass can be run over any unit of IR and use any analysis manager<br>
> @@ -821,7 +821,7 @@ template <typename AnalysisT> struct Noo<br>
>     return PreservedAnalyses::all();<br>
>   }<br>
><br>
> -  static StringRef name() { return "No-op Analysis Invalidation Pass"; }<br>
> +  static StringRef name() { return "InvalidateAnalysisPass"; }<br>
> };<br>
><br>
> /// \brief A utility pass that does nothing but preserves no analyses.<br>
><br>
> Modified: llvm/trunk/test/Other/new-pass-manager.ll<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/new-pass-manager.ll?rev=225346&r1=225345&r2=225346&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Other/new-pass-manager.ll?rev=225346&r1=225345&r2=225346&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/test/Other/new-pass-manager.ll (original)<br>
> +++ llvm/trunk/test/Other/new-pass-manager.ll Wed Jan  7 05:14:51 2015<br>
> @@ -126,13 +126,13 @@<br>
> ; RUN:     -passes='require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>))' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-ANALYSES<br>
> ; CHECK-ANALYSES: Starting module pass manager<br>
> -; CHECK-ANALYSES: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-ANALYSES: Running module pass: RequireAnalysisPass<br>
> ; CHECK-ANALYSES: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-ANALYSES: Starting CGSCC pass manager<br>
> -; CHECK-ANALYSES: Running CGSCC pass: No-op Analysis Requirement Pass<br>
> +; CHECK-ANALYSES: Running CGSCC pass: RequireAnalysisPass<br>
> ; CHECK-ANALYSES: Running CGSCC analysis: NoOpCGSCCAnalysis<br>
> ; CHECK-ANALYSES: Starting function pass manager<br>
> -; CHECK-ANALYSES: Running function pass: No-op Analysis Requirement Pass<br>
> +; CHECK-ANALYSES: Running function pass: RequireAnalysisPass<br>
> ; CHECK-ANALYSES: Running function analysis: NoOpFunctionAnalysis<br>
><br>
> ; Make sure no-op passes that preserve all analyses don't even try to do any<br>
> @@ -147,7 +147,7 @@<br>
> ; RUN:     -passes='require<no-op-module>,require<no-op-module>,require<no-op-module>' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS<br>
> ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Starting module pass manager<br>
> -; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running module pass: RequireAnalysisPass<br>
> ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-DO-CACHE-MODULE-ANALYSIS-RESULTS-NOT: Running module analysis: NoOpModuleAnalysis<br>
><br>
> @@ -155,7 +155,7 @@<br>
> ; RUN:     -passes='require<no-op-module>,invalidate<no-op-module>,require<no-op-module>' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS<br>
> ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Starting module pass manager<br>
> -; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running module pass: RequireAnalysisPass<br>
> ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Invalidating module analysis: NoOpModuleAnalysis<br>
> ; CHECK-DO-INVALIDATE-MODULE-ANALYSIS-RESULTS: Running module analysis: NoOpModuleAnalysis<br>
> @@ -164,7 +164,7 @@<br>
> ; RUN:     -passes='cgscc(require<no-op-cgscc>,require<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS<br>
> ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Starting CGSCC pass manager<br>
> -; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running CGSCC pass: No-op Analysis Requirement Pass<br>
> +; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running CGSCC pass: RequireAnalysisPass<br>
> ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS: Running CGSCC analysis: NoOpCGSCCAnalysis<br>
> ; CHECK-DO-CACHE-CGSCC-ANALYSIS-RESULTS-NOT: Running CGSCC analysis: NoOpCGSCCAnalysis<br>
><br>
> @@ -172,7 +172,7 @@<br>
> ; RUN:     -passes='cgscc(require<no-op-cgscc>,invalidate<no-op-cgscc>,require<no-op-cgscc>)' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS<br>
> ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Starting CGSCC pass manager<br>
> -; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running CGSCC pass: No-op Analysis Requirement Pass<br>
> +; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running CGSCC pass: RequireAnalysisPass<br>
> ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running CGSCC analysis: NoOpCGSCCAnalysis<br>
> ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Invalidating CGSCC analysis: NoOpCGSCCAnalysis<br>
> ; CHECK-DO-INVALIDATE-CGSCC-ANALYSIS-RESULTS: Running CGSCC analysis: NoOpCGSCCAnalysis<br>
> @@ -181,7 +181,7 @@<br>
> ; RUN:     -passes='function(require<no-op-function>,require<no-op-function>,require<no-op-function>)' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS<br>
> ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Starting function pass manager<br>
> -; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running function pass: No-op Analysis Requirement Pass<br>
> +; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running function pass: RequireAnalysisPass<br>
> ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS: Running function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-DO-CACHE-FUNCTION-ANALYSIS-RESULTS-NOT: Running function analysis: NoOpFunctionAnalysis<br>
><br>
> @@ -189,7 +189,7 @@<br>
> ; RUN:     -passes='function(require<no-op-function>,invalidate<no-op-function>,require<no-op-function>)' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS<br>
> ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Starting function pass manager<br>
> -; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running function pass: No-op Analysis Requirement Pass<br>
> +; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running function pass: RequireAnalysisPass<br>
> ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Invalidating function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-DO-INVALIDATE-FUNCTION-ANALYSIS-RESULTS: Running function analysis: NoOpFunctionAnalysis<br>
> @@ -198,30 +198,30 @@<br>
> ; RUN:     -passes='require<no-op-module>,module(require<no-op-module>,function(require<no-op-function>,invalidate<all>,require<no-op-function>),require<no-op-module>),require<no-op-module>' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL<br>
> ; CHECK-INVALIDATE-ALL: Starting module pass manager run.<br>
> -; CHECK-INVALIDATE-ALL: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL: Running module pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-INVALIDATE-ALL: Starting module pass manager run.<br>
> -; CHECK-INVALIDATE-ALL: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL: Running module pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-NOT: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-INVALIDATE-ALL: Starting function pass manager run.<br>
> -; CHECK-INVALIDATE-ALL: Running function pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL: Running function pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL: Running function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-INVALIDATE-ALL: Running function pass: InvalidateAllAnalysesPass<br>
> ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses for function<br>
> ; CHECK-INVALIDATE-ALL: Invalidating function analysis: NoOpFunctionAnalysis<br>
> -; CHECK-INVALIDATE-ALL: Running function pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL: Running function pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL: Running function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-INVALIDATE-ALL: Finished function pass manager run.<br>
> ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses for function<br>
> ; CHECK-INVALIDATE-ALL-NOT: Running function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses for module<br>
> ; CHECK-INVALIDATE-ALL: Invalidating module analysis: NoOpModuleAnalysis<br>
> -; CHECK-INVALIDATE-ALL: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL: Running module pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-INVALIDATE-ALL: Finished module pass manager run.<br>
> ; CHECK-INVALIDATE-ALL: Invalidating all non-preserved analyses for module<br>
> ; CHECK-INVALIDATE-ALL-NOT: Invalidating module analysis: NoOpModuleAnalysis<br>
> -; CHECK-INVALIDATE-ALL: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL: Running module pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-NOT: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-INVALIDATE-ALL: Finished module pass manager run.<br>
><br>
> @@ -229,40 +229,40 @@<br>
> ; RUN:     -passes='require<no-op-module>,module(require<no-op-module>,cgscc(require<no-op-cgscc>,function(require<no-op-function>,invalidate<all>,require<no-op-function>),require<no-op-cgscc>),require<no-op-module>),require<no-op-module>' %s 2>&1 \<br>
> ; RUN:     | FileCheck %s --check-prefix=CHECK-INVALIDATE-ALL-CG<br>
> ; CHECK-INVALIDATE-ALL-CG: Starting module pass manager run.<br>
> -; CHECK-INVALIDATE-ALL-CG: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL-CG: Running module pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-CG: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Starting module pass manager run.<br>
> -; CHECK-INVALIDATE-ALL-CG: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL-CG: Running module pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-CG-NOT: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Starting CGSCC pass manager run.<br>
> -; CHECK-INVALIDATE-ALL-CG: Running CGSCC pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL-CG: Running CGSCC pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-CG: Running CGSCC analysis: NoOpCGSCCAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Starting function pass manager run.<br>
> -; CHECK-INVALIDATE-ALL-CG: Running function pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL-CG: Running function pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-CG: Running function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Running function pass: InvalidateAllAnalysesPass<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses for function<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating function analysis: NoOpFunctionAnalysis<br>
> -; CHECK-INVALIDATE-ALL-CG: Running function pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL-CG: Running function pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-CG: Running function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Finished function pass manager run.<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses for function<br>
> ; CHECK-INVALIDATE-ALL-CG-NOT: Running function analysis: NoOpFunctionAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses for SCC<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating CGSCC analysis: NoOpCGSCCAnalysis<br>
> -; CHECK-INVALIDATE-ALL-CG: Running CGSCC pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL-CG: Running CGSCC pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-CG: Running CGSCC analysis: NoOpCGSCCAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Finished CGSCC pass manager run.<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses for SCC<br>
> ; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating CGSCC analysis: NoOpCGSCCAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses for module<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating module analysis: NoOpModuleAnalysis<br>
> -; CHECK-INVALIDATE-ALL-CG: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL-CG: Running module pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-CG: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Finished module pass manager run.<br>
> ; CHECK-INVALIDATE-ALL-CG: Invalidating all non-preserved analyses for module<br>
> ; CHECK-INVALIDATE-ALL-CG-NOT: Invalidating module analysis: NoOpModuleAnalysis<br>
> -; CHECK-INVALIDATE-ALL-CG: Running module pass: No-op Analysis Requirement Pass<br>
> +; CHECK-INVALIDATE-ALL-CG: Running module pass: RequireAnalysisPass<br>
> ; CHECK-INVALIDATE-ALL-CG-NOT: Running module analysis: NoOpModuleAnalysis<br>
> ; CHECK-INVALIDATE-ALL-CG: Finished module pass manager run.<br>
><br>
><br>
> Modified: llvm/trunk/tools/opt/Passes.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/Passes.cpp?rev=225346&r1=225345&r2=225346&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/Passes.cpp?rev=225346&r1=225345&r2=225346&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/tools/opt/Passes.cpp (original)<br>
> +++ llvm/trunk/tools/opt/Passes.cpp Wed Jan  7 05:14:51 2015<br>
> @@ -142,11 +142,11 @@ static bool parseModulePassName(ModulePa<br>
>   }<br>
> #define MODULE_ANALYSIS(NAME, CREATE_PASS)                                     \<br>
>   if (Name == "require<" NAME ">") {                                           \<br>
> -    MPM.addPass(NoopAnalysisRequirementPass<decltype(CREATE_PASS)>());         \<br>
> +    MPM.addPass(RequireAnalysisPass<decltype(CREATE_PASS)>());                 \<br>
>     return true;                                                               \<br>
>   }                                                                            \<br>
>   if (Name == "invalidate<" NAME ">") {                                        \<br>
> -    MPM.addPass(NoopAnalysisInvalidationPass<decltype(CREATE_PASS)>());        \<br>
> +    MPM.addPass(InvalidateAnalysisPass<decltype(CREATE_PASS)>());              \<br>
>     return true;                                                               \<br>
>   }<br>
> #include "PassRegistry.def"<br>
> @@ -162,11 +162,11 @@ static bool parseCGSCCPassName(CGSCCPass<br>
>   }<br>
> #define CGSCC_ANALYSIS(NAME, CREATE_PASS)                                      \<br>
>   if (Name == "require<" NAME ">") {                                           \<br>
> -    CGPM.addPass(NoopAnalysisRequirementPass<decltype(CREATE_PASS)>());        \<br>
> +    CGPM.addPass(RequireAnalysisPass<decltype(CREATE_PASS)>());                \<br>
>     return true;                                                               \<br>
>   }                                                                            \<br>
>   if (Name == "invalidate<" NAME ">") {                                        \<br>
> -    CGPM.addPass(NoopAnalysisInvalidationPass<decltype(CREATE_PASS)>());       \<br>
> +    CGPM.addPass(InvalidateAnalysisPass<decltype(CREATE_PASS)>());             \<br>
>     return true;                                                               \<br>
>   }<br>
> #include "PassRegistry.def"<br>
> @@ -182,11 +182,11 @@ static bool parseFunctionPassName(Functi<br>
>   }<br>
> #define FUNCTION_ANALYSIS(NAME, CREATE_PASS)                                   \<br>
>   if (Name == "require<" NAME ">") {                                           \<br>
> -    FPM.addPass(NoopAnalysisRequirementPass<decltype(CREATE_PASS)>());         \<br>
> +    FPM.addPass(RequireAnalysisPass<decltype(CREATE_PASS)>());                 \<br>
>     return true;                                                               \<br>
>   }                                                                            \<br>
>   if (Name == "invalidate<" NAME ">") {                                        \<br>
> -    FPM.addPass(NoopAnalysisInvalidationPass<decltype(CREATE_PASS)>());        \<br>
> +    FPM.addPass(InvalidateAnalysisPass<decltype(CREATE_PASS)>());              \<br>
>     return true;                                                               \<br>
>   }<br>
> #include "PassRegistry.def"<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div></div>