summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMisha Brukman <brukman+llvm@gmail.com>2003-06-06 07:11:16 +0000
committerMisha Brukman <brukman+llvm@gmail.com>2003-06-06 07:11:16 +0000
commit0941cd11c805c24ab75e3e0ed18f16a251027a0b (patch)
tree309b142751f777e6b8bc84220f8aa4decd2f756b /llvm/lib
parentb630abfd474b3843ebc4e40d9f27aa1b4b4d537b (diff)
downloadbcm5719-llvm-0941cd11c805c24ab75e3e0ed18f16a251027a0b.tar.gz
bcm5719-llvm-0941cd11c805c24ab75e3e0ed18f16a251027a0b.zip
* Removed PreSelection pass because that is now done in the JIT
* Removed instruction scheduling as it is too slow to run in a JIT environment * Removed other passes because they aren't necessary and can slow JIT down llvm-svn: 6652
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/Sparc/Sparc.cpp32
1 files changed, 10 insertions, 22 deletions
diff --git a/llvm/lib/Target/Sparc/Sparc.cpp b/llvm/lib/Target/Sparc/Sparc.cpp
index 1ad62aa821e..8472ce0929c 100644
--- a/llvm/lib/Target/Sparc/Sparc.cpp
+++ b/llvm/lib/Target/Sparc/Sparc.cpp
@@ -198,34 +198,24 @@ bool UltraSparc::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out)
// generation for the UltraSparc.
//
bool UltraSparc::addPassesToJITCompile(PassManager &PM) {
+ const TargetData &TD = getTargetData();
+
+ PM.add(new TargetData("lli", TD.isLittleEndian(), TD.getPointerSize(),
+ TD.getPointerAlignment(), TD.getDoubleAlignment()));
+
+ // Replace malloc and free instructions with library calls.
+ // Do this after tracing until lli implements these lib calls.
+ // For now, it will emulate malloc and free internally.
+ PM.add(createLowerAllocationsPass());
+
// FIXME: implement the switch instruction in the instruction selector.
PM.add(createLowerSwitchPass());
// Construct and initialize the MachineFunction object for this fn.
PM.add(createMachineCodeConstructionPass(*this));
- //Insert empty stackslots in the stack frame of each function
- //so %fp+offset-8 and %fp+offset-16 are empty slots now!
- PM.add(createStackSlotsPass(*this));
-
- // Specialize LLVM code for this target machine and then
- // run basic dataflow optimizations on LLVM code.
-#if 0
- if (!DisablePreSelect) {
- PM.add(createPreSelectionPass(*this));
- PM.add(createReassociatePass());
- PM.add(createLICMPass());
- PM.add(createGCSEPass());
- }
-#endif
-
PM.add(createInstructionSelectionPass(*this));
-#if 0
- if (!DisableSched)
- PM.add(createInstructionSchedulingWithSSAPass(*this));
-#endif
-
// new pass: convert Value* in MachineOperand to an unsigned register
// this brings it in line with what the X86 JIT's RegisterAllocator expects
//PM.add(createAddRegNumToValuesPass());
@@ -233,10 +223,8 @@ bool UltraSparc::addPassesToJITCompile(PassManager &PM) {
PM.add(getRegisterAllocator(*this));
PM.add(getPrologEpilogInsertionPass());
-#if 0
if (!DisablePeephole)
PM.add(createPeepholeOptsPass(*this));
-#endif
return false; // success!
}
OpenPOWER on IntegriCloud