search for: bothcond

Displaying 5 results from an estimated 5 matches for "bothcond".

2016 Jul 27
2
Remove zext-unfolding from InstCombine
...o` will not be lowered to the IR that we have in zext-or-icmp.ll, where the `zext` is placed after the `or` instruction as opposed to `@foo_before_InstCombine`: ``` define i8 @zext_or_icmp_icmp(i8 %a, i8 %b) { %mask = and i8 %a, 1 %toBool1 = icmp eq i8 %mask, 0 %toBool2 = icmp eq i8 %b, 0 %bothCond = or i1 %toBool1, %toBool2 %zext = zext i1 %bothCond to i8 ret i8 %zext } ``` That means as long as the `zext` in zext-or-icmp.ll isn't pushed in front of the `icmp` operations it will not be possible to remove one of them via `transformZExtICmp()` to get to something like `@goo`. So if I&...
2016 Aug 04
2
Remove zext-unfolding from InstCombine
...{ %and = and i8 %a, 1 %xor = xor i8 %and, 1 %cmp = icmp eq i8 %b, 0 %zext = zext i1 %cmp to i8 %or = or i8 %xor, %zext ret i8 %or } … and also on ... define i8 @zext_or_icmp_icmp(i8 %a, i8 %b) { %mask = and i8 %a, 1 %toBool1 = icmp eq i8 %mask, 0 %toBool2 = icmp eq i8 %b, 0 %bothCond = or i1 %toBool1, %toBool2 %zext = zext i1 %bothCond to i8 ret i8 %zext } … InstCombine will now eventually get to: define i8 @zext_or_icmp_icmp(i8 %a, i8 %b) { %1 = icmp ne i8 %b, 0 %2 = zext i1 %1 to i8 %zext.demorgan = and i8 %2, %a %zext = xor i8 %zext.demorgan, 1 ret i8 %zext }...
2006 Nov 13
0
[LLVMdev] post-dominance frontier
On Thu, 9 Nov 2006, Ryan M. Lefever wrote: Sorry I never responded to this: > In the literature (see below for a reference), when a dominance frontier > is computed, it is computed from a CFG that contains a dummy entry node > and dummy exit node. Further, those dummy nodes are potential members > of the (post-)dominance frontier for a given basic block. In LLVM, I > could not
2006 Nov 10
2
[LLVMdev] post-dominance frontier
In the literature (see below for a reference), when a dominance frontier is computed, it is computed from a CFG that contains a dummy entry node and dummy exit node. Further, those dummy nodes are potential members of the (post-)dominance frontier for a given basic block. In LLVM, I could not figure out a way to determine if the dummy entry node is a member of the post-dominance frontier of
2016 Jul 21
2
Remove zext-unfolding from InstCombine
Hi all, I have a question regarding a transformation that is carried out in InstCombine, which has been introduced by r48715. It unfolds expressions of the form `zext(or(icmp, (icmp)))` to `or(zext(icmp), zext(icmp)))` to expose pairs of `zext(icmp)`. In a subsequent iteration these `zext(icmp)` pairs could then (possibly) be optimized by another optimization (which has already been there before