diff options
Diffstat (limited to 'llvm/lib/Target/X86')
-rw-r--r-- | llvm/lib/Target/X86/InstSelectPattern.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Target/X86/InstSelectSimple.cpp | 12 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86.h | 6 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86JITInfo.h | 5 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86TargetMachine.cpp | 19 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86TargetMachine.h | 2 |
6 files changed, 16 insertions, 31 deletions
diff --git a/llvm/lib/Target/X86/InstSelectPattern.cpp b/llvm/lib/Target/X86/InstSelectPattern.cpp index a09d104d418..6b848b00ea2 100644 --- a/llvm/lib/Target/X86/InstSelectPattern.cpp +++ b/llvm/lib/Target/X86/InstSelectPattern.cpp @@ -119,7 +119,6 @@ void ISel::expandCall(SelectionDAG &SD, CallInst &CI) { /// into a machine code representation using pattern matching and a machine /// description file. /// -FunctionPass *llvm::createX86PatternInstructionSelector(TargetMachine &TM, - IntrinsicLowering &IL) { +FunctionPass *llvm::createX86PatternInstructionSelector(TargetMachine &TM) { return new ISel(TM); } diff --git a/llvm/lib/Target/X86/InstSelectSimple.cpp b/llvm/lib/Target/X86/InstSelectSimple.cpp index 1029fc669b9..0cd24813e95 100644 --- a/llvm/lib/Target/X86/InstSelectSimple.cpp +++ b/llvm/lib/Target/X86/InstSelectSimple.cpp @@ -18,7 +18,6 @@ #include "llvm/DerivedTypes.h" #include "llvm/Function.h" #include "llvm/Instructions.h" -#include "llvm/Intrinsics.h" #include "llvm/IntrinsicLowering.h" #include "llvm/Pass.h" #include "llvm/CodeGen/MachineConstantPool.h" @@ -59,7 +58,6 @@ inline static MachineInstrBuilder BMI(MachineBasicBlock *MBB, namespace { struct ISel : public FunctionPass, InstVisitor<ISel> { TargetMachine &TM; - IntrinsicLowering &IL; MachineFunction *F; // The function we are compiling into MachineBasicBlock *BB; // The current MBB we are compiling int VarArgsFrameIndex; // FrameIndex for start of varargs area @@ -69,8 +67,7 @@ namespace { // MBBMap - Mapping between LLVM BB -> Machine BB std::map<const BasicBlock*, MachineBasicBlock*> MBBMap; - ISel(TargetMachine &tm, IntrinsicLowering &il) - : TM(tm), IL(il), F(0), BB(0) {} + ISel(TargetMachine &tm) : TM(tm), F(0), BB(0) {} /// runOnFunction - Top level implementation of instruction selection for /// the entire function. @@ -1116,7 +1113,7 @@ void ISel::LowerUnknownIntrinsicFunctionCalls(Function &F) { default: // All other intrinsic calls we must lower. Instruction *Before = CI->getPrev(); - IL.LowerIntrinsicCall(CI); + TM.getIntrinsicLowering().LowerIntrinsicCall(CI); if (Before) { // Move iterator to instruction after call I = Before; ++I; } else { @@ -2196,7 +2193,6 @@ void ISel::visitFreeInst(FreeInst &I) { /// into a machine code representation is a very simple peep-hole fashion. The /// generated code sucks but the implementation is nice and simple. /// -FunctionPass *llvm::createX86SimpleInstructionSelector(TargetMachine &TM, - IntrinsicLowering &IL) { - return new ISel(TM, IL); +FunctionPass *llvm::createX86SimpleInstructionSelector(TargetMachine &TM) { + return new ISel(TM); } diff --git a/llvm/lib/Target/X86/X86.h b/llvm/lib/Target/X86/X86.h index 65c13bf001f..54e2861a5f6 100644 --- a/llvm/lib/Target/X86/X86.h +++ b/llvm/lib/Target/X86/X86.h @@ -27,15 +27,13 @@ class IntrinsicLowering; /// into a machine code representation in a very simple peep-hole fashion. The /// generated code sucks but the implementation is nice and simple. /// -FunctionPass *createX86SimpleInstructionSelector(TargetMachine &TM, - IntrinsicLowering &IL); +FunctionPass *createX86SimpleInstructionSelector(TargetMachine &TM); /// createX86PatternInstructionSelector - This pass converts an LLVM function /// into a machine code representation using pattern matching and a machine /// description file. /// -FunctionPass *createX86PatternInstructionSelector(TargetMachine &TM, - IntrinsicLowering &IL); +FunctionPass *createX86PatternInstructionSelector(TargetMachine &TM); /// createX86SSAPeepholeOptimizerPass - Create a pass to perform SSA-based X86 /// specific peephole optimizations. diff --git a/llvm/lib/Target/X86/X86JITInfo.h b/llvm/lib/Target/X86/X86JITInfo.h index 0ebb4c5208e..75efb19a521 100644 --- a/llvm/lib/Target/X86/X86JITInfo.h +++ b/llvm/lib/Target/X86/X86JITInfo.h @@ -22,9 +22,8 @@ namespace llvm { class X86JITInfo : public TargetJITInfo { TargetMachine &TM; - IntrinsicLowering &IL; public: - X86JITInfo(TargetMachine &tm, IntrinsicLowering &il) : TM(tm), IL(il) {} + X86JITInfo(TargetMachine &tm) : TM(tm) {} /// addPassesToJITCompile - Add passes to the specified pass manager to /// implement a fast dynamic compiler for this target. Return true if this @@ -37,7 +36,7 @@ namespace llvm { /// overwriting OLD with a branch to NEW. This is used for self-modifying /// code. /// - virtual void replaceMachineCodeForFunction (void *Old, void *New); + virtual void replaceMachineCodeForFunction(void *Old, void *New); /// getJITStubForFunction - Create or return a stub for the specified /// function. This stub acts just like the specified function, except that diff --git a/llvm/lib/Target/X86/X86TargetMachine.cpp b/llvm/lib/Target/X86/X86TargetMachine.cpp index e4d1ecb9b14..879ad503117 100644 --- a/llvm/lib/Target/X86/X86TargetMachine.cpp +++ b/llvm/lib/Target/X86/X86TargetMachine.cpp @@ -45,15 +45,10 @@ TargetMachine *llvm::allocateX86TargetMachine(const Module &M, /// X86TargetMachine ctor - Create an ILP32 architecture model /// -X86TargetMachine::X86TargetMachine(const Module &M, IntrinsicLowering *il) - : TargetMachine("X86", true, 4, 4, 4, 4, 4), - IL(il ? il : new DefaultIntrinsicLowering()), +X86TargetMachine::X86TargetMachine(const Module &M, IntrinsicLowering *IL) + : TargetMachine("X86", IL, true, 4, 4, 4, 4, 4), FrameInfo(TargetFrameInfo::StackGrowsDown, 8/*16 for SSE*/, 4), - JITInfo(*this, *IL) { -} - -X86TargetMachine::~X86TargetMachine() { - delete IL; + JITInfo(*this) { } @@ -72,9 +67,9 @@ bool X86TargetMachine::addPassesToEmitAssembly(PassManager &PM, PM.add(createCFGSimplificationPass()); if (NoPatternISel) - PM.add(createX86SimpleInstructionSelector(*this, *IL)); + PM.add(createX86SimpleInstructionSelector(*this)); else - PM.add(createX86PatternInstructionSelector(*this, *IL)); + PM.add(createX86PatternInstructionSelector(*this)); // Run optional SSA-based machine code optimizations next... if (!NoSSAPeephole) @@ -127,9 +122,9 @@ void X86JITInfo::addPassesToJITCompile(FunctionPassManager &PM) { PM.add(createCFGSimplificationPass()); if (NoPatternISel) - PM.add(createX86SimpleInstructionSelector(TM, IL)); + PM.add(createX86SimpleInstructionSelector(TM)); else - PM.add(createX86PatternInstructionSelector(TM, IL)); + PM.add(createX86PatternInstructionSelector(TM)); // Run optional SSA-based machine code optimizations next... if (!NoSSAPeephole) diff --git a/llvm/lib/Target/X86/X86TargetMachine.h b/llvm/lib/Target/X86/X86TargetMachine.h index 6cd8ac1ab3d..be8d8879a12 100644 --- a/llvm/lib/Target/X86/X86TargetMachine.h +++ b/llvm/lib/Target/X86/X86TargetMachine.h @@ -24,13 +24,11 @@ namespace llvm { class IntrinsicLowering; class X86TargetMachine : public TargetMachine { - IntrinsicLowering *IL; X86InstrInfo InstrInfo; TargetFrameInfo FrameInfo; X86JITInfo JITInfo; public: X86TargetMachine(const Module &M, IntrinsicLowering *IL); - ~X86TargetMachine(); virtual const X86InstrInfo &getInstrInfo() const { return InstrInfo; } virtual const TargetFrameInfo &getFrameInfo() const { return FrameInfo; } |