[llvm-dev] how LLVM deals with 'undef'
Krzysztof Parzyszek via llvm-dev
llvm-dev at lists.llvm.org
Tue Aug 25 12:16:40 PDT 2015
On 8/25/2015 2:09 PM, Xiangyang Guo via llvm-dev wrote:
> I'm using LLVM-3.8 (current SVN version) to optimize my code. After loop
> unrolling, I find there is 'undef' in the IR. For example,
> "/%.lcssa21.unr = phi double [ undef, %.lr.ph9 ], [ %13, %7 ]/". I have
> two questions:
> (1) Why this 'undef' is generated? Because before 'loop unrolling',
> there is no such 'undef'.
Most likely to satisfy the syntax of a phi node. If everything is
correct, that value will never be used. If things weren't exactly
correct, this may be a result of a load from an uninitialized memory, or
something like that.
> (2) How LLVM backend deals with this 'undef'?
In general, undef will propagate itself through instructions. How it
will deal with this specific one, it's impossible to say without the
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev