[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