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:
Bill Wendling
2009-04-29 00:15:41 +00:00
parent a24d1b1558
commit be8cc2a3de
93 changed files with 400 additions and 346 deletions
@@ -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);
}
+1 -1
View File
@@ -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
+6 -4
View File
@@ -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;
}
+3 -3
View File
@@ -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