[llvm-commits] [llvm] r70790 - /llvm/trunk/docs/LangRef.html
Chris Lattner
sabre at nondot.org
Sun May 3 13:11:22 PDT 2009
On May 3, 2009, at 1:06 PM, Duncan Sands wrote:
> Hi Chris,
>
>> Remove obsolete wording, the only exception a readnone function can
>> throw
>> is the empty set. :) Thanks to Fritz for pointing this out.
>
> what's wrong with a readonly function using unwind? I think
> the use of unwind is orthogonal to readonly: it's what the
> nounwind attribute is for. Of course a readonly function can't
> call the C++ throw routine etc, but that's a different issue.
> If you want readonly to mean: doesn't do anything annoying
> (no side-effects), then the name should be changed, and the
> function attributes taught to do loop analysis and not mark
> a function readonly unless all loops are finite etc. I think
> it is better to keep readonly and nounwind separate.
I can definitely be convinced :), but my understanding is that the
compiler currently deletes readonly/readnone calls if they are dead.
We could change this to also require them to be nounwind, and change
the C front-ends to have pure/const also add nounwind. What do you
think?
-Chris
More information about the llvm-commits
mailing list