[llvm] r307493 - [PM] Teach PreservedAnalyses to have an `allInSet` static factory
Chandler Carruth via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 9 00:23:27 PDT 2017
Author: chandlerc
Date: Sun Jul 9 00:23:27 2017
New Revision: 307493
URL: http://llvm.org/viewvc/llvm-project?rev=307493&view=rev
Log:
[PM] Teach PreservedAnalyses to have an `allInSet` static factory
function template to simplify building a quick object with a set marked
as preserved.
Modified:
llvm/trunk/include/llvm/IR/PassManager.h
llvm/trunk/unittests/IR/PassManagerTest.cpp
Modified: llvm/trunk/include/llvm/IR/PassManager.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/PassManager.h?rev=307493&r1=307492&r2=307493&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/PassManager.h (original)
+++ llvm/trunk/include/llvm/IR/PassManager.h Sun Jul 9 00:23:27 2017
@@ -162,6 +162,14 @@ public:
return PA;
}
+ /// \brief Construct a preserved analyses object with a single preserved set.
+ template <typename AnalysisSetT>
+ static PreservedAnalyses allInSet() {
+ PreservedAnalyses PA;
+ PA.preserveSet<AnalysisSetT>();
+ return PA;
+ }
+
/// Mark an analysis as preserved.
template <typename AnalysisT> void preserve() { preserve(AnalysisT::ID()); }
Modified: llvm/trunk/unittests/IR/PassManagerTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/IR/PassManagerTest.cpp?rev=307493&r1=307492&r2=307493&view=diff
==============================================================================
--- llvm/trunk/unittests/IR/PassManagerTest.cpp (original)
+++ llvm/trunk/unittests/IR/PassManagerTest.cpp Sun Jul 9 00:23:27 2017
@@ -210,6 +210,13 @@ TEST(PreservedAnalysesTest, Basic) {
EXPECT_FALSE(PAC.preserved());
EXPECT_FALSE(PAC.preservedSet<AllAnalysesOn<Function>>());
}
+ auto PA5 = PreservedAnalyses::allInSet<AllAnalysesOn<Function>>();
+ {
+ auto PAC = PA5.getChecker<TestFunctionAnalysis>();
+ EXPECT_FALSE(PAC.preserved());
+ EXPECT_TRUE(PAC.preservedSet<AllAnalysesOn<Function>>());
+ EXPECT_FALSE(PAC.preservedSet<AllAnalysesOn<Module>>());
+ }
}
TEST(PreservedAnalysesTest, Preserve) {
More information about the llvm-commits
mailing list