This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On 05/10/2016 10:05 AM, Andrew Haley wrote:
And note that there's a variety of analysis and transformations that will try to eliminate the address-of so that the object is no longer addressable.On 05/10/2016 04:58 PM, Tom Udale wrote:To my mind, the only reason that these would not be considered "memory references" is because the compiler has already decided to put the memory into registers (true these are mostly automatic variables so they can easily be put into registers). But from an abstract machine standpoint a=b is a memory read and a memory write is it not (or is that a totally incorrect statement)? It seems odd therefore that a register allocation choice can fundamentally alter program behavior.An auto variable is only considered to be "memory" if its address is taken with & . "memory" means that this object is reachable from some pointer somewhere.
Not really. If a variable is not addressable by any means then it can't be affected by a memory access. Whether the compiler spills that variable to a stack frame makes no difference.
Right. jeff
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |