mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-19 06:31:18 +00:00
Remove README entry which no longer compiles to something sane.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105376 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2ad7e433c9
commit
a04a2c0a50
@ -36,62 +36,6 @@ The pattern isel got this one right.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
SSE doesn't have [mem] op= reg instructions. If we have an SSE instruction
|
||||
like this:
|
||||
|
||||
X += y
|
||||
|
||||
and the register allocator decides to spill X, it is cheaper to emit this as:
|
||||
|
||||
Y += [xslot]
|
||||
store Y -> [xslot]
|
||||
|
||||
than as:
|
||||
|
||||
tmp = [xslot]
|
||||
tmp += y
|
||||
store tmp -> [xslot]
|
||||
|
||||
..and this uses one fewer register (so this should be done at load folding
|
||||
time, not at spiller time). *Note* however that this can only be done
|
||||
if Y is dead. Here's a testcase:
|
||||
|
||||
@.str_3 = external global [15 x i8]
|
||||
declare void @printf(i32, ...)
|
||||
define void @main() {
|
||||
build_tree.exit:
|
||||
br label %no_exit.i7
|
||||
|
||||
no_exit.i7: ; preds = %no_exit.i7, %build_tree.exit
|
||||
%tmp.0.1.0.i9 = phi double [ 0.000000e+00, %build_tree.exit ],
|
||||
[ %tmp.34.i18, %no_exit.i7 ]
|
||||
%tmp.0.0.0.i10 = phi double [ 0.000000e+00, %build_tree.exit ],
|
||||
[ %tmp.28.i16, %no_exit.i7 ]
|
||||
%tmp.28.i16 = fadd double %tmp.0.0.0.i10, 0.000000e+00
|
||||
%tmp.34.i18 = fadd double %tmp.0.1.0.i9, 0.000000e+00
|
||||
br i1 false, label %Compute_Tree.exit23, label %no_exit.i7
|
||||
|
||||
Compute_Tree.exit23: ; preds = %no_exit.i7
|
||||
tail call void (i32, ...)* @printf( i32 0 )
|
||||
store double %tmp.34.i18, double* null
|
||||
ret void
|
||||
}
|
||||
|
||||
We currently emit:
|
||||
|
||||
.BBmain_1:
|
||||
xorpd %XMM1, %XMM1
|
||||
addsd %XMM0, %XMM1
|
||||
*** movsd %XMM2, QWORD PTR [%ESP + 8]
|
||||
*** addsd %XMM2, %XMM1
|
||||
*** movsd QWORD PTR [%ESP + 8], %XMM2
|
||||
jmp .BBmain_1 # no_exit.i7
|
||||
|
||||
This is a bugpoint reduced testcase, which is why the testcase doesn't make
|
||||
much sense (e.g. its an infinite loop). :)
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
SSE should implement 'select_cc' using 'emulated conditional moves' that use
|
||||
pcmp/pand/pandn/por to do a selection instead of a conditional branch:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user