#ifndef LLVM_CODEGEN_MACHINE_CODE_EMITTER_H
#define LLVM_CODEGEN_MACHINE_CODE_EMITTER_H
-struct MachineCodeEmitter {
+class MachineFunction;
+class MachineBasicBlock;
+struct MachineCodeEmitter {
+ /// startFunction - This callback is invoked when the specified function is
+ /// about to be code generated.
+ ///
+ virtual void startFunction(MachineFunction &F) {}
+ /// finishFunction - This callback is invoked when the specified function has
+ /// finished code generation.
+ ///
+ virtual void finishFunction(MachineFunction &F) {}
+
+ /// startBasicBlock - This callback is invoked when a new basic block is about
+ /// to be emitted.
+ ///
+ virtual void startBasicBlock(MachineBasicBlock &BB) {}
+ /// emitByte - This callback is invoked when a byte needs to be written to the
+ /// output stream.
+ virtual void emitByte(unsigned char B) {}
};
#endif