[llvm-dev] a tagged architecture, the elephant in the undef / poison room

John Regehr via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 16 13:17:56 PDT 2017


Right!

John


On 6/16/17 2:05 PM, Matthias Braun wrote:
>
>> On Jun 16, 2017, at 12:31 PM, John Regehr via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>
>>> Only freezing it will
>>> replace it with something concrete such that if x is poison then
>>> freeze(x) == freeze(x), etc.
>>
>> Nit: it's not true that freeze(x) == freeze(x) in the current proposal. Each freeze can choose its own value.
> Just for my understanding: Freeze is an instruction isn't it? So this example has to read either:
>
> %a = freeze(poison)
> %b = freeze(poison)
> %cond = icmp eq %a, %b
>
> then %cond isn't necessarily true (and also not necessarily false).
>
> While:
>
> %a = freeze(poison)
> %cond = icmp eq %a, %a
>
> is always true. Right?
>
> - Matthias
>


More information about the llvm-dev mailing list