From 4c20724407c164d825105cf91a1a815a80d1bf06 Mon Sep 17 00:00:00 2001 From: Quentin Colombet Date: Fri, 11 Mar 2016 17:27:43 +0000 Subject: [PATCH] [IRTranslator] Update getOrCreateBB API to use references. A null basic block is invalid, so just pass a reference. llvm-svn: 263260 --- include/llvm/CodeGen/GlobalISel/IRTranslator.h | 4 +++- lib/CodeGen/GlobalISel/IRTranslator.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/llvm/CodeGen/GlobalISel/IRTranslator.h b/include/llvm/CodeGen/GlobalISel/IRTranslator.h index a8d933a5e8d..621321d6cb1 100644 --- a/include/llvm/CodeGen/GlobalISel/IRTranslator.h +++ b/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/lib/CodeGen/GlobalISel/IRTranslator.cpp b/lib/CodeGen/GlobalISel/IRTranslator.cpp index 4ba21e7ec1d..3e0c0eccbe2 100644 --- a/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/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 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);