diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2011-05-10 22:16:06 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2011-05-10 22:16:06 +0000 |
commit | da07192f8e1127c1d7044ca4657cd5f2de92e564 (patch) | |
tree | 8bac6260fe6a5e07ae8efb01ce4c5fef86a8e791 /include/llvm/PassSupport.h | |
parent | 354c82bdf554bc5e6fa5c77f7c357577860d66d8 (diff) | |
download | llvm-da07192f8e1127c1d7044ca4657cd5f2de92e564.tar.gz llvm-da07192f8e1127c1d7044ca4657cd5f2de92e564.tar.bz2 llvm-da07192f8e1127c1d7044ca4657cd5f2de92e564.tar.xz |
Revert r131155 for now. It makes VMCore depend on Analysis and Transforms
headers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131159 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/PassSupport.h')
-rw-r--r-- | include/llvm/PassSupport.h | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/include/llvm/PassSupport.h b/include/llvm/PassSupport.h index ad6ab754b8..082790956c 100644 --- a/include/llvm/PassSupport.h +++ b/include/llvm/PassSupport.h @@ -29,8 +29,6 @@ namespace llvm { - class PassManagerBase; - //===--------------------------------------------------------------------------- /// PassInfo class - An instance of this class exists for every pass known by /// the system, and can be obtained from a live Pass by calling its @@ -209,149 +207,6 @@ struct RegisterPass : public PassInfo { } }; - /// Unique identifiers for the default standard passes. The addresses of - /// these symbols are used to uniquely identify passes from the default list. - namespace DefaultStandardPasses { - extern unsigned char AggressiveDCEID; - extern unsigned char ArgumentPromotionID; - extern unsigned char BasicAliasAnalysisID; - extern unsigned char CFGSimplificationID; - extern unsigned char ConstantMergeID; - extern unsigned char CorrelatedValuePropagationID; - extern unsigned char DeadArgEliminationID; - extern unsigned char DeadStoreEliminationID; - extern unsigned char DeadTypeEliminationID; - extern unsigned char EarlyCSEID; - extern unsigned char FunctionAttrsID; - extern unsigned char FunctionInliningID; - extern unsigned char GVNID; - extern unsigned char GlobalDCEID; - extern unsigned char GlobalOptimizerID; - extern unsigned char GlobalsModRefID; - extern unsigned char IPSCCPID; - extern unsigned char IndVarSimplifyID; - extern unsigned char InlinerPlaceholderID; - extern unsigned char InstructionCombiningID; - extern unsigned char JumpThreadingID; - extern unsigned char LICMID; - extern unsigned char LoopDeletionID; - extern unsigned char LoopIdiomID; - extern unsigned char LoopRotateID; - extern unsigned char LoopUnrollID; - extern unsigned char LoopUnswitchID; - extern unsigned char MemCpyOptID; - extern unsigned char PruneEHID; - extern unsigned char ReassociateID; - extern unsigned char SCCPID; - extern unsigned char ScalarReplAggregatesID; - extern unsigned char SimplifyLibCallsID; - extern unsigned char StripDeadPrototypesID; - extern unsigned char TailCallEliminationID; - extern unsigned char TypeBasedAliasAnalysisID; - } - - -class RegisterStandardPass; -/// RegisterStandardPass - Registers a pass as a member of a standard set. -class StandardPass { - friend class RegisterStandardPassLists; - public: - /// Predefined standard sets of passes - enum StandardSet { - AliasAnalysis, - Function, - Module, - LTO - }; - /// Flags to specify whether a pass should be enabled. Passes registered - /// with the standard sets may specify a minimum optimization level and one - /// or more flags that must be set when constructing the set for the pass to - /// be used. - enum OptimizationFlags { - /// Optimize for size was requested. - OptimizeSize = 1<<0, - /// Allow passes which may make global module changes. - UnitAtATime = 1<<1, - /// UnrollLoops - Allow loop unrolling. - UnrollLoops = 1<<2, - /// Allow library calls to be simplified. - SimplifyLibCalls = 1<<3, - /// Whether the module may have code using exceptions. - HaveExceptions = 1<<4, - // Run an inliner pass as part of this set. - RunInliner = 1<<5 - }; - enum OptimizationFlagComponents { - /// The low bits are used to store the optimization level. When requesting - /// passes, this should store the requested optimisation level. When - /// setting passes, this should set the minimum optimization level at which - /// the pass will run. - OptimizationLevelMask = 0xf, - /// The maximum optimisation level at which the pass is run. - MaxOptimizationLevelMask = 0xf0, - // Flags that must be set - RequiredFlagMask = 0xff00, - // Flags that may not be set. - DisallowedFlagMask = 0xff0000, - MaxOptimizationLevelShift = 4, - RequiredFlagShift = 8, - DisallowedFlagShift = 16 - }; - /// Returns the optimisation level from a set of flags. - static unsigned OptimizationLevel(unsigned flags) { - return flags & OptimizationLevelMask; - } - /// Returns the maximum optimization level for this set of flags - static unsigned MaxOptimizationLevel(unsigned flags) { - return (flags & MaxOptimizationLevelMask) >> 4; - } - /// Constructs a set of flags from the specified minimum and maximum - /// optimisation level - static unsigned OptimizationFlags(unsigned minLevel=0, unsigned maxLevel=0xf, - unsigned requiredFlags=0, - unsigned disallowedFlags=0) { - return ((minLevel & OptimizationLevelMask) | - ((maxLevel<<MaxOptimizationLevelShift) & MaxOptimizationLevelMask) - | ((requiredFlags<<RequiredFlagShift) & RequiredFlagMask) - | ((disallowedFlags<<DisallowedFlagShift) & DisallowedFlagMask)); - } - /// Returns the flags that must be set for this to match - static unsigned RequiredFlags(unsigned flags) { - return (flags & RequiredFlagMask) >> RequiredFlagShift; - } - /// Returns the flags that must not be set for this to match - static unsigned DisallowedFlags(unsigned flags) { - return (flags & DisallowedFlagMask) >> RequiredFlagShift; - } - /// Register a standard pass in the specified set. If flags is non-zero, - /// then the pass will only be returned when the specified flags are set. - template<typename passName> - class RegisterStandardPass { - RegisterStandardPass(StandardSet set, unsigned char *runBefore=0, - unsigned flags=0, unsigned char *ID=0) { - // Use the pass's ID if one is not specified - RegisterDefaultPass(PassInfo::NormalCtor_t(callDefaultCtor<passName>), - ID ? ID : &passName::ID, runBefore, set, flags); - }; - }; - /// Adds the passes from the specified set to a pass manager. - static void AddPassesFromSet(PassManagerBase *PM, - StandardSet Set, - unsigned Flags=0, - bool VerifyEach=false, - Pass *Inliner=0); - private: - /// Registers the default passes. This is set by RegisterStandardPassLists - /// and is called lazily. - static void (*RegisterDefaultPasses)(void); - /// Registers the pass - static void RegisterDefaultPass(PassInfo::NormalCtor_t constructor, - unsigned char *newPass, - unsigned char *oldPass, - StandardSet set, - unsigned flags=0); -}; - /// RegisterAnalysisGroup - Register a Pass as a member of an analysis _group_. /// Analysis groups are used to define an interface (which need not derive from |