[PATCH] Select Elimination in InstCombine

Gerolf Hoflehner ghoflehner at apple.com
Tue Sep 9 14:50:52 PDT 2014


Ok, makes sense. The DT is optional and I added the missing check. When it is absent we just don’t recognize as many patterns.

I expect  DT usage to evolve over time, but have no specifics plans.

-Gerolf

On Sep 9, 2014, at 12:52 AM, Eric Christopher <echristo at gmail.com> wrote:

> Hi Gerolf,
> 
> One more comment in line.
> 
> As far as the dominance tree, you don't ever check to find out if you have dominance trees, you just require it. The leading question was: if it's not optional, then you can probably use it in more places in the pass. If it is optional then you're not actually checking for it before using it.
> 
> Thanks!
> 
> ================
> Comment at: lib/Transforms/InstCombine/InstCombineCompares.cpp:2977
> @@ +2976,3 @@
> +              // replace select with operand on then path for NE compares.
> +              int Path = I.getPredicate() == ICmpInst::ICMP_EQ ? 1 : 0;
> +              if (InstCombiner::dominatesAllUses(
> ----------------
> majnemer wrote:
>> echristo wrote:
>>> Isn't this just a boolean then?
>> I'd make this an unsigned, getSuccessor is asking which successor to take.  It just so happens that we are only interested in cases where there are two successors.
> Yes. Makes sense that way. Might be better off just grabbing the correct successor rather than mucking with the integer.
I agree.
> 
> http://reviews.llvm.org/D5258
> 
> 





More information about the llvm-commits mailing list