diff options
-rw-r--r-- | include/llvm/CodeGen/MachineCodeEmitter.h | 8 | ||||
-rw-r--r-- | lib/CodeGen/MachineCodeEmitter.cpp | 12 |
2 files changed, 16 insertions, 4 deletions
diff --git a/include/llvm/CodeGen/MachineCodeEmitter.h b/include/llvm/CodeGen/MachineCodeEmitter.h index ba70b18d18..1db7183131 100644 --- a/include/llvm/CodeGen/MachineCodeEmitter.h +++ b/include/llvm/CodeGen/MachineCodeEmitter.h @@ -10,7 +10,10 @@ #ifndef LLVM_CODEGEN_MACHINE_CODE_EMITTER_H #define LLVM_CODEGEN_MACHINE_CODE_EMITTER_H +#include <iostream> #include <string> +class BasicBlock; +class MachineInstr; class MachineFunction; class MachineBasicBlock; class MachineConstantPool; @@ -91,6 +94,11 @@ struct MachineCodeEmitter { /// static MachineCodeEmitter* createFilePrinterMachineCodeEmitter(MachineCodeEmitter&); + + /// + virtual void saveBBreference(BasicBlock* BB, MachineInstr &MI) { + std::cerr << "Save BB reference unimplemented\n"; + } }; #endif diff --git a/lib/CodeGen/MachineCodeEmitter.cpp b/lib/CodeGen/MachineCodeEmitter.cpp index e67b4aaa02..607480c75d 100644 --- a/lib/CodeGen/MachineCodeEmitter.cpp +++ b/lib/CodeGen/MachineCodeEmitter.cpp @@ -158,9 +158,7 @@ namespace { } } void emitPCRelativeDisp(Value *V) { - // put block in mapping BB -> { instr, address }. when BB is beginning to - // output, find instr, set disp, overwrite instr at addr using the - // unsigned value gotten from emitter + if (MCE) MCE->emitPCRelativeDisp(V); } void emitGlobalAddress(GlobalValue *V, bool isPCRelative) { @@ -173,9 +171,15 @@ namespace { void emitFunctionConstantValueAddress(unsigned ConstantNum, int Offset) { if (MCE) MCE->emitFunctionConstantValueAddress(ConstantNum, Offset); } + + virtual void saveBBreference(BasicBlock* BB, MachineInstr &MI) { + if (MCE) MCE->saveBBreference(BB, MI); + } + }; } -MachineCodeEmitter *MachineCodeEmitter::createFilePrinterMachineCodeEmitter(MachineCodeEmitter &MCE) { +MachineCodeEmitter *MachineCodeEmitter::createFilePrinterMachineCodeEmitter +(MachineCodeEmitter &MCE) { return new FilePrinterMachineCodeEmitter(MCE, std::cerr); } |