[llvm-commits] CVS: llvm/lib/Target/X86/X86AsmPrinter.cpp X86ISelLowering.cpp X86TargetMachine.cpp X86TargetMachine.h

Owen Anderson resistor at mac.com
Tue May 2 18:30:21 PDT 2006



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);






More information about the llvm-commits mailing list