[LLVMdev] ConstantFold 'undef xor undef'

Chris Lattner
Wed, 07 Jul 2010 15:38:12 -0000

On Jul 7, 2010, at 5:47 AM, Jianzhou Zhao wrote:

>>
>> Does this also apply to two different variables? say
>>   int z x y;
>>   z = x ^ y;
>> If ConstantFoldBinaryInstruction also folds x ^ y into z, should this
>> pass (which uses ConstantFold) also initialize x and y with a same
>> initial value? Otherwise at runtime z may not be 0.
>
> I guess my question is what variables can have undef values. In my
> understanding, only uninitialized locals and globals can be undefined,
> so compilers are free to assign them at runtime, if
> ConstantFoldBinaryInstruction ensures that x and y can only be locals
> and globals. But function parameters cannot be undefined, which should
> be arbitrary symbols, depending on concrete arguments. Is this
> correct?

I don't really understand your question here.  Are you asking about C or
LLVM IR, or something else?

-Chris