[Bug tree-optimization/28632] VRP should understand bitwise OR and AND

vda dot linux at googlemail dot com gcc-bugzilla@gcc.gnu.org
Wed Aug 20 15:08:00 GMT 2008



------- 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



More information about the Gcc-bugs mailing list