diff options
author | Misha Brukman <brukman+llvm@gmail.com> | 2003-06-06 07:11:16 +0000 |
---|---|---|
committer | Misha Brukman <brukman+llvm@gmail.com> | 2003-06-06 07:11:16 +0000 |
commit | a51245036e3f082da43f73c927383d00cfa4437c (patch) | |
tree | 3fd6c50b6b8856b9379bbe28baa3ee582c5a6a44 /lib | |
parent | 940b08dd1e772d22e57851c50ff53a3a1ebc0730 (diff) | |
download | external_llvm-a51245036e3f082da43f73c927383d00cfa4437c.zip external_llvm-a51245036e3f082da43f73c927383d00cfa4437c.tar.gz external_llvm-a51245036e3f082da43f73c927383d00cfa4437c.tar.bz2 |
* 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6652 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/SparcV9/SparcV9TargetMachine.cpp | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/lib/Target/SparcV9/SparcV9TargetMachine.cpp b/lib/Target/SparcV9/SparcV9TargetMachine.cpp index 1ad62aa..8472ce0 100644 --- a/lib/Target/SparcV9/SparcV9TargetMachine.cpp +++ b/lib/Target/SparcV9/SparcV9TargetMachine.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! } |