On May 2, 2012, at 2:29 PM, Eric Christopher wrote:

> 
> On May 2, 2012, at 2:23 PM, Eli Friedman <[email protected]> wrote:
> 
>> On Wed, May 2, 2012 at 2:07 PM, Chad Rosier <[email protected]> wrote:
>>> The attached patch allows inline assembly to inherit the readnone/readonly 
>>> function attribute from the caller.  This allows the attributes to be 
>>> retained after function inlining.  In turn, CSE is able to do it's magic on 
>>> inline assembly statements.
>>> 
>>> An orthogonal solution would be to add support for the const keyword for 
>>> inline assembly (e.g., asm const("mov $0x12345678, %0" : "=r" (ptr)); ).
>> 
>> It's not obvious to me that this is safe... __attribute((const)) means
>> that a function doesn't cause expose any side-effects, not that it
>> doesn't have any internal state.
>> 
> 
> Perhaps a way to give a statement an attribute then?

I think this is what I proposed as the orthogonal approach.  However, assuming 
what Eli suggest below is correct, then this is not necessary.  We can detect 
constness.

 Chad

> 
>> Note that there's another way we can compute readnone for the given
>> inline asm: an inline asm can be marked readnone if it doesn't have
>> any memory operands, isn't volatile, and doesn't clobber memory.
> 
> In this case it's a read from memory so it'd be readonly... but the point is 
> good.
> 
> -eric

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to