This website requires JavaScript.
Explore
Mirrors
Help
Sign In
6502
/
llvm-6502
Watch
1
Star
0
Fork
0
You've already forked llvm-6502
mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced
2024-09-08 23:55:03 +00:00
Code
Issues
Projects
Releases
Wiki
Activity
6d3bf8c4c3
llvm-6502
/
test
/
CodeGen
/
X86
/
ret-i64-0.ll
6 lines
102 B
LLVM
Raw
Normal View
History
Unescape
Escape
When the coalescer is doing rematerializing, have it remove the copy instruction from the instruction list before asking the target to create the new instruction. This gets the old instruction out of the way so that it doesn't interfere with the target's rematerialization code. In the case of x86, this helps it find more cases where EFLAGS is not live. Also, in the X86InstrInfo.cpp, teach isSafeToClobberEFLAGS to check to see if it reached the end of the block after scanning each instruction, instead of just before. This lets it notice when the end of the block is only two instructions away, without doing any additional scanning. These changes allow rematerialization to clobber EFLAGS in more cases, for example using xor instead of mov to set the return value to zero in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57872 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21 03:24:31 +00:00
; RUN: llvm-as < %s | llc -march=x86 | grep xor | count 2
remove some unneeded eh generation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57887 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21 03:49:19 +00:00
define
i64
@foo
(
)
nounwind
{
When the coalescer is doing rematerializing, have it remove the copy instruction from the instruction list before asking the target to create the new instruction. This gets the old instruction out of the way so that it doesn't interfere with the target's rematerialization code. In the case of x86, this helps it find more cases where EFLAGS is not live. Also, in the X86InstrInfo.cpp, teach isSafeToClobberEFLAGS to check to see if it reached the end of the block after scanning each instruction, instead of just before. This lets it notice when the end of the block is only two instructions away, without doing any additional scanning. These changes allow rematerialization to clobber EFLAGS in more cases, for example using xor instead of mov to set the return value to zero in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57872 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21 03:24:31 +00:00
ret
i64
0
}
Reference in New Issue
Copy Permalink