[llvm-dev] RFC: Killing undef and spreading poison
Peter Lawrence via llvm-dev
llvm-dev at lists.llvm.org
Thu Jun 8 16:04:59 PDT 2017
Sanjoy,
From your paper http://www.cs.utah.edu/~regehr/papers/undef-pldi17.pdf <http://www.cs.utah.edu/~regehr/papers/undef-pldi17.pdf> we have this proposal
1. remove “undef” and use “poison” instead
2. Introduce a new instruction: “freeze” …
3. All operations over “poison” unconditionally return “poison” except “phi", “select", and "freeze"
4. Branching on “poison” is immediate UB.
3::: then (X & 0) does not translate to (0) when X is “poison” ?, that seems strange, can you explain / elaborate ?
4::: hmm, I know of no machine where this is what actually happens[*], can you explain / elaborate ?
Peter Lawrence.
[*. I am assuming you are using consistent terminology, where in the beginning of the paper you make a
distinction between immediate and deferred undefined, with immediate being a trap like divide-by-zero.]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170608/4d387512/attachment-0001.html>
More information about the llvm-dev
mailing list