Changes in directory llvm/lib/Target/X86:
X86AsmPrinter.cpp updated: 1.175 -> 1.176 X86ISelLowering.cpp updated: 1.197 -> 1.198 X86TargetMachine.cpp updated: 1.112 -> 1.113 X86TargetMachine.h updated: 1.33 -> 1.34 --- Log message: Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759: http://llvm.cs.uiuc.edu/PR759 . --- Diffs of the changes: (+8 -5) X86AsmPrinter.cpp | 4 ++-- X86ISelLowering.cpp | 4 ++-- X86TargetMachine.cpp | 3 ++- X86TargetMachine.h | 2 ++ 4 files changed, 8 insertions(+), 5 deletions(-) Index: llvm/lib/Target/X86/X86AsmPrinter.cpp diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.175 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.176 --- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.175 Tue May 2 12:34:51 2006 +++ llvm/lib/Target/X86/X86AsmPrinter.cpp Tue May 2 20:29:57 2006 @@ -84,7 +84,7 @@ } bool X86SharedAsmPrinter::doFinalization(Module &M) { - const TargetData &TD = TM.getTargetData(); + const TargetData *TD = TM.getTargetData(); // Print out module-level global variables here. for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); @@ -97,7 +97,7 @@ std::string name = Mang->getValueName(I); Constant *C = I->getInitializer(); - unsigned Size = TD.getTypeSize(C->getType()); + unsigned Size = TD->getTypeSize(C->getType()); unsigned Align = getPreferredAlignmentLog(I); if (C->isNullValue() && /* FIXME: Verify correct */ Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.197 llvm/lib/Target/X86/X86ISelLowering.cpp:1.198 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.197 Fri Apr 28 16:29:37 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Tue May 2 20:29:57 2006 @@ -3522,7 +3522,7 @@ if ((Align & 3) != 0 || (I && I->getValue() < Subtarget->getMinRepStrSizeThreshold())) { MVT::ValueType IntPtr = getPointerTy(); - const Type *IntPtrTy = getTargetData().getIntPtrType(); + const Type *IntPtrTy = getTargetData()->getIntPtrType(); std::vector<std::pair<SDOperand, const Type*> > Args; Args.push_back(std::make_pair(Op.getOperand(1), IntPtrTy)); // Extend the ubyte argument to be an int value for the call. @@ -3655,7 +3655,7 @@ if ((Align & 3) != 0 || (I && I->getValue() < Subtarget->getMinRepStrSizeThreshold())) { MVT::ValueType IntPtr = getPointerTy(); - const Type *IntPtrTy = getTargetData().getIntPtrType(); + const Type *IntPtrTy = getTargetData()->getIntPtrType(); std::vector<std::pair<SDOperand, const Type*> > Args; Args.push_back(std::make_pair(Op.getOperand(1), IntPtrTy)); Args.push_back(std::make_pair(Op.getOperand(2), IntPtrTy)); Index: llvm/lib/Target/X86/X86TargetMachine.cpp diff -u llvm/lib/Target/X86/X86TargetMachine.cpp:1.112 llvm/lib/Target/X86/X86TargetMachine.cpp:1.113 --- llvm/lib/Target/X86/X86TargetMachine.cpp:1.112 Sat Apr 8 14:46:55 2006 +++ llvm/lib/Target/X86/X86TargetMachine.cpp Tue May 2 20:29:57 2006 @@ -68,7 +68,8 @@ /// X86TargetMachine ctor - Create an ILP32 architecture model /// X86TargetMachine::X86TargetMachine(const Module &M, const std::string &FS) - : TargetMachine("X86", true, 4, 4, 4, 4, 4), + : TargetMachine("X86"), + DataLayout("X86", true, 4, 4, 4, 4, 4), Subtarget(M, FS), FrameInfo(TargetFrameInfo::StackGrowsDown, Subtarget.getStackAlignment(), -4), Index: llvm/lib/Target/X86/X86TargetMachine.h diff -u llvm/lib/Target/X86/X86TargetMachine.h:1.33 llvm/lib/Target/X86/X86TargetMachine.h:1.34 --- llvm/lib/Target/X86/X86TargetMachine.h:1.33 Wed Mar 22 23:43:16 2006 +++ llvm/lib/Target/X86/X86TargetMachine.h Tue May 2 20:29:57 2006 @@ -26,6 +26,7 @@ namespace llvm { class X86TargetMachine : public TargetMachine { + const TargetData DataLayout; // Calculates type size & alignment X86InstrInfo InstrInfo; X86Subtarget Subtarget; TargetFrameInfo FrameInfo; @@ -42,6 +43,7 @@ virtual const MRegisterInfo *getRegisterInfo() const { return &InstrInfo.getRegisterInfo(); } + virtual const TargetData *getTargetData() const { return &DataLayout; } virtual bool addPassesToEmitMachineCode(FunctionPassManager &PM, MachineCodeEmitter &MCE); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits