[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaTargetMachine.cpp AlphaTargetMachine.h
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.47 - 1.48 AlphaTargetMachine.cpp updated: 1.29 - 1.30 AlphaTargetMachine.h updated: 1.15 - 1.16 --- Log message: Make target asm info a property of the target machine. --- Diffs of the changes: (+13 -11) AlphaAsmPrinter.cpp| 12 ++-- AlphaTargetMachine.cpp |3 ++- AlphaTargetMachine.h |9 + 3 files changed, 13 insertions(+), 11 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.47 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.48 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.47 Wed Sep 6 13:34:40 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Sep 7 17:06:40 2006 @@ -29,20 +29,13 @@ namespace { Statistic EmittedInsts(asm-printer, Number of machine instrs printed); - struct VISIBILITY_HIDDEN AlphaTargetAsmInfo : public TargetAsmInfo { -AlphaTargetAsmInfo() { - AlignmentIsInBytes = false; - PrivateGlobalPrefix = $; -} - }; - struct VISIBILITY_HIDDEN AlphaAsmPrinter : public AsmPrinter { /// Unique incrementer for label values for referencing Global values. /// unsigned LabelNumber; -AlphaAsmPrinter(std::ostream o, TargetMachine tm, TargetAsmInfo *T) +AlphaAsmPrinter(std::ostream o, TargetMachine tm, const TargetAsmInfo *T) : AsmPrinter(o, tm, T), LabelNumber(0) { } @@ -82,8 +75,7 @@ /// FunctionPass *llvm::createAlphaCodePrinterPass (std::ostream o, TargetMachine tm) { - AlphaTargetAsmInfo *TAI = new AlphaTargetAsmInfo(); - return new AlphaAsmPrinter(o, tm, TAI); + return new AlphaAsmPrinter(o, tm, tm.getTargetAsmInfo()); } #include AlphaGenAsmWriter.inc Index: llvm/lib/Target/Alpha/AlphaTargetMachine.cpp diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.29 llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.30 --- llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.29 Sun Sep 3 23:14:57 2006 +++ llvm/lib/Target/Alpha/AlphaTargetMachine.cppThu Sep 7 17:06:40 2006 @@ -53,7 +53,8 @@ : DataLayout(e), FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0), JITInfo(*this), -Subtarget(M, FS) { +Subtarget(M, FS), +AsmInfo(NULL) { } Index: llvm/lib/Target/Alpha/AlphaTargetMachine.h diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.15 llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.16 --- llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.15 Sun Sep 3 23:14:57 2006 +++ llvm/lib/Target/Alpha/AlphaTargetMachine.h Thu Sep 7 17:06:40 2006 @@ -20,6 +20,7 @@ #include AlphaInstrInfo.h #include AlphaJITInfo.h #include AlphaSubtarget.h +#include AlphaTargetAsmInfo.h namespace llvm { @@ -31,9 +32,13 @@ TargetFrameInfo FrameInfo; AlphaJITInfo JITInfo; AlphaSubtarget Subtarget; + AlphaTargetAsmInfo *AsmInfo; public: AlphaTargetMachine(const Module M, const std::string FS); + ~AlphaTargetMachine() { +if (AsmInfo) delete AsmInfo; + } virtual const AlphaInstrInfo *getInstrInfo() const { return InstrInfo; } virtual const TargetFrameInfo *getFrameInfo() const { return FrameInfo; } @@ -46,6 +51,10 @@ return JITInfo; } + virtual const TargetAsmInfo *createTargetAsmInfo() const { +return static_castconst TargetAsmInfo *(new AlphaTargetAsmInfo(*this)); + } + static unsigned getJITMatchQuality(); static unsigned getModuleMatchQuality(const Module M); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaTargetMachine.cpp AlphaTargetMachine.h
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.35 - 1.36 AlphaTargetMachine.cpp updated: 1.23 - 1.24 AlphaTargetMachine.h updated: 1.12 - 1.13 --- 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: (+9 -6) AlphaAsmPrinter.cpp|8 AlphaTargetMachine.cpp |3 ++- AlphaTargetMachine.h |4 +++- 3 files changed, 9 insertions(+), 6 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.35 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.36 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.35 Tue May 2 00:37:32 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Tue May 2 20:29:57 2006 @@ -221,7 +221,7 @@ } bool AlphaAsmPrinter::doFinalization(Module M) { - const TargetData TD = TM.getTargetData(); + const TargetData *TD = TM.getTargetData(); for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) if (I-hasInitializer()) { // External global require no code @@ -232,8 +232,8 @@ O \n\n; std::string name = Mang-getValueName(I); Constant *C = I-getInitializer(); - unsigned Size = TD.getTypeSize(C-getType()); - // unsigned Align = TD.getTypeAlignmentShift(C-getType()); + unsigned Size = TD-getTypeSize(C-getType()); + // unsigned Align = TD-getTypeAlignmentShift(C-getType()); unsigned Align = getPreferredAlignmentLog(I); if (C-isNullValue() @@ -243,7 +243,7 @@ if (I-hasInternalLinkage()) O \t.local name \n; -O \t.comm name , TD.getTypeSize(C-getType()) +O \t.comm name , TD-getTypeSize(C-getType()) , (1 Align) \n; } else { Index: llvm/lib/Target/Alpha/AlphaTargetMachine.cpp diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.23 llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.24 --- llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.23 Sat Apr 8 14:46:55 2006 +++ llvm/lib/Target/Alpha/AlphaTargetMachine.cppTue May 2 20:29:57 2006 @@ -54,7 +54,8 @@ } AlphaTargetMachine::AlphaTargetMachine(const Module M, const std::string FS) - : TargetMachine(alpha, true), + : TargetMachine(alpha), +DataLayout(alpha, true), FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0), JITInfo(*this), Subtarget(M, FS) Index: llvm/lib/Target/Alpha/AlphaTargetMachine.h diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.12 llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.13 --- llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.12 Wed Mar 22 23:43:15 2006 +++ llvm/lib/Target/Alpha/AlphaTargetMachine.h Tue May 2 20:29:57 2006 @@ -26,11 +26,12 @@ class GlobalValue; class AlphaTargetMachine : public TargetMachine { + const TargetData DataLayout; // Calculates type size alignment AlphaInstrInfo InstrInfo; TargetFrameInfo FrameInfo; AlphaJITInfo JITInfo; AlphaSubtarget Subtarget; - + public: AlphaTargetMachine(const Module M, const std::string FS); @@ -40,6 +41,7 @@ virtual const MRegisterInfo *getRegisterInfo() const { return InstrInfo.getRegisterInfo(); } + virtual const TargetData *getTargetData() const { return DataLayout; } virtual TargetJITInfo* getJITInfo() { return JITInfo; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits