diff options
Diffstat (limited to 'include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h')
-rw-r--r-- | include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h b/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h index a067262bd682..cdd2c84f5934 100644 --- a/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h +++ b/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h @@ -21,6 +21,8 @@ #include "llvm/CodeGen/LowLevelType.h" #include "llvm/IR/DebugLoc.h" +#include <queue> + namespace llvm { // Forward declarations. @@ -47,6 +49,8 @@ class MachineIRBuilder { bool Before; /// @} + std::function<void(MachineInstr *)> InsertedInstr; + const TargetInstrInfo &getTII() { assert(TII && "TargetInstrInfo is not set"); return *TII; @@ -86,6 +90,13 @@ public: void setInstr(MachineInstr &MI, bool Before = true); /// @} + /// Control where instructions we create are recorded (typically for + /// visiting again later during legalization). + /// @{ + void recordInsertions(std::function<void(MachineInstr *)> InsertedInstr); + void stopRecordingInsertions(); + /// @} + /// Set the debug location to \p DL for all the next build instructions. void setDebugLoc(const DebugLoc &DL) { this->DL = DL; } |