[cfe-dev] volatile store/load

Chris Lattner clattner at apple.com
Sat Jun 7 12:38:33 PDT 2008


On Jun 7, 2008, at 11:29 AM, Eli Friedman wrote:
>> simple scalar value type. Afterward, I saw that there was a fixme  
>> in LValue.
>> Would it be best to add a volatility flag to LValue, or is my way  
>> of doing
>> it okay?
>
> Hmm, I'm not completely sure... on the one hand, we are basically
> guaranteed to have type information along with any LValue.  On the
> other hand, it affects how the load should be constructed, and should
> therefore be associated with the LValue along with other properties
> which can't be derived from the type, like alignment.  I'm leaning
> towards putting volatility into the LValue, but I could be convinced
> that the other approach is superior.

We've hit this sort of problem in spades in llvm-gcc.  The "right" fix  
we converged on (but haven't yet implemented) is to add a volatile  
flag and alignment field to the LValue structure.  IIRC, the  
'volatility' of a load or store follows the destination being stored  
into (e.g. a bitfield, horrors!) not the expression being stored into  
it.

-Chris



More information about the cfe-dev mailing list