diff options
author | Diana Picus <diana.picus@linaro.org> | 2017-07-26 11:01:13 +0000 |
---|---|---|
committer | Diana Picus <diana.picus@linaro.org> | 2017-07-26 11:01:13 +0000 |
commit | a5d6518e9350dcb901365bc9160ef75c0e8fd16b (patch) | |
tree | 63e114e305b4c78c7eb73107d345fcad7b9362e1 /llvm | |
parent | 106307aa134fa18e305cb3486c3a013464028c24 (diff) | |
download | bcm5719-llvm-a5d6518e9350dcb901365bc9160ef75c0e8fd16b.tar.gz bcm5719-llvm-a5d6518e9350dcb901365bc9160ef75c0e8fd16b.zip |
[ARM] GlobalISel: Map G_GLOBAL_VALUE to GPR
A G_GLOBAL_VALUE is basically a pointer, so it should live in the GPR.
llvm-svn: 309101
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp | 1 | ||||
-rw-r--r-- | llvm/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp b/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp index 84493023589..8bb58c3c452 100644 --- a/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp +++ b/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp @@ -254,6 +254,7 @@ ARMRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { } case G_CONSTANT: case G_FRAME_INDEX: + case G_GLOBAL_VALUE: OperandsMapping = getOperandsMapping({&ARM::ValueMappings[ARM::GPR3OpsIdx], nullptr}); break; diff --git a/llvm/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir b/llvm/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir index 638c6e62092..eb6aabb63e0 100644 --- a/llvm/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir +++ b/llvm/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir @@ -29,6 +29,9 @@ define void @test_constants() { ret void } + @a_global = global float 1.0 + define void @test_globals() { ret void } + define void @test_anyext_s8_32() { ret void } define void @test_anyext_s16_32() { ret void } @@ -656,6 +659,22 @@ body: | BX_RET 14, _, implicit %r0 ... --- +name: test_globals +# CHECK-LABEL: name: test_globals +legalized: true +regBankSelected: false +selected: false +# CHECK: registers: +# CHECK: - { id: 0, class: gprb, preferred-register: '' } +registers: + - { id: 0, class: _ } +body: | + bb.0: + %0(p0) = G_GLOBAL_VALUE @a_global + %r0 = COPY %0(p0) + BX_RET 14, _, implicit %r0 +... +--- name: test_anyext_s8_32 # CHECK-LABEL: name: test_anyext_s8_32 legalized: true |