[PATCH] D20153: [ARM] PR25722 Delay ARM constant pool creation

Peter Smith via llvm-commits llvm-commits at lists.llvm.org
Wed May 11 02:51:15 PDT 2016


peter.smith created this revision.
peter.smith added reviewers: rengolin, olista01, t.p.northover.
peter.smith added a subscriber: llvm-commits.
Herald added subscribers: rengolin, aemerson.

This is first in a series of patches to fix PR25722.
    
This change adds a new constant pool kind to ARMOperand. When parsing the operand for =immediate we create an instance of this operand rather than creating a constant pool entry and rewriting the operand.
    
As the new operand kind is only created for ldr rt,= we can make ldr rt,= an explicit pseudo instruction in ARM, Thumb and Thumb2
    
The pseudo instruction is expanded in processInstruction(). This creates the constant pool and transforms the pseudo instruction into a pc-relative ldr to the constant pool.
    
There are no functional changes and no modifications needed to existing tests.

http://reviews.llvm.org/D20153

Files:
  lib/Target/ARM/ARMInstrFormats.td
  lib/Target/ARM/ARMInstrInfo.td
  lib/Target/ARM/ARMInstrThumb.td
  lib/Target/ARM/ARMInstrThumb2.td
  lib/Target/ARM/AsmParser/ARMAsmParser.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20153.56866.patch
Type: text/x-patch
Size: 8438 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160511/f5b7317c/attachment.bin>


More information about the llvm-commits mailing list