diff options
author | Bill Wendling <isanbard@gmail.com> | 2011-09-29 23:50:42 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2011-09-29 23:50:42 +0000 |
commit | e00897c5a91febe90ba21082fc636be892bf9bf1 (patch) | |
tree | 7eb52b0faa01e48826ba0a1c4c415fa011a3b7fa /lib | |
parent | 4dd9b091cceaa62f72ed8370f8a946fbe474d8a2 (diff) | |
download | llvm-e00897c5a91febe90ba21082fc636be892bf9bf1.tar.gz llvm-e00897c5a91febe90ba21082fc636be892bf9bf1.tar.bz2 llvm-e00897c5a91febe90ba21082fc636be892bf9bf1.tar.xz |
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
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMAsmPrinter.cpp | 3 | ||||
-rw-r--r-- | lib/Target/ARM/ARMBaseInstrInfo.cpp | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp index fe8a65e700..f5d5248d36 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 3083097435..ffa9958592 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()); |