Related articles |
---|
[22 earlier articles] |
Re: Optimization techniques derek@_NOSPAM_knosof.co.uk (Derek M. Jones) (2019-04-26) |
Re: Optimization techniques martin@gkc.org.uk (Martin Ward) (2019-04-26) |
Re: Optimization techniques martin@gkc.org.uk (Martin Ward) (2019-04-26) |
Re: Optimization techniques 847-115-0292@kylheku.com (Kaz Kylheku) (2019-04-26) |
Re: Optimization techniques 0xe2.0x9a.0x9b@gmail.com (2019-04-27) |
Re: Optimization techniques haberg-news@telia.com (Hans Aberg) (2019-04-27) |
Re: Optimization techniques david.brown@hesbynett.no (David Brown) (2019-04-28) |
Re: Optimization techniques david.brown@hesbynett.no (David Brown) (2019-04-28) |
Re: Optimization techniques genew@telus.net (Gene Wirchenko) (2019-04-30) |
Re: Optimization techniques genew@telus.net (Gene Wirchenko) (2019-04-30) |
Re: Optimization techniques genew@telus.net (Gene Wirchenko) (2019-04-30) |
Re: Optimization techniques david.brown@hesbynett.no (David Brown) (2019-05-01) |
Re: Optimization techniques david.brown@hesbynett.no (David Brown) (2019-05-01) |
[6 later articles] |
From: | David Brown <david.brown@hesbynett.no> |
Newsgroups: | comp.compilers |
Date: | Sun, 28 Apr 2019 17:22:26 +0200 |
Organization: | A noiseless patient Spider |
References: | 19-04-004 19-04-012 19-04-018 19-04-028 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="17815"; mail-complaints-to="abuse@iecc.com" |
Keywords: | arithmetic, optimize |
Posted-Date: | 28 Apr 2019 18:31:37 EDT |
Content-Language: | en-GB |
On 26/04/2019 21:10, Martin Ward wrote:
> On 23/04/19 08:43, David Brown wrote:
>> But mathematical identities such as associativity and commutativity are
>> valid because signed integer overflow does not happen - thus "a * (b +
>> c)" can be changed to "(a * b) + (a * c)".
>
> If b is large and c has a value close to -b then a * (b + c)
> might be OK while (a * b) will overflow and cause undefined
> behaviour.
>
You are right. The compiler can go the other way, but not that way. It
can ignore the possibility of overflows or other errors (like divide by
zero) in the expression you give it, but it can't manipulate things in a
way that might introduce new errors.
Obviously compiler writers are expected to pay more attention to these
details than someone making a Usenet post!
Return to the
comp.compilers page.
Search the
comp.compilers archives again.