[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