* Removed PreSelection pass because that is now done in the JIT
authorMisha Brukman <brukman+llvm@gmail.com>
Fri, 6 Jun 2003 07:11:16 +0000 (07:11 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Fri, 6 Jun 2003 07:11:16 +0000 (07:11 +0000)
* 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6652 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9TargetMachine.cpp

index 1ad62aa821e956b21fc17f17c9c968a627d63501..8472ce0929c4d3ae8c19f0795ca49b197ec067e3 100644 (file)
@@ -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!
 }