diff options
-rw-r--r-- | llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h | 4 | ||||
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h b/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h index a8d933a5e8d..621321d6cb1 100644 --- a/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h +++ b/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h @@ -114,7 +114,9 @@ private: /// Get the sequence of VRegs for that \p Val. unsigned getOrCreateVReg(const Value *Val); - MachineBasicBlock &getOrCreateBB(const BasicBlock *BB); + /// Get the MachineBasicBlock that represents \p BB. + /// If such basic block does not exist, it is created. + MachineBasicBlock &getOrCreateBB(const BasicBlock &BB); public: // Ctor, nothing fancy. diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index 4ba21e7ec1d..3e0c0eccbe2 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -51,8 +51,8 @@ unsigned IRTranslator::getOrCreateVReg(const Value *Val) { return ValReg; } -MachineBasicBlock &IRTranslator::getOrCreateBB(const BasicBlock *BB) { - MachineBasicBlock *&MBB = BBToMBB[BB]; +MachineBasicBlock &IRTranslator::getOrCreateBB(const BasicBlock &BB) { + MachineBasicBlock *&MBB = BBToMBB[&BB]; if (!MBB) { MachineFunction &MF = MIRBuilder.getMF(); MBB = MF.CreateMachineBasicBlock(); @@ -111,7 +111,7 @@ bool IRTranslator::runOnMachineFunction(MachineFunction &MF) { MIRBuilder.setFunction(MF); MRI = &MF.getRegInfo(); // Setup the arguments. - MachineBasicBlock &MBB = getOrCreateBB(&F.front()); + MachineBasicBlock &MBB = getOrCreateBB(F.front()); MIRBuilder.setBasicBlock(MBB); SmallVector<unsigned, 8> VRegArgs; for (const Argument &Arg: F.args()) @@ -122,7 +122,7 @@ bool IRTranslator::runOnMachineFunction(MachineFunction &MF) { report_fatal_error("Unable to lower arguments"); for (const BasicBlock &BB: F) { - MachineBasicBlock &MBB = getOrCreateBB(&BB); + MachineBasicBlock &MBB = getOrCreateBB(BB); MIRBuilder.setBasicBlock(MBB); for (const Instruction &Inst: BB) { bool Succeeded = translate(Inst); |