Related articles |
---|
[11 earlier articles] |
Re: how to avoid a memset() optimization usenet-1ugeabe@qeng-ho.org (Arthur Chance) (2002-11-13) |
Re: how to avoid a memset() optimization cfc@shell01.TheWorld.com (Chris F Clark) (2002-11-15) |
Re: how to avoid a memset() optimization usenet-1ugeabe@qeng-ho.org (Arthur Chance) (2002-11-15) |
Re: how to avoid a memset() optimization joachim_d@gmx.de (Joachim Durchholz) (2002-11-17) |
Re: how to avoid a memset() optimization cfc@shell01.TheWorld.com (Chris F Clark) (2002-11-20) |
Re: how to avoid a memset() optimization thp@cs.ucr.edu (2002-11-24) |
Re: how to avoid a memset() optimization n1096001003.ch@chch.demon.co.uk (Charles Bryant) (2002-12-01) |
From: | "Charles Bryant" <n1096001003.ch@chch.demon.co.uk> |
Newsgroups: | comp.compilers |
Date: | 1 Dec 2002 22:37:49 -0500 |
Organization: | Compilers Central |
References: | 02-11-030 02-11-069 02-11-084 |
Keywords: | C, optimize |
Posted-Date: | 01 Dec 2002 22:37:48 EST |
Chris F Clark <cfc@shell01.TheWorld.com> wrote:
... clearing memory for security and optimising it away ...
>Later the DEC group I consulted for(*), took this apporach even further,
>and wrote "OM" (object modifier) which took executable images (of
>machine language instructions) and optimized them. Thus, when OM was
>used to eliminate your dead-code, there was no hope (unless you wanted
>to construct your dead code in the data segment and jump into it),
>since even assembly language routines were susceptible to its reach.
Most CPUs have instructions other than normal stores which modify
memory. For example the SPARC has cas and ldstub. On the SPARC these
are explicitly for memory synchronisation, so any optimiser which
re-orders or deletes them is simply incorrect. On other architectures
there may instead be instructions which are too complex for an
optimiser to handle, or you could simply write code too complex for
the optimiser. Since, presumably, it isn't going to attempt to solve
the halting problem, there must be code which it cannot optimise away
but which has no effect.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.