------- Comment #15 from vda dot linux at googlemail dot com 2008-08-20 15:07 ------- (In reply to comment #13) > Created an attachment (id=16113) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16113&action=view) [edit] > Updated doubleint-based patch. DOES NOT PASS TESTSUITE.
I meant "does not bootstrap". Anyway. Something strange is going on. Last two patches: bug28632_doubleint_based.patch bug28632_tree_based.patch are identical in their basic algorithm, but one uses trees and other uses double_ints for intermediate calculations. I did a bootstrap with them and on 4.3.1 both work, whereas on current-ish svn doubleint-based patch fails. Bootstrap with both patches was done with debugging output enabled and OUTPUT IS THE SAME! Entire ~7Mb output has the same ranges predicted by both patches, up to the point where gcc stage 2 is reached. Then newly built compiles mispredicts a range and compile fails (again only for bug28632_doubleint_based.patch). This practically rules out that I have some silly bug in bug28632_doubleint_based.patch which miscalculates ranges - that would make bug28632_tree_based.patch to fail as well. I also ran a test program which tested predictions for random (a | b) and (a & b) and it didn't find any errors. Looks like this problem is more difficult than I can handle. Putting it on hold for now. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28632