Remove README entry which no longer compiles to something sane.

llvm-svn: 105376
This commit is contained in:
Eli Friedman 2010-06-03 01:16:51 +00:00
parent 1f41303260
commit a59b7a72b9
1 changed files with 0 additions and 56 deletions

View File

@ -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: