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...