Avoid storing and reloading zeros and other constants from stack slots

by flagging the associated instructions as being trivially rematerializable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41775 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman
2007-09-07 21:32:51 +00:00
parent cdd509aecd
commit 1ab79897e2
4 changed files with 22 additions and 2 deletions

View File

@@ -0,0 +1,14 @@
; RUN: llvm-as < %s | llc -march=x86-64 | grep xor | count 4
; RUN: llvm-as < %s | llc -march=x86-64 -stats -info-output-file - | grep asm-printer | grep 12
declare void @bar(double %x)
declare void @barf(float %x)
define double @foo() {
call void @bar(double 0.0)
ret double 0.0
}
define float @foof() {
call void @barf(float 0.0)
ret float 0.0
}