Re: variable reusing

"A.P. Horst" <[email protected]>
Newsgroups gmane.comp.hardware.texas-instruments.msp430.gcc.user
Message-ID <[email protected]>
On 15-5-2013 0:31, Paul Sokolovsky wrote:
> Hello,
>
> On Wed, 15 May 2013 09:35:14 +1200
> Daniel Beer <[email protected]> wrote:
>
>> On Tue, May 14, 2013 at 09:26:46PM +0300, Paul Sokolovsky wrote:
>>> More interesting question is such support for static (if not global)
>>> variables. When trying to do Elliptic Curve Cryptography on MSP430
>>> value line devices which top up at 0.5K RAM, you really wish that
>>> compiler could "pack" together static buffers of functions which
>>> cannot be active at the same time ;-). If anyone know of that to be
>>> done by gcc, would be nice to get some pointers.
>> If you have static buffers which are never in use simultaneously, why
>> not keep them together in a union { }?
> Yes, the talk was about offloading the work of proving
> non-simultaneous access constraints and creation of that union to the
> compiler ;-). Shouldn't be hard for the case of scalar static variables
> (function-local dataflow analysis and interprocedural control flow
> analysis), so I wondered if someone knows it to be implemented. To be
> really useful this should be applied to structural/array vars though,
> and that's much harder.
>

This would be absolutely impossible because the compiler is generally 
unaware of it's environment. If the application is run on a preemptive 
scheduling operating system, then such schemes could go horribly wrong. 
Of course, you could protect the memory with a mutex, but this would 
defeat the purpose of easy optimization. Anyway, if you really want it I 
think it is best done via an explicit way with unions such that it is 
clear what is being shared, and it compatible amongst compilers.

Arie


------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.