Displaying 10 results from an estimated 10 matches for "removeincomingvalu".
Did you mean:
removeincomingvalue
2020 May 15
3
ConstantFoldTerminator doesn't delete trivially dead phi inputs
...ptimizations where CodeGenPrepare seems
to leave trivially dead instructions lying around.
This happens because CodeGenPrepare::runOnFunction calls
ConstantFoldTerminator which folds a "br i1 false" into an
unconditional branch and calls BasicBlock::removePredecessor which
calls PHINode::removeIncomingValue. Each incoming value that is
removed from a phi node might be dead now, but nothing deletes them.
Is there any way this could be improved? Could
PHINode::removeIncomingValue call
RecursivelyDeleteTriviallyDeadInstructions on the value it removes, or
is that a layering violation? Any other ideas?...
2017 May 01
4
RFC: Stop using redundant PHI node entries for multi-edge predecessors
...oes handle this very ad-hoc
>> "count off N repetitions of the same thing" style code, which is brittle and
>> hard to test effectively.
>
> Having written this code a few times, i'd agree.
>
>>
>> 4) I suspect bugs are quite common given that PHINode::removeIncomingValue
>> accepts a basic block but only removes the first incoming value, leaving the
>> others in place.
>
>> I can't see any serious use case for this symmetry either. These aren't
>> uses (and can't be), and there doesn't seem to be any lost functionality if...
2017 May 01
3
RFC: Stop using redundant PHI node entries for multi-edge predecessors
...respondence between the edges and the PHI node entries
other than number, making most of the code that does handle this very
ad-hoc "count off N repetitions of the same thing" style code, which is
brittle and hard to test effectively.
4) I suspect bugs are quite common given that PHINode::removeIncomingValue
accepts a basic block but only removes the first incoming value, leaving
the others in place.
I can't see any serious use case for this symmetry either. These aren't
uses (and can't be), and there doesn't seem to be any lost functionality if
we only have a single entry.
It also s...
2012 Mar 08
2
[LLVMdev] Updating value from PHI
...e = PHINode::Create(PN->getType(), 2,
PN->getName().str(), splitBB->getFirstInsertionPt());
int IDX = PN->getBasicBlockIndex(splitBB);
while (IDX != -1) {
Value *oldValue = PN->getIncomingValue((unsigned(IDX)));
PN->removeIncomingValue(IDX, false);
newPHIvalue->addIncoming(oldValue, loopLatchBB);
newPHIvalue->addIncoming(PN, loopHeaderBB);
IDX = PN->getBasicBlockIndex(splitBB);
}
}
On Wed, Mar 7, 2012 at 4:04 PM, Ryan Taylor <ryta1203 a...
2012 Mar 08
0
[LLVMdev] Updating value from PHI
...t;getType(), 2,
> PN->getName().str(), splitBB->getFirstInsertionPt());
> int IDX = PN->getBasicBlockIndex(splitBB);
> while (IDX != -1) {
> Value *oldValue = PN->getIncomingValue((unsigned(IDX)));
> PN->removeIncomingValue(IDX, false);
> newPHIvalue->addIncoming(oldValue, loopLatchBB);
> newPHIvalue->addIncoming(PN, loopHeaderBB);
> IDX = PN->getBasicBlockIndex(splitBB);
>
> }
> }
>
> On Wed, Mar 7, 2012...
2011 Feb 01
0
[LLVMdev] Loop simplification
...hi);
UT_ASSERT(phi->getBasicBlockIndex(pred) >= 0);
Value *val = phi->getIncomingValueForBlock(pred);
PHINode *predphi = dyn_cast<PHINode>(val);
if (predphi && predphi->getParent() != pred)
predphi = 0;
phi->removeIncomingValue(pred, false);
for (pred_iterator pi = pred_begin(pred);
pi != pred_end(pred); ++pi)
{
// We're a new predecessor
if (phi->getBasicBlockIndex(*pi) < 0)
{
if (predphi)
{...
2011 Feb 01
3
[LLVMdev] Loop simplification
On Feb 1, 2011, at 1:34 PM, Andrew Trick wrote:
> On Feb 1, 2011, at 1:08 PM, Andrew Clinton wrote:
>
>> I have a (non-entry) basic block that contains only PHI nodes and an
>> unconditional branch (that does not branch to itself). Is it always
>> possible to merge this block with it's successor and produce a
>> semantically equivalent program? I'm
2012 Mar 08
0
[LLVMdev] Updating value from PHI
I have attached a case of what I am trying to do, I'm pretty sure I'm just
missing some simple API call. In the cfg you can see that although Im
setting "lsr.iv441" as "lsr.iv44" from for.body.387.i it's not propagating
that through the block or graph.
On Wed, Mar 7, 2012 at 12:03 PM, Ryan Taylor <ryta1203 at gmail.com> wrote:
> I am splitting a one BB
2012 Mar 07
4
[LLVMdev] Updating value from PHI
I am splitting a one BB loop into two BB.
Basically, the one loop BB has 3 incoming values, one form back edge two
from other edges. I want to extract the PHIs from the other two edges out
into it's own BB and delete that from the loop, then redirect the backedge
to the loopbody (non extracted portion) and create a new PHI coming from
the extracted BB and the backedge.
I can do this;
2013 Mar 02
2
[LLVMdev] Question about method CodeExtractor::severSplitPHINodes
...->addIncoming(PN->getIncomingValue
<http://llvm.org/docs/doxygen/html/classllvm_1_1PHINode.html#aba6a4cc4ed6d6fef3664b8d65ef04820>(i),
PN->getIncomingBlock
<http://llvm.org/docs/doxygen/html/classllvm_1_1PHINode.html#a4c25b6c00c4867281779c81ab64d2081>(i));00256
PN->removeIncomingValue
<http://llvm.org/docs/doxygen/html/classllvm_1_1PHINode.html#a6f01dbe965b38186b1a78378689d4105>(i);00257
--i;00258 }00259 }00260 }00261 }00262 }
--
Wei
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/p...