[llvm-dev] RFC: Killing undef and spreading poison
John Regehr via llvm-dev
llvm-dev at lists.llvm.org
Thu Jun 8 20:30:11 PDT 2017
> 4. Branching on “poison” is immediate UB.
> 4::: hmm, I know of no machine where this is what actually happens[*],
> can you explain / elaborate ?
Well, branching on poison has to mean something. We propose making it
immediate UB. Another choice would be nondeterministic branching.
Either way, some optimizations become legal and others become illegal.
It's just a design tradeoff. The semantics of actual machines aren't as
important here as you might be tempted to think.
Peter, I think you are kind of wearing us out here. Could you please
tone it down a bit, read everything carefully, play with some examples
(Alive is particularly helpful, and it implements both the old and
proposed new semantics), and then get back to us with questions that
don't ask us to re-explain everything that we've already spent months or
years discussing?
I'm not exactly sure which discussions Sanjoy was referring to (there
have been many) but if you look for "the nsw story" in the archives (ca.
2011/2012) you'll turn up a lot of material.
Thanks for your consideration,
John
More information about the llvm-dev
mailing list