From: Peter Collingbourne Date: Thu, 9 Feb 2017 21:45:01 +0000 (+0000) Subject: Rename LowerTypeTestsSummaryAction to PassSummaryAction. NFCI. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=637c07c74b5f256d6d244adc285f1c7cd2abd5c0;p=llvm Rename LowerTypeTestsSummaryAction to PassSummaryAction. NFCI. I intend to use the same type with the same semantics in the WholeProgramDevirt pass. Differential Revision: https://reviews.llvm.org/D29746 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294629 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Transforms/IPO.h b/include/llvm/Transforms/IPO.h index b26238ef3fc..6788ba9c005 100644 --- a/include/llvm/Transforms/IPO.h +++ b/include/llvm/Transforms/IPO.h @@ -215,11 +215,11 @@ ModulePass *createMetaRenamerPass(); /// manager. ModulePass *createBarrierNoopPass(); -/// What to do with the summary when running the LowerTypeTests pass. -enum class LowerTypeTestsSummaryAction { +/// What to do with the summary when running passes that operate on it. +enum class PassSummaryAction { None, ///< Do nothing. - Import, ///< Import typeid resolutions from summary and globals. - Export, ///< Export typeid resolutions to summary and globals. + Import, ///< Import information from summary. + Export, ///< Export information to summary. }; /// \brief This pass lowers type metadata and the llvm.type.test intrinsic to @@ -227,7 +227,7 @@ enum class LowerTypeTestsSummaryAction { /// \param Action What to do with the summary passed as Index. /// \param Index The summary to use for importing or exporting, this can be null /// when Action is None. -ModulePass *createLowerTypeTestsPass(LowerTypeTestsSummaryAction Action, +ModulePass *createLowerTypeTestsPass(PassSummaryAction Action, ModuleSummaryIndex *Index); /// \brief This pass export CFI checks for use by external modules. diff --git a/lib/Passes/PassBuilder.cpp b/lib/Passes/PassBuilder.cpp index 6691a442e9b..520c9df3028 100644 --- a/lib/Passes/PassBuilder.cpp +++ b/lib/Passes/PassBuilder.cpp @@ -718,8 +718,8 @@ ModulePassManager PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level, // CFI is disabled. // Enable once we add support for the summary in the new PM. #if 0 - MPM.addPass(LowerTypeTestsPass(Summary ? LowerTypeTestsSummaryAction::Export : - LowerTypeTestsSummaryAction::None, + MPM.addPass(LowerTypeTestsPass(Summary ? PassSummaryAction::Export : + PassSummaryAction::None, Summary)); #endif diff --git a/lib/Transforms/IPO/LowerTypeTests.cpp b/lib/Transforms/IPO/LowerTypeTests.cpp index 7bf96510b0a..8a6238259fb 100644 --- a/lib/Transforms/IPO/LowerTypeTests.cpp +++ b/lib/Transforms/IPO/LowerTypeTests.cpp @@ -42,8 +42,6 @@ using namespace llvm; using namespace lowertypetests; -using SummaryAction = LowerTypeTestsSummaryAction; - #define DEBUG_TYPE "lowertypetests" STATISTIC(ByteArraySizeBits, "Byte array size in bits"); @@ -57,13 +55,13 @@ static cl::opt AvoidReuse( cl::desc("Try to avoid reuse of byte array addresses using aliases"), cl::Hidden, cl::init(true)); -static cl::opt ClSummaryAction( +static cl::opt ClSummaryAction( "lowertypetests-summary-action", cl::desc("What to do with the summary when running this pass"), - cl::values(clEnumValN(SummaryAction::None, "none", "Do nothing"), - clEnumValN(SummaryAction::Import, "import", + cl::values(clEnumValN(PassSummaryAction::None, "none", "Do nothing"), + clEnumValN(PassSummaryAction::Import, "import", "Import typeid resolutions from summary and globals"), - clEnumValN(SummaryAction::Export, "export", + clEnumValN(PassSummaryAction::Export, "export", "Export typeid resolutions to summary and globals")), cl::Hidden); @@ -234,7 +232,7 @@ public: class LowerTypeTestsModule { Module &M; - SummaryAction Action; + PassSummaryAction Action; ModuleSummaryIndex *Summary; bool LinkerSubsectionsViaSymbols; @@ -334,7 +332,7 @@ class LowerTypeTestsModule { void createJumpTable(Function *F, ArrayRef Functions); public: - LowerTypeTestsModule(Module &M, SummaryAction Action, + LowerTypeTestsModule(Module &M, PassSummaryAction Action, ModuleSummaryIndex *Summary); bool lower(); @@ -348,14 +346,14 @@ struct LowerTypeTests : public ModulePass { bool UseCommandLine = false; - SummaryAction Action; + PassSummaryAction Action; ModuleSummaryIndex *Summary; LowerTypeTests() : ModulePass(ID), UseCommandLine(true) { initializeLowerTypeTestsPass(*PassRegistry::getPassRegistry()); } - LowerTypeTests(SummaryAction Action, ModuleSummaryIndex *Summary) + LowerTypeTests(PassSummaryAction Action, ModuleSummaryIndex *Summary) : ModulePass(ID), Action(Action), Summary(Summary) { initializeLowerTypeTestsPass(*PassRegistry::getPassRegistry()); } @@ -375,7 +373,7 @@ INITIALIZE_PASS(LowerTypeTests, "lowertypetests", "Lower type metadata", false, false) char LowerTypeTests::ID = 0; -ModulePass *llvm::createLowerTypeTestsPass(SummaryAction Action, +ModulePass *llvm::createLowerTypeTestsPass(PassSummaryAction Action, ModuleSummaryIndex *Summary) { return new LowerTypeTests(Action, Summary); } @@ -502,7 +500,7 @@ Value *LowerTypeTestsModule::createBitSetTest(IRBuilder<> &B, } else { Constant *ByteArray = TIL.TheByteArray; if (!LinkerSubsectionsViaSymbols && AvoidReuse && - Action != SummaryAction::Import) { + Action != PassSummaryAction::Import) { // Each use of the byte array uses a different alias. This makes the // backend less likely to reuse previously computed byte array addresses, // improving the security of the CFI mechanism based on this pass. @@ -1292,7 +1290,7 @@ void LowerTypeTestsModule::buildBitSetsFromDisjointSet( } /// Lower all type tests in this module. -LowerTypeTestsModule::LowerTypeTestsModule(Module &M, SummaryAction Action, +LowerTypeTestsModule::LowerTypeTestsModule(Module &M, PassSummaryAction Action, ModuleSummaryIndex *Summary) : M(M), Action(Action), Summary(Summary) { Triple TargetTriple(M.getTargetTriple()); @@ -1338,10 +1336,10 @@ bool LowerTypeTestsModule::lower() { Function *TypeTestFunc = M.getFunction(Intrinsic::getName(Intrinsic::type_test)); if ((!TypeTestFunc || TypeTestFunc->use_empty()) && - Action != SummaryAction::Export) + Action != PassSummaryAction::Export) return false; - if (Action == SummaryAction::Import) { + if (Action == PassSummaryAction::Import) { for (auto UI = TypeTestFunc->use_begin(), UE = TypeTestFunc->use_end(); UI != UE;) { auto *CI = cast((*UI++).getUser()); @@ -1422,7 +1420,7 @@ bool LowerTypeTestsModule::lower() { } } - if (Action == SummaryAction::Export) { + if (Action == PassSummaryAction::Export) { DenseMap> MetadataByGUID; for (auto &P : TypeIdInfo) { if (auto *TypeId = dyn_cast(P.first)) @@ -1502,7 +1500,8 @@ bool LowerTypeTestsModule::lower() { PreservedAnalyses LowerTypeTestsPass::run(Module &M, ModuleAnalysisManager &AM) { bool Changed = - LowerTypeTestsModule(M, SummaryAction::None, /*Summary=*/nullptr).lower(); + LowerTypeTestsModule(M, PassSummaryAction::None, /*Summary=*/nullptr) + .lower(); if (!Changed) return PreservedAnalyses::all(); return PreservedAnalyses::none(); diff --git a/lib/Transforms/IPO/PassManagerBuilder.cpp b/lib/Transforms/IPO/PassManagerBuilder.cpp index 3c862d55697..144504d4a3d 100644 --- a/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -830,8 +830,7 @@ void PassManagerBuilder::populateThinLTOPassManager( PM.add(createVerifierPass()); if (Summary) - PM.add( - createLowerTypeTestsPass(LowerTypeTestsSummaryAction::Import, Summary)); + PM.add(createLowerTypeTestsPass(PassSummaryAction::Import, Summary)); populateModulePassManager(PM); @@ -857,9 +856,8 @@ void PassManagerBuilder::populateLTOPassManager(legacy::PassManagerBase &PM) { // Lower type metadata and the type.test intrinsic. This pass supports Clang's // control flow integrity mechanisms (-fsanitize=cfi*) and needs to run at // link time if CFI is enabled. The pass does nothing if CFI is disabled. - PM.add(createLowerTypeTestsPass(Summary ? LowerTypeTestsSummaryAction::Export - : LowerTypeTestsSummaryAction::None, - Summary)); + PM.add(createLowerTypeTestsPass( + Summary ? PassSummaryAction::Export : PassSummaryAction::None, Summary)); if (OptLevel != 0) addLateLTOOptimizationPasses(PM);