diff options
| author | Sam Parker <sam.parker@arm.com> | 2017-07-14 08:23:56 +0000 |
|---|---|---|
| committer | Sam Parker <sam.parker@arm.com> | 2017-07-14 08:23:56 +0000 |
| commit | 28934485768b2503b49963d0e4c141a8e28ebc83 (patch) | |
| tree | 6088e29b288304838974ff88766f03f023d739f2 /llvm/test/CodeGen/Thumb/select.ll | |
| parent | 202a9f6817cd3fc6de20c88813986a1b8bfd4cfa (diff) | |
| download | bcm5719-llvm-28934485768b2503b49963d0e4c141a8e28ebc83.tar.gz bcm5719-llvm-28934485768b2503b49963d0e4c141a8e28ebc83.zip | |
[ARM] Allow rematerialization of ARM Thumb literal pool loads
Constants are crucial for code size in the ARM Thumb-1 instruction
set. The 16 bit instruction size often does not offer enough space
for immediate arguments. This means that additional instructions are
frequently used to load constants into registers. Since constants are
hoisted, this can lead to significant register spillage if they are
used multiple times in a single function. This can be avoided by
rematerialization, i.e. recomputing a constant instead of reloading
it from the stack. This patch fixes the rematerialization of literal
pool loads in the ARM Thumb instruction set.
Patch by Philip Ginsbach
Differential Revision: https://reviews.llvm.org/D33936
llvm-svn: 308004
Diffstat (limited to 'llvm/test/CodeGen/Thumb/select.ll')
| -rw-r--r-- | llvm/test/CodeGen/Thumb/select.ll | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/test/CodeGen/Thumb/select.ll b/llvm/test/CodeGen/Thumb/select.ll index fe69a39e350..75dbeab5ad0 100644 --- a/llvm/test/CodeGen/Thumb/select.ll +++ b/llvm/test/CodeGen/Thumb/select.ll @@ -74,9 +74,9 @@ define double @f7(double %a, double %b) { } ; CHECK-LABEL: f7: ; CHECK: blt -; CHECK: blt +; CHECK: {{blt|bge}} ; CHECK: __ltdf2 ; CHECK-EABI-LABEL: f7: ; CHECK-EABI: __aeabi_dcmplt ; CHECK-EABI: bne -; CHECK-EABI: bne +; CHECK-EABI: {{bne|beq}} |

