mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
Second attempt:
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70343 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -48,9 +48,9 @@ namespace {
|
||||
class VISIBILITY_HIDDEN SPUAsmPrinter : public AsmPrinter {
|
||||
std::set<std::string> FnStubs, GVStubs;
|
||||
public:
|
||||
SPUAsmPrinter(raw_ostream &O, TargetMachine &TM,
|
||||
const TargetAsmInfo *T, bool F, bool V) :
|
||||
AsmPrinter(O, TM, T, F, V) {}
|
||||
explicit SPUAsmPrinter(raw_ostream &O, TargetMachine &TM,
|
||||
const TargetAsmInfo *T, unsigned OL, bool V) :
|
||||
AsmPrinter(O, TM, T, OL, V) {}
|
||||
|
||||
virtual const char *getPassName() const {
|
||||
return "STI CBEA SPU Assembly Printer";
|
||||
@@ -615,6 +615,6 @@ bool LinuxAsmPrinter::doFinalization(Module &M) {
|
||||
///
|
||||
FunctionPass *llvm::createSPUAsmPrinterPass(raw_ostream &o,
|
||||
SPUTargetMachine &tm,
|
||||
bool fast, bool verbose) {
|
||||
return new LinuxAsmPrinter(o, tm, tm.getTargetAsmInfo(), fast, verbose);
|
||||
unsigned OptLevel, bool verbose) {
|
||||
return new LinuxAsmPrinter(o, tm, tm.getTargetAsmInfo(), OptLevel, verbose);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace llvm {
|
||||
FunctionPass *createSPUISelDag(SPUTargetMachine &TM);
|
||||
FunctionPass *createSPUAsmPrinterPass(raw_ostream &o,
|
||||
SPUTargetMachine &tm,
|
||||
bool fast, bool verbose);
|
||||
unsigned OptLevel, bool verbose);
|
||||
|
||||
/*--== Utility functions/predicates/etc used all over the place: --==*/
|
||||
//! Predicate test for a signed 10-bit value
|
||||
|
||||
@@ -81,15 +81,17 @@ SPUTargetMachine::SPUTargetMachine(const Module &M, const std::string &FS)
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
bool
|
||||
SPUTargetMachine::addInstSelector(PassManagerBase &PM, bool Fast)
|
||||
SPUTargetMachine::addInstSelector(PassManagerBase &PM, unsigned OptLevel)
|
||||
{
|
||||
// Install an instruction selector.
|
||||
PM.add(createSPUISelDag(*this));
|
||||
return false;
|
||||
}
|
||||
|
||||
bool SPUTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast,
|
||||
bool Verbose, raw_ostream &Out) {
|
||||
PM.add(createSPUAsmPrinterPass(Out, *this, Fast, Verbose));
|
||||
bool SPUTargetMachine::addAssemblyEmitter(PassManagerBase &PM,
|
||||
unsigned OptLevel,
|
||||
bool Verbose,
|
||||
raw_ostream &Out) {
|
||||
PM.add(createSPUAsmPrinterPass(Out, *this, OptLevel, Verbose));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -83,9 +83,9 @@ public:
|
||||
}
|
||||
|
||||
// Pass Pipeline Configuration
|
||||
virtual bool addInstSelector(PassManagerBase &PM, bool /*Fast*/);
|
||||
virtual bool addAssemblyEmitter(PassManagerBase &PM, bool /*Fast*/,
|
||||
bool /*Verbose*/, raw_ostream &Out);
|
||||
virtual bool addInstSelector(PassManagerBase &PM, unsigned OptLevel);
|
||||
virtual bool addAssemblyEmitter(PassManagerBase &PM, unsigned OptLevel,
|
||||
bool Verbose, raw_ostream &Out);
|
||||
};
|
||||
|
||||
} // end namespace llvm
|
||||
|
||||
Reference in New Issue
Block a user