-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Ugh. I feel like an idiot. bkoz mentioned in IRC that he was having bootstrapping failures several days ago. Unfortunately, we didn't exchange much info other than the target (x86-64) and since I wasn't having any problems I didn't follow up further. As it turns out it was my patch and the fact that Benjamin configures with --disable-checking (or perhaps --enable-checking=release) while I don't bother twiddling the checking options. The underlying problem was the code in determine_bb_domination_status only conditionally checks that BB is is a successor of LOOP->header (conditional on ENABLE_CHECKING). My change to look deeper in the CFG for threading opportunities broke the assumptions of determine_bb_domination_status and while I twiddled it to return the safe return value, it was done so only within the ENABLE_CHECKING clause. This patch removes the conditional compilation of the check that BB is a successor of LOOP->header and fixes the comparison failures. The check isn't expensive. Bootstrapped and regression tested on x86_64-unknown-linux-gnu, checking enabled. Also verified a checking-disabled bootstrap was successful and the testsuite results were consistent with the checking-enabled test results. Installed. Sorry for all the problems, Jeff ps. Yes, I've had this fix since 10am this morning. 3 bootstraps and regress tests taken until nearly 4pm to complete.. libjava is not my friend. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJNm4zQAAoJEBRtltQi2kC7GC8H/i1KFUn/QZl5QiEL904/cyPI uPPJ//0h28P7eEhP5oh/HV4n5eJZmKm4KbhSgAaxMSuhqWvOwkF6MWQ/Af62xFsb dywSbA8TgS2yQSvoho+YkUT1IaU7/Za1yzlQ6VE7yDWJvkTu3v8RljSrX/9v7v/g e3gH0iJxZpesnodRAAQzkw1q972OOyrIb+fe45WwN1xfIWd4p6zMJS8e/n/yS+YC h9+iVl8zcXeG2Z/QK3WQQ7HTkAjbN4I4ymCWKcHt48bmaiH867+5AisFbhCrEJTz Lb3SJ3DNtO0If/9yWYzFOsTlnrmS2VPEbJfDXHcNi6xW4B1zPF9Jt5+38LK4ATM= =went -----END PGP SIGNATURE-----
PR bootstrap/48444 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always check if BB is a successor of LOOP->header and return NONDOMINATING if it is not, regardless of ENABLE_CHECKING. Index: tree-ssa-threadupdate.c =================================================================== *** tree-ssa-threadupdate.c (revision 171989) --- tree-ssa-threadupdate.c (working copy) *************** determine_bb_domination_status (struct l *** 665,671 **** edge_iterator ei; edge e; - #ifdef ENABLE_CHECKING /* This function assumes BB is a successor of LOOP->header. If that is not the case return DOMST_NONDOMINATING which is always safe. */ --- 665,670 ---- *************** determine_bb_domination_status (struct l *** 684,690 **** if (!ok) return DOMST_NONDOMINATING; } - #endif if (bb == loop->latch) return DOMST_DOMINATING; --- 683,688 ----