mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-02 07:32:52 +00:00
add a note, remove a done deed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45869 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a51cf0f074
commit
047ad94fc0
@ -998,24 +998,6 @@ _test:
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
For code like:
|
||||
phi (undef, x)
|
||||
|
||||
We get an implicit def on the undef side. If the phi is spilled, we then get:
|
||||
implicitdef xmm1
|
||||
store xmm1 -> stack
|
||||
|
||||
It should be possible to teach the x86 backend to "fold" the store into the
|
||||
implicitdef, which just deletes the implicit def.
|
||||
|
||||
These instructions should go away:
|
||||
#IMPLICIT_DEF %xmm1
|
||||
movaps %xmm1, 192(%esp)
|
||||
movaps %xmm1, 224(%esp)
|
||||
movaps %xmm1, 176(%esp)
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
This is a "commutable two-address" register coallescing deficiency:
|
||||
|
||||
define <4 x float> @test1(<4 x float> %V) {
|
||||
@ -1510,6 +1492,9 @@ movl $0, 124(%esp)
|
||||
|
||||
if the flags of the xor are dead.
|
||||
|
||||
Likewise, we isel "x<<1" into "add reg,reg". If reg is spilled, this should
|
||||
be folded into: shl [mem], 1
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
This testcase misses a read/modify/write opportunity (from PR1425):
|
||||
|
Loading…
Reference in New Issue
Block a user