Displaying 5 results from an estimated 5 matches for "getedgefreq".
2013 Jan 23
2
[LLVMdev] BlockFrequencyImpl asserts on multiple edges between same MBBs with different weights in LLVM 3.2
...e., it sums up the weights of
all edges to the same successor, and that fixes BlockFrequencyImpl to
iterate over every predecessor only once.
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 implement.
I could not reproduce that problem with the X86 or the ARM backend, so I
cannot really provide you with a testcase that works without our bac...
2011 Oct 20
0
[LLVMdev] Question regarding basic-block placement optimization
...n? We intended to add a function that computes this and saturates on overflow etc.
Overflow is handled transparently in the overloaded BlockFrequency::operator*(BranchProbability). But you could use the existing API anyway by adding a helper to MachineBlockFrequencyInfo calling BlockFrequencyImpl::getEdgeFreq(Src,Dst).
>> Still, for the test cases that don't tickle the iteration bug, it generates beautiful, well laid out code. =]
>
> I am sure others have strong opinions about the algorithm ;-)
I may be one of those others ;-). Although handling SCCs (loops) probably saves Chandler...
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 implement.
Hi Stefan,
The MachineBasicBlock CFG is supposed to be a proper graph without duplicate edges, unlike the LLVM IR CFG.
I thought I had cleaned...
2011 Oct 19
3
[LLVMdev] Question regarding basic-block placement optimization
On Oct 19, 2011, at 5:50 AM, Chandler Carruth wrote:
> Ok, wow that wasn't hard at all.
Awesome ;-)
> This is still *very* much a rough draft, but it's probably better to review that the previous patch. One big caveat, I know I have an iteration bug in here somewhere that is inf-looping. Just ran out of steam debugging it, will pick it back up again later today to shake it out.
2011 Oct 20
2
[LLVMdev] Question regarding basic-block placement optimization
...ion that
> computes this and saturates on overflow etc.
>
> Overflow is handled transparently in the overloaded
> BlockFrequency::operator*(BranchProbability). But you could use the existing
> API anyway by adding a helper to MachineBlockFrequencyInfo calling
> BlockFrequencyImpl::getEdgeFreq(Src,Dst).
>
Yea, this should be handled by the BlockFrequency object correctly here, but
if you'd rather see the helper I can add that. Was just keeping this patch
more focused on the pass.
> >> Still, for the test cases that don't tickle the iteration bug, it
> generates...