diff options
| author | Ralf Luther <luther.ralf@gmail.com> | 2019-03-27 20:23:17 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit2@aicp-server-3> | 2019-03-27 20:23:17 +0000 |
| commit | 1ce3a9d272e564b22a1333a1e36a3d3ab7cfab01 (patch) | |
| tree | 391382eadd4fec5bb480f2e8934fa352770221d1 /clang-r353983/include/llvm/LinkAllPasses.h | |
| parent | d1d48b140bafaa8a50107292f5fce95562575765 (diff) | |
| parent | 4f56932d3416ac03f646bc1a611b3135fec2fe08 (diff) | |
Merge "Update prebuilt Clang to r353983." into p9.0HEADp9.0-backupp9.0
Diffstat (limited to 'clang-r353983/include/llvm/LinkAllPasses.h')
| -rw-r--r-- | clang-r353983/include/llvm/LinkAllPasses.h | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/clang-r353983/include/llvm/LinkAllPasses.h b/clang-r353983/include/llvm/LinkAllPasses.h new file mode 100644 index 00000000..ec81b161 --- /dev/null +++ b/clang-r353983/include/llvm/LinkAllPasses.h @@ -0,0 +1,240 @@ +//===- llvm/LinkAllPasses.h ------------ Reference All Passes ---*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This header file pulls in all transformation and analysis passes for tools +// like opt and bugpoint that need this functionality. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LINKALLPASSES_H +#define LLVM_LINKALLPASSES_H + +#include "llvm/ADT/Statistic.h" +#include "llvm/Analysis/AliasAnalysisEvaluator.h" +#include "llvm/Analysis/AliasSetTracker.h" +#include "llvm/Analysis/BasicAliasAnalysis.h" +#include "llvm/Analysis/CFLAndersAliasAnalysis.h" +#include "llvm/Analysis/CFLSteensAliasAnalysis.h" +#include "llvm/Analysis/CallPrinter.h" +#include "llvm/Analysis/DomPrinter.h" +#include "llvm/Analysis/GlobalsModRef.h" +#include "llvm/Analysis/IntervalPartition.h" +#include "llvm/Analysis/Lint.h" +#include "llvm/Analysis/Passes.h" +#include "llvm/Analysis/PostDominators.h" +#include "llvm/Analysis/RegionPass.h" +#include "llvm/Analysis/RegionPrinter.h" +#include "llvm/Analysis/ScalarEvolution.h" +#include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h" +#include "llvm/Analysis/ScopedNoAliasAA.h" +#include "llvm/Analysis/TargetLibraryInfo.h" +#include "llvm/Analysis/TypeBasedAliasAnalysis.h" +#include "llvm/CodeGen/Passes.h" +#include "llvm/IR/Function.h" +#include "llvm/IR/IRPrintingPasses.h" +#include "llvm/Support/Valgrind.h" +#include "llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h" +#include "llvm/Transforms/IPO.h" +#include "llvm/Transforms/IPO/AlwaysInliner.h" +#include "llvm/Transforms/IPO/FunctionAttrs.h" +#include "llvm/Transforms/InstCombine/InstCombine.h" +#include "llvm/Transforms/Instrumentation.h" +#include "llvm/Transforms/Instrumentation/BoundsChecking.h" +#include "llvm/Transforms/ObjCARC.h" +#include "llvm/Transforms/Scalar.h" +#include "llvm/Transforms/Scalar/GVN.h" +#include "llvm/Transforms/Scalar/InstSimplifyPass.h" +#include "llvm/Transforms/Scalar/Scalarizer.h" +#include "llvm/Transforms/Utils.h" +#include "llvm/Transforms/Utils/SymbolRewriter.h" +#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h" +#include "llvm/Transforms/Vectorize.h" +#include <cstdlib> + +namespace { + struct ForcePassLinking { + ForcePassLinking() { + // We must reference the passes in such a way that compilers will not + // delete it all as dead code, even with whole program optimization, + // yet is effectively a NO-OP. As the compiler isn't smart enough + // to know that getenv() never returns -1, this will do the job. + if (std::getenv("bar") != (char*) -1) + return; + + (void) llvm::createAAEvalPass(); + (void) llvm::createAggressiveDCEPass(); + (void) llvm::createAggressiveInstCombinerPass(); + (void) llvm::createBitTrackingDCEPass(); + (void) llvm::createArgumentPromotionPass(); + (void) llvm::createAlignmentFromAssumptionsPass(); + (void) llvm::createBasicAAWrapperPass(); + (void) llvm::createSCEVAAWrapperPass(); + (void) llvm::createTypeBasedAAWrapperPass(); + (void) llvm::createScopedNoAliasAAWrapperPass(); + (void) llvm::createBoundsCheckingLegacyPass(); + (void) llvm::createBreakCriticalEdgesPass(); + (void) llvm::createCallGraphDOTPrinterPass(); + (void) llvm::createCallGraphViewerPass(); + (void) llvm::createCFGSimplificationPass(); + (void) llvm::createCFLAndersAAWrapperPass(); + (void) llvm::createCFLSteensAAWrapperPass(); + (void) llvm::createStructurizeCFGPass(); + (void) llvm::createLibCallsShrinkWrapPass(); + (void) llvm::createCalledValuePropagationPass(); + (void) llvm::createConstantMergePass(); + (void) llvm::createConstantPropagationPass(); + (void) llvm::createControlHeightReductionLegacyPass(); + (void) llvm::createCostModelAnalysisPass(); + (void) llvm::createDeadArgEliminationPass(); + (void) llvm::createDeadCodeEliminationPass(); + (void) llvm::createDeadInstEliminationPass(); + (void) llvm::createDeadStoreEliminationPass(); + (void) llvm::createDependenceAnalysisWrapperPass(); + (void) llvm::createDomOnlyPrinterPass(); + (void) llvm::createDomPrinterPass(); + (void) llvm::createDomOnlyViewerPass(); + (void) llvm::createDomViewerPass(); + (void) llvm::createGCOVProfilerPass(); + (void) llvm::createPGOInstrumentationGenLegacyPass(); + (void) llvm::createPGOInstrumentationUseLegacyPass(); + (void) llvm::createPGOIndirectCallPromotionLegacyPass(); + (void) llvm::createPGOMemOPSizeOptLegacyPass(); + (void) llvm::createInstrProfilingLegacyPass(); + (void) llvm::createFunctionImportPass(); + (void) llvm::createFunctionInliningPass(); + (void) llvm::createAlwaysInlinerLegacyPass(); + (void) llvm::createGlobalDCEPass(); + (void) llvm::createGlobalOptimizerPass(); + (void) llvm::createGlobalsAAWrapperPass(); + (void) llvm::createGuardWideningPass(); + (void) llvm::createLoopGuardWideningPass(); + (void) llvm::createIPConstantPropagationPass(); + (void) llvm::createIPSCCPPass(); + (void) llvm::createInductiveRangeCheckEliminationPass(); + (void) llvm::createIndVarSimplifyPass(); + (void) llvm::createInstSimplifyLegacyPass(); + (void) llvm::createInstructionCombiningPass(); + (void) llvm::createInternalizePass(); + (void) llvm::createLCSSAPass(); + (void) llvm::createLegacyDivergenceAnalysisPass(); + (void) llvm::createLICMPass(); + (void) llvm::createLoopSinkPass(); + (void) llvm::createLazyValueInfoPass(); + (void) llvm::createLoopExtractorPass(); + (void) llvm::createLoopInterchangePass(); + (void) llvm::createLoopPredicationPass(); + (void) llvm::createLoopSimplifyPass(); + (void) llvm::createLoopSimplifyCFGPass(); + (void) llvm::createLoopStrengthReducePass(); + (void) llvm::createLoopRerollPass(); + (void) llvm::createLoopUnrollPass(); + (void) llvm::createLoopUnrollAndJamPass(); + (void) llvm::createLoopUnswitchPass(); + (void) llvm::createLoopVersioningLICMPass(); + (void) llvm::createLoopIdiomPass(); + (void) llvm::createLoopRotatePass(); + (void) llvm::createLowerExpectIntrinsicPass(); + (void) llvm::createLowerInvokePass(); + (void) llvm::createLowerSwitchPass(); + (void) llvm::createNaryReassociatePass(); + (void) llvm::createObjCARCAAWrapperPass(); + (void) llvm::createObjCARCAPElimPass(); + (void) llvm::createObjCARCExpandPass(); + (void) llvm::createObjCARCContractPass(); + (void) llvm::createObjCARCOptPass(); + (void) llvm::createPAEvalPass(); + (void) llvm::createPromoteMemoryToRegisterPass(); + (void) llvm::createDemoteRegisterToMemoryPass(); + (void) llvm::createPruneEHPass(); + (void) llvm::createPostDomOnlyPrinterPass(); + (void) llvm::createPostDomPrinterPass(); + (void) llvm::createPostDomOnlyViewerPass(); + (void) llvm::createPostDomViewerPass(); + (void) llvm::createReassociatePass(); + (void) llvm::createRegionInfoPass(); + (void) llvm::createRegionOnlyPrinterPass(); + (void) llvm::createRegionOnlyViewerPass(); + (void) llvm::createRegionPrinterPass(); + (void) llvm::createRegionViewerPass(); + (void) llvm::createSCCPPass(); + (void) llvm::createSafeStackPass(); + (void) llvm::createSROAPass(); + (void) llvm::createSingleLoopExtractorPass(); + (void) llvm::createStripSymbolsPass(); + (void) llvm::createStripNonDebugSymbolsPass(); + (void) llvm::createStripDeadDebugInfoPass(); + (void) llvm::createStripDeadPrototypesPass(); + (void) llvm::createTailCallEliminationPass(); + (void) llvm::createJumpThreadingPass(); + (void) llvm::createUnifyFunctionExitNodesPass(); + (void) llvm::createInstCountPass(); + (void) llvm::createConstantHoistingPass(); + (void) llvm::createCodeGenPreparePass(); + (void) llvm::createEntryExitInstrumenterPass(); + (void) llvm::createPostInlineEntryExitInstrumenterPass(); + (void) llvm::createEarlyCSEPass(); + (void) llvm::createGVNHoistPass(); + (void) llvm::createMergedLoadStoreMotionPass(); + (void) llvm::createGVNPass(); + (void) llvm::createNewGVNPass(); + (void) llvm::createMemCpyOptPass(); + (void) llvm::createLoopDeletionPass(); + (void) llvm::createPostDomTree(); + (void) llvm::createInstructionNamerPass(); + (void) llvm::createMetaRenamerPass(); + (void) llvm::createPostOrderFunctionAttrsLegacyPass(); + (void) llvm::createReversePostOrderFunctionAttrsPass(); + (void) llvm::createMergeFunctionsPass(); + (void) llvm::createMergeICmpsPass(); + (void) llvm::createExpandMemCmpPass(); + std::string buf; + llvm::raw_string_ostream os(buf); + (void) llvm::createPrintModulePass(os); + (void) llvm::createPrintFunctionPass(os); + (void) llvm::createPrintBasicBlockPass(os); + (void) llvm::createModuleDebugInfoPrinterPass(); + (void) llvm::createPartialInliningPass(); + (void) llvm::createLintPass(); + (void) llvm::createSinkingPass(); + (void) llvm::createLowerAtomicPass(); + (void) llvm::createCorrelatedValuePropagationPass(); + (void) llvm::createMemDepPrinter(); + (void) llvm::createLoopVectorizePass(); + (void) llvm::createSLPVectorizerPass(); + (void) llvm::createLoadStoreVectorizerPass(); + (void) llvm::createPartiallyInlineLibCallsPass(); + (void) llvm::createScalarizerPass(); + (void) llvm::createSeparateConstOffsetFromGEPPass(); + (void) llvm::createSpeculativeExecutionPass(); + (void) llvm::createSpeculativeExecutionIfHasBranchDivergencePass(); + (void) llvm::createRewriteSymbolsPass(); + (void) llvm::createStraightLineStrengthReducePass(); + (void) llvm::createMemDerefPrinter(); + (void) llvm::createMustExecutePrinter(); + (void) llvm::createFloat2IntPass(); + (void) llvm::createEliminateAvailableExternallyPass(); + (void) llvm::createScalarizeMaskedMemIntrinPass(); + (void) llvm::createWarnMissedTransformationsPass(); + + (void)new llvm::IntervalPartition(); + (void)new llvm::ScalarEvolutionWrapperPass(); + llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly(); + llvm::RGPassManager RGM; + llvm::TargetLibraryInfoImpl TLII; + llvm::TargetLibraryInfo TLI(TLII); + llvm::AliasAnalysis AA(TLI); + llvm::AliasSetTracker X(AA); + X.add(nullptr, llvm::LocationSize::unknown(), + llvm::AAMDNodes()); // for -print-alias-sets + (void) llvm::AreStatisticsEnabled(); + (void) llvm::sys::RunningOnValgrind(); + } + } ForcePassLinking; // Force link by creating a global definition. +} + +#endif |
