[llvm-dev] RFC: Killing undef and spreading poison

Nuno Lopes via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 18 10:00:37 PDT 2016


> Ok, freeze() produces a fixed but undefined value, so that xor'ing the same frozen value produces 0, ANDing a frozen value with 1 produces known zero bits everywhere except the LSB, which is undefined.
> 
> Does every instance of freeze() produce a *different* fixed but undefined value? i.e. the value produced by freeze() is labelled with a sequence number or something like that?

Freeze produces an arbitrary value.  The compiler is free to pick a "good" one (one that enables some optimization) if it wishes so.  There's no determination of these values.
It's similar to current undef, except that all uses see the same value.

Nuno



More information about the llvm-dev mailing list