http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49645

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2011.07.06 08:21:35
         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org
                   |gnu.org                     |
   Target Milestone|---                         |4.7.0
     Ever Confirmed|0                           |1

--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-07-06 
08:21:35 UTC ---
Weird.  I can't see what should be target specific in this test (all relevant
functions are inlined).

Ah, on x86_64 I see that SRA did something, so I see in the .esra dump:

<bb 2>:
  pred = f;
  SR.36_52 = &pred;
  SR.37_51 = SR.36_52;
  MEM[(struct noop_t *)&pred].pred = SR.37_51;
  SR.38_50 = &pred;
  SR.39_48 = SR.38_50;
  MEM[(struct noop_t *)&pred].pred = SR.39_48;
  SR.40_47 = &pred;
  SR.41_45 = SR.40_47;
  MEM[(struct noop_t *)&pred].pred = SR.41_45;
  SR.42_44 = &pred;
  SR.43_42 = SR.42_44;
  MEM[(struct noop_t *)&pred].pred = SR.43_42;
...
  D.2683_15 = D.2693_14->pred;
  D.2691_16 = D.2683_15->pred;
  D.2684_17 = D.2691_16->pred;
  D.2690_18 = D.2684_17->pred;
  D.2685_19 = D.2690_18->pred;
  D.2689_20 = D.2685_19->pred;
  D.2686_21 = D.2689_20->pred;
  D.2688_22 = D.2686_21->pred;
  D.2687_23 = *D.2688_22;
  D.2682_24 = D.2687_23 ();


On the 4.6 branch FRE1 is after final inlining, so maybe there is enough
cleanup there to make it work.

Still FRE should work this out without SRA, so I'm taking this one.

Reply via email to