[Bug tree-optimization/18065] usual arithmetic conversion not applying correctly

schlie at comcast dot net gcc-bugzilla@gcc.gnu.org
Sun Jan 16 17:39:00 GMT 2005


------- Additional Comments From schlie at comcast dot net  2005-01-16 17:39 -------
Subject: Re:  usual arithmetic conversion not
 applying correctly




> From: schlie at comcast dot net <gcc-bugzilla@gcc.gnu.org>
> ------- Additional Comments From schlie at comcast dot net  2005-01-16 07:16
> Subject: Re:  usual arithmetic conversion not applying correctly
> 
> Wonder if this PR could still be considered a missed optimization, as the
> present logic which determines if an / or % expression's operands may be
> shortened, misses the case where if the lhs operand is a constant, it may
> be verified as not being INT_MIN; as if it's not, then it's impossible for
> the operation to overflow, i.e. INT_MIN / -1  => INT_MAX+1, therefore
> may be shortened. As noted as being absent in it's comment on shortening:
> 
>   /* Although it would be tempting to shorten always here, that loses
>      on some targets, since the modulo instruction is undefined if the
>      quotient can't be represented in the computation mode.  We shorten
>      only if unsigned or if dividing by something we know != -1.  */

- It would be unfortunate if / and % couldn't be somewhat further optimized
  prior to 4.0 when their lhs operands are known not to be INT_MIN, as they
  tend to be typically relatively expensive operations, likely benefiting
  from shortening more than most.

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18065
> 
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.




-- 


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



More information about the Gcc-bugs mailing list