X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FX86%2FREADME-FPStack.txt;h=39efd2dbcf1adc2424434730fded2e60cd6759bf;hb=257fc78e070c4b644d0b732a2c1c8e2befa52513;hp=d94fa0219da41980042223589a60356448f4eb05;hpb=2420d812475ebbb835585db1b2bbad04e55cb6f3;p=oota-llvm.git diff --git a/lib/Target/X86/README-FPStack.txt b/lib/Target/X86/README-FPStack.txt index d94fa0219da..39efd2dbcf1 100644 --- a/lib/Target/X86/README-FPStack.txt +++ b/lib/Target/X86/README-FPStack.txt @@ -9,20 +9,6 @@ http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00659.html //===---------------------------------------------------------------------===// -On darwin/x86, we should codegen: - - ret double 0.000000e+00 - -as fld0/ret, not as: - - movl $0, 4(%esp) - movl $0, (%esp) - fldl (%esp) - ... - ret - -//===---------------------------------------------------------------------===// - This should use fiadd on chips where it is profitable: double foo(double P, int *I) { return P+*I; } @@ -41,8 +27,8 @@ def FpIADD32m : FpI<(ops RFP:$dst, RFP:$src1, i32mem:$src2), OneArgFPRW, //===---------------------------------------------------------------------===// -The FP stackifier needs to be global. Also, it should handle simple permutates -to reduce number of shuffle instructions, e.g. turning: +The FP stackifier should handle simple permutates to reduce number of shuffle +instructions, e.g. turning: fld P -> fld Q fld Q fld P @@ -94,6 +80,6 @@ foo: addl $20, %esp ret -This will be solved when we go to a dynamic programming based isel. +This just requires being smarter when custom expanding fptoui. //===---------------------------------------------------------------------===//