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? > 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
