On 5/8/05, Steven Bosscher <[EMAIL PROTECTED]> wrote: > Hi, Hello,
> I have looked at the GCSE CPROP passes with CSE path following > disabled ("-O1 -fgcse --param max-cse-path-length=1"). The input > code are the cc1-i files from 20040726 (with checking enabled). While that discussion flies way above my head, it seems to be about gcse and i have enough grievance about it to jump in. I've just pinged PR19680 (because it's still there) and just for the sake of it i've tried the newly reported PR21463 with -fno-gcse and it's quite interesting. as reported, with gcse: 0000000000400610 <foo_t<float>::bar_ref(float, float)>: 400610: ucomiss 0x4(%rdi),%xmm1 400614: lea 0x4(%rdi),%rax 400618: lea 0xfffffffffffffff8(%rsp),%rdx 40061d: movss %xmm0,0xfffffffffffffffc(%rsp) 400623: movss %xmm1,0xfffffffffffffff8(%rsp) 400629: movaps %xmm1,%xmm2 40062c: cmova %rdx,%rax 400630: movss (%rax),%xmm1 400634: ucomiss %xmm1,%xmm0 400637: ja 400641 <foo_t<float>::bar_ref(float, float)+0x31> 400639: lea 0xfffffffffffffffc(%rsp),%rax 40063e: movaps %xmm0,%xmm1 400641: ucomiss (%rdi),%xmm2 400644: cmova %rdi,%rdx 400648: movss (%rdx),%xmm0 40064c: ucomiss %xmm0,%xmm1 40064f: jbe 400655 <foo_t<float>::bar_ref(float, float)+0x45> 400651: movss (%rax),%xmm0 400655: repz retq without: 0000000000400610 <foo_t<float>::bar_ref(float, float)>: 400610: movss %xmm0,0xfffffffffffffffc(%rsp) 400616: lea 0xfffffffffffffff8(%rsp),%rcx 40061b: lea 0x4(%rdi),%rax 40061f: movss %xmm1,0xfffffffffffffff8(%rsp) 400625: lea 0xfffffffffffffffc(%rsp),%rdx 40062a: ucomiss 0x4(%rdi),%xmm1 40062e: cmova %rcx,%rax 400632: ucomiss (%rax),%xmm0 400635: cmovbe %rdx,%rax 400639: ucomiss (%rdi),%xmm1 40063c: movss (%rax),%xmm0 400640: cmovbe %rcx,%rdi 400644: ucomiss (%rdi),%xmm0 400647: cmova %rax,%rdi 40064b: movss (%rdi),%xmm0 40064f: retq Again, sorry for hijacking that thread, but gcse is a convenient scapegoat for most of my performance/codegen problems and i'd like to know if there's mid-term hope. Regards, Thierry.