[LLVMdev] The nsw story
David A. Greene
greened at obbligato.org
Thu Dec 1 09:35:04 PST 2011
Paul Robinson <pogo.work at gmail.com> writes:
> Some operations are NaT-tolerant; any input NaT is simply propagated
> to the output. Arithmetic, sign-extension, bit fiddling, and the like
> are NaT-tolerant.
Oh yeah, I forgot about that. Forget all the stuff I said about "base
formulation" and complicating that. :)
> I suggest that storing to memory, and conditionals, and anything
> else that seems to lead toward the really hairy situations, should
> be cases where the nsw/poison/trap is "actually observed."
> This is taking a broader view of "observable" than what's defined in the
> C or C++ standards, which steadfastly ignore a variety of practical realities.
> But I think it's a reasonable and defensible position, that still allows you
> some scope for operating on these things in a sensible way.
I like this approach a lot.
More information about the llvm-dev