diff options
-rw-r--r-- | lib/Target/ARM/ARMConstantIslandPass.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMConstantIslandPass.cpp b/lib/Target/ARM/ARMConstantIslandPass.cpp index db30428d96..62e47172e2 100644 --- a/lib/Target/ARM/ARMConstantIslandPass.cpp +++ b/lib/Target/ARM/ARMConstantIslandPass.cpp @@ -122,9 +122,7 @@ FunctionPass *llvm::createARMConstantIslandPass() { } bool ARMConstantIslands::runOnMachineFunction(MachineFunction &Fn) { - // If there are no constants, there is nothing to do. MachineConstantPool &MCP = *Fn.getConstantPool(); - if (MCP.isEmpty()) return false; TII = Fn.getTarget().getInstrInfo(); TAI = Fn.getTarget().getTargetAsmInfo(); @@ -136,7 +134,8 @@ bool ARMConstantIslands::runOnMachineFunction(MachineFunction &Fn) { // Perform the initial placement of the constant pool entries. To start with, // we put them all at the end of the function. std::vector<MachineInstr*> CPEMIs; - DoInitialPlacement(Fn, CPEMIs); + if (!MCP.isEmpty()) + DoInitialPlacement(Fn, CPEMIs); /// The next UID to take is the first unused one. NextUID = CPEMIs.size(); |