[PATCH] D26432: [SCCP] Force unknown branches to overdefined
Chris Lattner via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 9 12:57:34 PST 2016
> On Nov 9, 2016, at 11:44 AM, Friedman, Eli <efriedma at codeaurora.org> wrote:
>
>>>
>>> After solving is finished, anything left as undef can then be filled in
>>> unconstrained, because you are guaranteed it is not forced to a certain
>>> value (or that your solver sucks :P)
>>>
>>> (note that in the freeze/poison proposal, this should just work because the
>>> freezes will be different ssa names)
>>>
>> Uh, thanks. Out of curiosity, do you happen to know why undef wasn't
>> represented as a lattice value from the beginning (and instead we end
>> up trying values that match up?) Is there a particular reason (e.g.
>> efficiency)? I can't think of one.
>> --
> This is very old code; see r17044, r18776 and r32715. I doubt Chris remembers the details (but CC'ing him in case he does). I haven't really considered it before, but as far as I know, there isn't any particular reason we can't treat undef like a constant rather than "unknown". Constant folding knows how to fold operations involving undef correctly. You probably need to special-case branches and PHI nodes with undef operands.
Eli is right, the SCCP lattice predated undef being part of IR.
-Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161109/97251b59/attachment.html>
More information about the llvm-commits
mailing list