Displaying 5 results from an estimated 5 matches for "foldsingleentryphinodes".
2011 Feb 01
0
[LLVMdev] Loop simplification
...duce a pair of
> nested loops to a single loop.
>
> llvm::MergeBlockIntoPredecessor does not do what I want since it
> requires that the the block have a unique predecessor.
I didn't notice anything that will do what you want out-of-box, but it should not be hard to write. llvm::FoldSingleEntryPHINodes is an example of phi node replacement. But in this case, you'll need to do one in-place operand replacement for each successor phi use and call PhiNode::addIncoming for the rest. Note that multiple successor phis may use the same predecessor phi, so you should be careful of mutating the phis wh...
2011 Feb 01
5
[LLVMdev] Loop simplification
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 trying to undo some of the loop
optimizations that LLVM has applied to my program to reduce a pair of
nested loops to a single loop.
2011 Feb 01
3
[LLVMdev] Loop simplification
...ested loops to a single loop.
>>
>> llvm::MergeBlockIntoPredecessor does not do what I want since it
>> requires that the the block have a unique predecessor.
>
> I didn't notice anything that will do what you want out-of-box, but it should not be hard to write. llvm::FoldSingleEntryPHINodes is an example of phi node replacement. But in this case, you'll need to do one in-place operand replacement for each successor phi use and call PhiNode::addIncoming for the rest. Note that multiple successor phis may use the same predecessor phi, so you should be careful of mutating the phis wh...
2011 Feb 01
2
[LLVMdev] Loop simplification
...ested loops to a single loop.
>>
>> llvm::MergeBlockIntoPredecessor does not do what I want since it
>> requires that the the block have a unique predecessor.
>
> I didn't notice anything that will do what you want out-of-box, but it should not be hard to write. llvm::FoldSingleEntryPHINodes is an example of phi node replacement. But in this case, you'll need to do one in-place operand replacement for each successor phi use and call PhiNode::addIncoming for the rest. Note that multiple successor phis may use the same predecessor phi, so you should be careful of mutating the phis wh...
2011 Feb 01
0
[LLVMdev] Loop simplification
...ops to a single loop.
>>>
>>> llvm::MergeBlockIntoPredecessor does not do what I want since it
>>> requires that the the block have a unique predecessor.
>> I didn't notice anything that will do what you want out-of-box, but it should not be hard to write. llvm::FoldSingleEntryPHINodes is an example of phi node replacement. But in this case, you'll need to do one in-place operand replacement for each successor phi use and call PhiNode::addIncoming for the rest. Note that multiple successor phis may use the same predecessor phi, so you should be careful of mutating the phis wh...