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: [tree-ssa] Removing redundant loads


On Fri, 2003-05-30 at 07:55, Andrew MacLeod wrote:
> On Fri, 2003-05-30 at 07:46, Diego Novillo wrote:
> > On Fri, 2003-05-30 at 07:16, Andrew MacLeod wrote:

> > hidden.  When I tried enabling overlapping live ranges last week I got
> > through most of the bootstrap cycle.  But the stage2/cc1 binary would
> > get into an infinite loop on startup.
> > 
> 
> Thats not the problem I have when I enable it with my changes :-)
> Well, overlapping live ranges appear to work, but turning on copyprop
> makes it not work, so it appears that under pressure we aren't doing
> such a good job :-)  I'll track it down.
> Andrew

Well, my current problem appears to be related to (presumably) the
implementation of the algorithm which handles adding a new temportary
when we have an interdependancy between phi nodes:

  # BLOCK 13.  PRED: 11 9.  SUCC: 15 14.
  <UL6a80>:;;
  {

    #   VUSE <MT.80_19>;
    T.297_39 = (unsigned int)d2_18->type;
    if (T.297_39 == 9)
      {

        # BLOCK 14 (/src/tree-ssa/2003-05-28/gcc/gcc/genrecog.c:1100). 
PRED: 13.  SUCC: 15.
        {
          struct decision_test * tmp;
        }
      };

    # BLOCK 15 (/src/tree-ssa/2003-05-28/gcc/gcc/genrecog.c:1105). 
PRED: 14 13.  SUCC: 20 16.
    #   d1_1 = PHI <d1_15(13), d2_18(14)>;
    #   d2_3 = PHI <d2_18(13), d1_15(14)>;

Note the wonderful dependancy in the PHI nodes of block 15.. Block 14
needs d1 = d2;  d2 = d1; but requires the algorithm to insert a
temporary so it can do it correctly..  At the moment, its failing this.
It inserts:

          d1.323 = d1;
          d2 = d1;         <<-- This ought not to be here.
          d1 = d2;
          d2 = d1.323

So everything is getting the value of d1.

Im working on tracking this now.

Andrew


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