Vladimir Yanovsky - Re: [PATCH] Modulo-scheduling improvements. Missed initialization. (original) (raw)

This is the mail archive of the gcc-patches@gcc.gnu.orgmailing 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]

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.


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