diff options
| author | Bill Wendling <isanbard@gmail.com> | 2009-02-24 08:30:20 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2009-02-24 08:30:20 +0000 |
| commit | c5437ea42948f1e4cc89c0e8d944a380e6c880e7 (patch) | |
| tree | b8172788c0ab3e3f721cb36b1f6ac29499ed2ab0 /llvm/lib/Target/ARM/AsmPrinter | |
| parent | 0b0dcd987da5ea4f557c936616dc65f7adc8e187 (diff) | |
| download | bcm5719-llvm-c5437ea42948f1e4cc89c0e8d944a380e6c880e7.tar.gz bcm5719-llvm-c5437ea42948f1e4cc89c0e8d944a380e6c880e7.zip | |
Overhaul my earlier submission due to feedback. It's a large patch, but most of
them are generic changes.
- Use the "fast" flag that's already being passed into the asm printers instead
of shoving it into the DwarfWriter.
- Instead of calling "MI->getParent()->getParent()" for every MI, set the
machine function when calling "runOnMachineFunction" in the asm printers.
llvm-svn: 65379
Diffstat (limited to 'llvm/lib/Target/ARM/AsmPrinter')
| -rw-r--r-- | llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp index 822cc2eb75b..2f1da52f2d2 100644 --- a/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp +++ b/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp @@ -42,13 +42,7 @@ using namespace llvm; STATISTIC(EmittedInsts, "Number of machine instrs printed"); namespace { - struct VISIBILITY_HIDDEN ARMAsmPrinter : public AsmPrinter { - ARMAsmPrinter(raw_ostream &O, TargetMachine &TM, const TargetAsmInfo *T) - : AsmPrinter(O, TM, T), DW(0), MMI(NULL), AFI(NULL), MCP(NULL), - InCPMode(false) { - Subtarget = &TM.getSubtarget<ARMSubtarget>(); - } - + class VISIBILITY_HIDDEN ARMAsmPrinter : public AsmPrinter { DwarfWriter *DW; MachineModuleInfo *MMI; @@ -85,7 +79,14 @@ namespace { /// True if asm printer is printing a series of CONSTPOOL_ENTRY. bool InCPMode; - + public: + ARMAsmPrinter(raw_ostream &O, TargetMachine &TM, + const TargetAsmInfo *T, bool F) + : AsmPrinter(O, TM, T, F), DW(0), MMI(NULL), AFI(NULL), MCP(NULL), + InCPMode(false) { + Subtarget = &TM.getSubtarget<ARMSubtarget>(); + } + virtual const char *getPassName() const { return "ARM Assembly Printer"; } @@ -183,6 +184,8 @@ namespace { /// method to print assembly for each instruction. /// bool ARMAsmPrinter::runOnMachineFunction(MachineFunction &MF) { + this->MF = &MF; + AFI = MF.getInfo<ARMFunctionInfo>(); MCP = MF.getConstantPool(); @@ -1039,8 +1042,9 @@ bool ARMAsmPrinter::doFinalization(Module &M) { /// regardless of whether the function is in SSA form. /// FunctionPass *llvm::createARMCodePrinterPass(raw_ostream &o, - ARMTargetMachine &tm) { - return new ARMAsmPrinter(o, tm, tm.getTargetAsmInfo()); + ARMTargetMachine &tm, + bool fast) { + return new ARMAsmPrinter(o, tm, tm.getTargetAsmInfo(), fast); } namespace { |

