[FastISel][ARM] Fall-back to constant pool loads when materializing an i32 constant.
authorJuergen Ributzka <juergen@apple.com>
Thu, 14 Aug 2014 23:29:49 +0000 (23:29 +0000)
committerJuergen Ributzka <juergen@apple.com>
Thu, 14 Aug 2014 23:29:49 +0000 (23:29 +0000)
commit266ecacfaa424a2d7c2316dd79ce4ac018f96f91
tree163f697c0b6217e44c08a4fa9bb7156876f96d9a
parente1e7862f6e671b60e83476a09b9a1a27aceecfb9
[FastISel][ARM] Fall-back to constant pool loads when materializing an i32 constant.

FastEmit_i won't always succeed to materialize an i32 constant and just fail.
This would trigger a fall-back to SelectionDAG, which is really not necessary.

This fix will first fall-back to a constant pool load to materialize the constant
before giving up for good.

This fixes <rdar://problem/18022633>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215682 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMFastISel.cpp
test/CodeGen/ARM/fast-isel-mvn.ll