Displaying 9 results from an estimated 9 matches for "mergeblockintopredecessor".
2018 Jun 13
2
RFC: cleanup in Transforms/Utils
Hi,
I'm looking to see what's the best way to solve the fact that these two
utils mostly do the same thing:
1. lib/Transforms/Utils/Local.cpp : MergeBasicBlockIntoOnlyPred
2. lib/Transforms/Utils/BasicBlockUtils.cpp : MergeBlockIntoPredecessor
(+cc some of the folks who touched at least one of these either originally
or recently)
Brief overview:
1. MergeBasicBlockIntoOnlyPred 2. MergeBlockIntoPredecessor
Update DT Update DT
Update either DT or DDT Updates LI and MemoryDependenceResults
Move all instructions from Pred to BB, delete Pred...
2011 Feb 01
0
[LLVMdev] Loop simplification
...). 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.
>
> 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 ne...
2011 Feb 01
5
[LLVMdev] Loop simplification
...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.
llvm::MergeBlockIntoPredecessor does not do what I want since it
requires that the the block have a unique predecessor.
Andrew
2011 Feb 01
3
[LLVMdev] Loop simplification
...t; 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.
>>
>> 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,...
2010 Oct 21
2
[LLVMdev] Splitting basic blocks while preserving machine code
On Wed, Oct 20, 2010 at 7:19 PM, Jim Grosbach <grosbach at apple.com> wrote:
>
> On Oct 20, 2010, at 5:16 PM, Trevor Harmon wrote:
>> I'm writing a pass that does some static analysis on C code. A
>> critical requirement of the pass is that it must preserve not only the
>> correctness of the code but also its timing -- It cannot add or remove
>> even one CPU
2010 Oct 21
0
[LLVMdev] Splitting basic blocks while preserving machine code
On Oct 20, 2010, at 5:26 PM, Kenneth Uildriks wrote:
> You could always undo the split right before your pass finishes.
How would I undo a split? Perhaps by merging them back using
llvm::MergeBlockIntoPredecessor?
Trevor
2011 Feb 01
2
[LLVMdev] Loop simplification
...t; 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.
>>
>> 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,...
2011 Feb 01
0
[LLVMdev] Loop simplification
...erge 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.
>>>
>>> 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...
2009 Sep 08
2
[LLVMdev] Non-local DSE optimization
Hello,
Bug is already fixed by Chris (see: http://llvm.org/bugs/show_bug.cgi?id=4915)
.
I added getRootNode() == NULL condition to my patch. It's not a great
solution, but it is enough for now I think. New patch attached.
-Jakub
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dse_ssu-2.patch
Type: application/octet-stream
Size: 17762 bytes
Desc: not