Displaying 6 results from an estimated 6 matches for "mergeblocks".
Did you mean:
mergeblock
2017 Mar 03
4
Optionally using value numbering in Simplify*
So i have a testcase (see PR31792, and cond_br2.llin GVN) that current GVN
can simplify because it replaces instructions as it goes. It's an example
of a larger issue that pops up quite a lot
I would appreciate thoughts on what to do about it
it amounts to something like this (but again, it happens a lot):
live = gep thing, 0
live2 = gep thing, 1
branch i1 provablytrue,, mergeblock, otherbb
2011 Apr 05
1
[LLVMdev] [GSoC] Optimizing for size
...tion passes use this information. This means
updating passes that currently check the OptimizeForSize attribute to use the
new information instead. I would also make JumpThreading, InlineCost, and
possibly other passes aware of size optimization.
After working on existing passes, I would add a new MergeBlocks pass. This is
an IPO pass that would combine equivalent basic blocks, extracting them into
new functions. Research has shown that this can decrease code size by 5-6%. The
new pass will be based on CodeExtractor and MergeFunctions; it will create a
hash table of every basic block, based on the numbe...
2017 Mar 03
2
Optionally using value numbering in Simplify*
On Fri, Mar 3, 2017 at 12:39 PM, Friedman, Eli <efriedma at codeaurora.org>
wrote:
On 3/3/2017 11:51 AM, Daniel Berlin via llvm-dev wrote:
So i have a testcase (see PR31792, and cond_br2.llin GVN) that current GVN
can simplify because it replaces instructions as it goes. It's an example
of a larger issue that pops up quite a lot
I would appreciate thoughts on what to do about it
it
2013 Jan 24
1
[LLVMdev] BlockFrequencyImpl asserts on multiple edges between same MBBs with different weights in LLVM 3.2
Hi,
On 01/23/2013 11:30 PM, Jakob Stoklund Olesen wrote:
> If you can find the place that creates the duplicate MBB edge, that would be great.
>
Found it :) It happens in lib/CodeGen/IfConversion.cpp at the very end
in MergeBlocks. I attached a small patch that should resolve that issue.
Our tests now compile sucessfully even without my previous patch.
regards,
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Bugfix-to-avoid-creating-duplicate-edges-in-if-conve.patch
Type: t...
2013 Jan 23
0
[LLVMdev] BlockFrequencyImpl asserts on multiple edges between same MBBs with different weights in LLVM 3.2
On Jan 23, 2013, at 12:36 PM, Stefan Hepp <stefan at stefant.org> wrote:
> However, an alternative option could be to simply disallow different edge weights for edges with the same source and destination, or to make the call to getEdgeFreq(Pred,BB) in BlockFrequencyImpl distinguish between the edges, which would eliminate the need for an additional PtrSet, but is not that easy to
2013 Jan 23
2
[LLVMdev] BlockFrequencyImpl asserts on multiple edges between same MBBs with different weights in LLVM 3.2
We are developing a new backend for a custom processor using LLVM.
After updating to LLVM 3.2, we run into an assertion in
BlockFrequencyImpl.h. The offending test-case looks basically like this:
for ( ... ) {
switch (i) {
case 100: // do something
break;
case 102: // do something else
break;
case 103: // do some more
break;
case 104: // now something different