search for: mergeblockintopredecessor

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