[FastISel][AArch64] Use the zero register for stores.
authorJuergen Ributzka <juergen@apple.com>
Wed, 27 Aug 2014 21:04:52 +0000 (21:04 +0000)
committerJuergen Ributzka <juergen@apple.com>
Wed, 27 Aug 2014 21:04:52 +0000 (21:04 +0000)
commitd445e4acdb10c91b152a78a9fce7c0193684685b
tree0f69cc8b7e65d26b01e20b5c17a917eea1fd03f4
parent305938e272c094f643e9924640d31a16378f610c
[FastISel][AArch64] Use the zero register for stores.

Use the zero register directly when possible to avoid an unnecessary register
copy and a wasted register at -O0. This also uses integer stores to store a
positive floating-point zero. This saves us from materializing the positive zero
in a register and then storing it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216617 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64FastISel.cpp
test/CodeGen/AArch64/arm64-fast-isel.ll
test/CodeGen/AArch64/fast-isel-addressing-modes.ll