Re: const versus __attribute__((const))

Jamie Lokier
2003-12-09T03:49:45Z

H. Peter Anvin wrote:
> > It would be nice to have a way to declare an asm like "pure" not
> > "const", so that it's allowed to read memory but multiple calls can be
> > eliminated; I don't know of a way to express that.
>
> Just specify memory input operands.

Thanks. That's even more useful than "pure" because it implies the
asm only reads the explicitly passed memory operands.

Memory input operands don't work if you want the asm to read arbitrary
memory not mentioned in the inputs (like "pure" allows) or traverse
linked lists.

(A long time ago there was a question about whether GCC could ever
copy the value associated with an "m" operand to a stack slot, and
pass the address of the stack slot. After all, GCC _will_ copy the
value if the operand is an "r", and presumably gives mixed results
with "rm". We seem to have concluded that it never will).

-- Jamie