summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h4
-rw-r--r--llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp8
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);
OpenPOWER on IntegriCloud