[LLVMdev] C as used/implemented in practice: analysis of responses

Kuperstein, Michael M michael.m.kuperstein at intel.com
Thu Jul 2 03:17:03 PDT 2015


We already perform optimizations only when the compiler can prove they won’t break the program.
The only difference between that and what you suggest is in the definition of “won’t break the program”. We define it as “won’t break the program with respect to the semantics implied by the C/C++ spec”.

You want to redefine it, by specifying a new abstract machine, which is more conservative than standard C/C++. The proper way to do that would, I believe, be to work towards setting up a working group within the relevant committees, and come up with a uniformly accepted definition for this abstract machine, which could then be implemented (assuming there is, indeed, wide enough agreement in the implementer community – something that does not look at all likely) by next-generation compilers.

Point is – I think you’re barking up the wrong tree.
This isn’t an llvm-dev issue, it’s a standards committee issue.

Michael

From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Russell Wallace
Sent: Wednesday, July 01, 2015 22:22
To: Tim Northover
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] C as used/implemented in practice: analysis of responses

I am arguing in favor of a point, and I understand you disagree with it, but I don't think I'm dismissing any use cases except a very small performance increment. Furthermore, the compiler would still be free to perform such optimisations where it can prove they won't break the program. That's not all cases, to be sure, but at least we would then be back to the normal scenario where over the years as the compiler gets smarter, things get better, as opposed to monkey's paw optimisations which cause a smarter compiler to make things worse.

On Wed, Jul 1, 2015 at 7:53 PM, Tim Northover <t.p.northover at gmail.com<mailto:t.p.northover at gmail.com>> wrote:
On 1 July 2015 at 11:34, Russell Wallace <russell.wallace at gmail.com<mailto:russell.wallace at gmail.com>> wrote:
> Why do you say spin?

You're dismissing all use-cases other than this very narrow one I'd
(with my own spin) characterise as "Do What I Mean, I Can't Be
Bothered To Get My Code Right". Fair enough, you're arguing in favour
of a point; but it's not one I agree with.

Tim.

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150702/0de0e8fa/attachment.html>


More information about the llvm-dev mailing list