[Bug middle-end/37053] [4.3/4.4/4.5 regression] ICE in reload_cse_simplify_operands, at postreload.c:395

mkuvyrkov at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Jun 23 12:26:00 GMT 2009



------- Comment #10 from mkuvyrkov at gcc dot gnu dot org  2009-06-23 12:26 -------
(In reply to comment #9)
> But % makes it commutative, no?

Yes, but that only means that the operands can be swapped *if*
swap_commutative_operands_p() returns true.  Due to the funny precedence that
does not happen.

> So operand 2 matches operand 0, and operand 1
> matches mSrIKLT.

Matching procedures do not take commutativeness into account.

Part of the problem are optimizations using commutativeness during reload.  One
way to paper over the issue is to forbid such optimizations during reload, but
that may worsen code.  And this approach is not as clean as letting backends
decide if their .md files can handle funny canonicalization rules.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37053



More information about the Gcc-bugs mailing list