This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Modulo-scheduling improvements. Missed initialization.
- From: "Vladimir Yanovsky" <volodyan at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: vmakarov at redhat dot com, "Mircea Namolaru" <namolaru at il dot ibm dot com>, "Ayal Zaks" <zaks at il dot ibm dot com>, "Vladimir Yanovsky" <yanov at il dot ibm dot com>
- Date: Thu, 22 Feb 2007 08:10:48 -0500
- Subject: [PATCH] Modulo-scheduling improvements. Missed initialization.
- Dkim-signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:mime-version:content-type:content-transfer-encoding:content-disposition; b=QktKyqbYSUSkADfKNiJxA6luxMw4a87fk05wAcY14F0RsrtEVKN9oHevRp4TspdlaJk41MHHepSyzIIC/hLKLU1v3W1ebhB6ISAEhEf/lo6t7gIY/XJ5Lo59czqIg0zu6/MCe06iRnX9LuTXWxGCzFop11NwdoWOpG/GvYoq3sA=
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?
:ADDPATCH modulo-sched:
thanks,
Vladimir
Index: ddg.c
===================================================================
*** ddg.c (revision 121234)
--- ddg.c (working copy)
*************** create_ddg_all_sccs (ddg_ptr g)
*** 866,871 ****
--- 868,874 ----
if (backarc->aux.count == IN_SCC)
continue;
+ sbitmap_zero (scc_nodes);
sbitmap_zero (from);
sbitmap_zero (to);
SET_BIT (from, dest->cuid);
Changelog:
2007-02-22 Vladimir Yanovsky <yanov@il.ibm.com>
* ddg.c (create_ddg_all_sccs): fix missed
initialization of scc_nodes