This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PING fwprop and pr/19653


Paolo Bonzini wrote:
I found one instance of the problem in some leftover output files:

@@ -8253,12 +8159,11 @@
        if cc jump L$L$1478;
-       R0 = B [P5+2] (Z);
-       cc =R0==0;
+       R1 = B [P5+2] (Z);
+       cc =R1==0;
        if !cc jump L$L$1478 (bp);
        R0 = B [P4+2] (Z);
        cc =R0==0;
-       R1 = 0 (X);
        R0 = 1 (X);
        if cc R0 =R1; /* movsicc-2a */
        jump.s L$L$1501;

Before is fwprop, after is fwprop + expensive-cse.
As a first guess, I would think that you are testing three inter-basic-block CSE passes (path following in CSE, and the two GCSE passes). fwprop adds a second GCSE pass to mimic at least part of what CSE path following did. Testing fwprop + expensive-cse means getting path following + two GCSE passes.

Ok. As far as I remember, the first file was compiled with a fwprop-patched compiler, and in the second I just turned cse-skip-blocks and cse-follow-jumps back on.


I made some experiments with a reduced testcase:

Thanks. This is helpful and I'll look into it, but let me just quickly point out that I didn't mean to require that level of detail work. If you can demonstrate, with numbers, that on a couple of targets cse-skip-blocks and cse-follow-jumps have no measurable effect after fwprop is applied, then I'm all in favour given the effects on compile-time.



Bernd



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]