[PATCH] Modulo-scheduling improvements. Missed initialization.

Vladimir Yanovsky volodyan@gmail.com
Sat Feb 24 20:51:00 GMT 2007


Thanks for the suggestion. Bootstrapped and regtested on powerpc64-suse-linux.

Vladimir

Index: ddg.c
===================================================================
*** ddg.c       (revision 121234)
--- ddg.c       (working copy)
*************** find_nodes_on_paths (sbitmap result, ddg
*** 975,981 ****
        }
      }

!   answer = sbitmap_a_and_b_cg (result, reachable_from, reach_to);
    sbitmap_free (workset);
    sbitmap_free (reachable_from);
    sbitmap_free (reach_to);
--- 978,985 ----
        }
      }

!   sbitmap_a_and_b (result, reachable_from, reach_to);
!   answer = (sbitmap_last_set_bit (result) != -1);
    sbitmap_free (workset);
    sbitmap_free (reachable_from);
    sbitmap_free (reach_to);


On 2/22/07, Richard Guenther <richard.guenther@gmail.com> wrote:
> On 2/22/07, Vladimir Yanovsky <volodyan@gmail.com> wrote:
> > Hi all,
> > I've encountered a bootstrap comparison failure building a 64bit
> > mainline with "-fmodulo-sched" enabled on PowerPC 970 (OpenSuse 10.2)
> > together with the "Modulo-scheduling improvements patches" sent for
> > review on January 17:
> > http://gcc.gnu.org/ml/gcc-patches/2007-01/msg01468.html
> > http://gcc.gnu.org/ml/gcc-patches/2007-01/msg01470.html
> > [Previously successfully tested the patches on SPU, x86 and PowerPC
> > 970 (but with SLES 9 Linux).]
> >
> > The reason for the failure was the missing initialization of sbitmap
> > scc_nodes. This could cause in some cases the size of the possible
> > schedule to be estimated incorrectly resulting in a loop to be not
> > SMSed in one stage during the bootstrap and SMSed in another resulting
> > in a comparison failure. Since this bug is not related to the
> > scheduling itself, it couldn't result in an incorrect code. This bug
> > is only exposed together with the "Modulo-scheduling improvements
> > patches"  mentioned above(any comments on them? thanks.) but can be
> > applied independently.
> >
> > Bootstrapped and regtested with "-fmodulo-sched" enabled on
> > powerpc64-suse-linux.
> >
> > ok for mainline?
>
> It looks like find_nodes_on_paths wants to use sbitmap_a_and_b instead of
> sbitmap_a_and_b_cg and check if any bit is set on the result (maybe we have
> a helper for that as well).  But maybe it's not worth optimizing this.
>
> Richard.
>



More information about the Gcc-patches mailing list