[LLVMdev] where are my phi-nodes?
John McCall
rjmccall at apple.com
Mon Sep 13 11:52:36 PDT 2010
On Sep 13, 2010, at 11:43 AM, Fariborz Jahanian wrote:
> On Sep 13, 2010, at 11:11 AM, John McCall wrote:
>> On Sep 13, 2010, at 10:58 AM, Fariborz Jahanian wrote:
>>>
>> We do emit phis when the semantics aren't defined in terms of memory,
>> e.g. with expressions that have multiple paths of control flow (like the
>> conditional operator or null-checked derived-to-base conversions).
>
> But at least for conditional operator, there are labels, conditionals and branches.
> Optimizer should be able to build the phi nodes from control flow. I don't know
> why not. But I am sure there is good reason for it being in the fe. (maybe it makes
> optimizer's work easier).
Making phis explicitly in these cases does remove a small amount of work from
the optimizer, and it produces slightly better code at -O0, but mostly it's just
convenient. Emitting an alloca with associated loads and stores would actually
be less obvious.
John.
More information about the llvm-dev
mailing list