From e00897c5a91febe90ba21082fc636be892bf9bf1 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Thu, 29 Sep 2011 23:50:42 +0000 Subject: [PATCH] Create a machine basic block in the constant pool and retrieve the symbol for an MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140824 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMAsmPrinter.cpp | 3 +++ lib/Target/ARM/ARMBaseInstrInfo.cpp | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp index fe8a65e700f..f5d5248d36a 100644 --- a/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/lib/Target/ARM/ARMAsmPrinter.cpp @@ -853,6 +853,9 @@ EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV) { } else if (ACPV->isGlobalValue()) { const GlobalValue *GV = ACPV->getGV(); MCSym = GetARMGVSymbol(GV); + } else if (ACPV->isMachineBasicBlock()) { + const MachineBasicBlock *MBB = ACPV->getMBB(); + MCSym = MBB->getSymbol(); } else { assert(ACPV->isExtSymbol() && "unrecognized constant pool value"); MCSym = GetExternalSymbolSymbol(ACPV->getSymbol()); diff --git a/lib/Target/ARM/ARMBaseInstrInfo.cpp b/lib/Target/ARM/ARMBaseInstrInfo.cpp index 30830974355..ffa99585920 100644 --- a/lib/Target/ARM/ARMBaseInstrInfo.cpp +++ b/lib/Target/ARM/ARMBaseInstrInfo.cpp @@ -1065,6 +1065,10 @@ static unsigned duplicateCPV(MachineFunction &MF, unsigned &CPI) { else if (ACPV->isLSDA()) NewCPV = new ARMConstantPoolValue(MF.getFunction(), PCLabelId, ARMCP::CPLSDA, 4); + else if (ACPV->isMachineBasicBlock()) + NewCPV = new ARMConstantPoolValue(MF.getFunction()->getContext(), + ACPV->getMBB(), PCLabelId, + ARMCP::CPMachineBasicBlock, 4); else llvm_unreachable("Unexpected ARM constantpool value type!!"); CPI = MCP->getConstantPoolIndex(NewCPV, MCPE.getAlignment());