[llvm-dev] Lowering Select to Two Predicated Movs
Dilan Manatunga via llvm-dev
llvm-dev at lists.llvm.org
Fri Jul 7 16:48:52 PDT 2017
Cool, that all made sense. Thanks for the help and the useful code
examples. Cleared things up.
On Fri, Jul 7, 2017 at 2:32 PM Friedman, Eli <efriedma at codeaurora.org>
> On 7/7/2017 1:34 PM, Dilan Manatunga wrote:
> > Ohh, that makes sense. And is the reason the first instruction doesn't
> > get deleted because the ExpandPseudoInstructions pass occurs after
> > Register Allocation and machine dead code elimination?
> That's how it works right now, yes, but it's a bug, not the intended
> design. (Post-RA scheduling runs after ExpandPseudoInstructions, so we
> need accurate dependencies; I'm surprised we haven't seen any miscompiles.)
> The correct way to represent the dependency is with an implicit use.
> See UpdatePredRedefs in IfConversion.cpp for an example.
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux
> Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev