search for: simplifycmpinst

Displaying 3 results from an estimated 3 matches for "simplifycmpinst".

2017 Mar 03
4
Optionally using value numbering in Simplify*
..., 1 branch i1 provablytrue,, mergeblock, otherbb otherbb: dead = something else br mergeblock merge block a = phi(live, dead) b = live2 result = icmp sge a, b both GVN and NewGVN prove provablytrue to be true, and phi to be equivalent to live. GVN transforms this piece at time, and so by the time simplifycmpinst sees the icmp, it is result = icmp sge <live2, live> It proves result true. NewGVN is an analysis, and so it doesn't transform the ir, and simplifycmpinst (rightfully) does not try to walk everything, everywhere, to prove something. It also couldn't know that dead is dead. So it do...
2017 Mar 03
2
Optionally using value numbering in Simplify*
..., 1 branch i1 provablytrue,, mergeblock, otherbb otherbb: dead = something else br mergeblock merge block a = phi(live, dead) b = live2 result = icmp sge a, b both GVN and NewGVN prove provablytrue to be true, and phi to be equivalent to live. GVN transforms this piece at time, and so by the time simplifycmpinst sees the icmp, it is result = icmp sge <live2, live> It proves result true. NewGVN is an analysis, and so it doesn't transform the ir, and simplifycmpinst (rightfully) does not try to walk everything, everywhere, to prove something. It also couldn't know that dead is dead. So it do...
2017 Apr 26
2
Is there any real downside to constructing the new SimplifyQuery once
...the lifetime of the pass B. actually have more information sitting around than they are passing along. For example, instcombine has a DomTree and AssumptionCache that are required, but it doesn't pass them to SimplifyBinOp in a bunch of cases. JumpThreading has TLI but doesn't pass it to SimplifyCmpInst. CVP at least admits it has a problem: "CorrelatedValuePropagation.cpp: // FIXME: Provide TLI, DT, AT to SimplifyInstruction. CorrelatedValuePropagation.cpp: if (Value *V = SimplifyInstruction(P, DL)) { " (This is because it uses LVI, which requires those things, but it doesn't ask...