void setInstr(MachineInstr &MI);
/// @}
+ /// Set the insertion point to before MI, and set the debug loc to MI's loc.
+ /// \pre MI must be in getMF().
+ void setInstrAndDebugLoc(MachineInstr &MI) {
+ setInstr(MI);
+ setDebugLoc(MI.getDebugLoc());
+ }
+
void setChangeObserver(GISelChangeObserver &Observer);
void stopObservingChanges();
/// @}
unsigned Size = LLTy.getSizeInBits();
auto &Ctx = MIRBuilder.getMF().getFunction().getContext();
- MIRBuilder.setInstr(MI);
- MIRBuilder.setDebugLoc(MI.getDebugLoc());
+ MIRBuilder.setInstrAndDebugLoc(MI);
switch (MI.getOpcode()) {
default:
LegalizerHelper::LegalizeResult LegalizerHelper::narrowScalar(MachineInstr &MI,
unsigned TypeIdx,
LLT NarrowTy) {
- MIRBuilder.setInstr(MI);
- MIRBuilder.setDebugLoc(MI.getDebugLoc());
+ MIRBuilder.setInstrAndDebugLoc(MI);
uint64_t SizeOp0 = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits();
uint64_t NarrowSize = NarrowTy.getSizeInBits();
LegalizerHelper::LegalizeResult
LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
- MIRBuilder.setInstr(MI);
- MIRBuilder.setDebugLoc(MI.getDebugLoc());
+ MIRBuilder.setInstrAndDebugLoc(MI);
switch (MI.getOpcode()) {
default:
LegalizerHelper::LegalizeResult
LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
using namespace TargetOpcode;
- MIRBuilder.setInstr(MI);
- MIRBuilder.setDebugLoc(MI.getDebugLoc());
+ MIRBuilder.setInstrAndDebugLoc(MI);
switch(MI.getOpcode()) {
default:
LLT NarrowTy) {
using namespace TargetOpcode;
- MIRBuilder.setInstr(MI);
- MIRBuilder.setDebugLoc(MI.getDebugLoc());
+ MIRBuilder.setInstrAndDebugLoc(MI);
switch (MI.getOpcode()) {
case G_IMPLICIT_DEF:
return fewerElementsVectorImplicitDef(MI, TypeIdx, NarrowTy);