mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Remove the long defunct 'DefaultPasses' header. We have a pass manager
builder these days, and this thing hasn't seen updates for a very long time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171741 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
56d433dffe
commit
1ada2ada3c
@ -1,168 +0,0 @@
|
|||||||
//===- llvm/DefaultPasses.h - Default Pass Support code --------*- C++ -*-===//
|
|
||||||
//
|
|
||||||
// The LLVM Compiler Infrastructure
|
|
||||||
//
|
|
||||||
// This file is distributed under the University of Illinois Open Source
|
|
||||||
// License. See LICENSE.TXT for details.
|
|
||||||
//
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
// This file defines the infrastructure for registering the standard pass list.
|
|
||||||
// This defines sets of standard optimizations that plugins can modify and
|
|
||||||
// front ends can use.
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
#ifndef LLVM_DEFAULT_PASS_SUPPORT_H
|
|
||||||
#define LLVM_DEFAULT_PASS_SUPPORT_H
|
|
||||||
|
|
||||||
#include "llvm/PassSupport.h"
|
|
||||||
|
|
||||||
namespace llvm {
|
|
||||||
|
|
||||||
class PassManagerBase;
|
|
||||||
|
|
||||||
/// 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 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// StandardPass - The class responsible for maintaining the lists of standard
|
|
||||||
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 OptimzationFlags(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) >> DisallowedFlagShift;
|
|
||||||
}
|
|
||||||
/// 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 {
|
|
||||||
public:
|
|
||||||
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 : (unsigned char*)&passName::ID, runBefore, set, flags);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
/// Adds the passes from the specified set to the provided 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);
|
|
||||||
/// Creates the verifier pass that is inserted when a VerifyEach is passed to
|
|
||||||
/// AddPassesFromSet()
|
|
||||||
static Pass* (*CreateVerifierPass)(void);
|
|
||||||
/// Registers the pass
|
|
||||||
static void RegisterDefaultPass(PassInfo::NormalCtor_t constructor,
|
|
||||||
unsigned char *newPass,
|
|
||||||
unsigned char *oldPass,
|
|
||||||
StandardSet set,
|
|
||||||
unsigned flags=0);
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace llvm
|
|
||||||
|
|
||||||
#endif
|
|
@ -18,7 +18,6 @@
|
|||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/Analysis/Passes.h"
|
#include "llvm/Analysis/Passes.h"
|
||||||
#include "llvm/Analysis/Verifier.h"
|
#include "llvm/Analysis/Verifier.h"
|
||||||
#include "llvm/DefaultPasses.h"
|
|
||||||
#include "llvm/PassManager.h"
|
#include "llvm/PassManager.h"
|
||||||
#include "llvm/Support/CommandLine.h"
|
#include "llvm/Support/CommandLine.h"
|
||||||
#include "llvm/Support/ManagedStatic.h"
|
#include "llvm/Support/ManagedStatic.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user