Re: Optimization techniques

David Brown <david.brown@hesbynett.no>
Sun, 28 Apr 2019 17:22:26 +0200

          From comp.compilers

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)
[5 later articles]
| List of all articles for this month |

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!


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.