Displaying 9 results from an estimated 9 matches for "mbpi".
Did you mean:
mapi
2011 Oct 19
3
[LLVMdev] Question regarding basic-block placement optimization
...+MachineFunction::iterator(From);
Does C++ allow this these days? I would prefer llvm::next(MachineFunction::iterator(From))
Note that MachineFunction::iterator decays into an MBB pointer, so you can say FI->canFallThrough() and AnalyzeBranch(*FI...)
+ WeightedEdge WE = { BaseFrequency * MBPI->getEdgeProbability(From, To),
Did we add API for this computation? We intended to add a function that computes this and saturates on overflow etc.
> Still, for the test cases that don't tickle the iteration bug, it generates beautiful, well laid out code. =]
I am sure others have stro...
2011 Oct 20
0
[LLVMdev] Question regarding basic-block placement optimization
...n class.
> - Use a separate anonymous namespace per class, and don't indent for the namespace.
>
...
> Note that MachineFunction::iterator decays into an MBB pointer, so you can say FI->canFallThrough() and AnalyzeBranch(*FI...)
>
> + WeightedEdge WE = { BaseFrequency * MBPI->getEdgeProbability(From, To),
>
> Did we add API for this computation? 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 any...
2017 Dec 15
2
RFC: Synthetic function entry counts
...EntryCount
> are using it to check "HasProfileData". So adding synthetic values would
> cause us to take a lot of code paths in the compiler that were intended to
> use real profile data.
>
> As a simple example, MachineBlockPlacement::collectLoopBlockSet uses MBFI
> and MBPI guarded by a check of getEntryCount to see if PGO data is present
> (the comment even says "This needs precise profile data and we only do this
> when profile data is available."). Do we need to refactor things first to
> use a more semantically meaningful check, like "hasRe...
2017 Dec 15
2
RFC: Synthetic function entry counts
...uot;HasProfileData". So adding synthetic values would
>>> cause us to take a lot of code paths in the compiler that were intended to
>>> use real profile data.
>>>
>>> As a simple example, MachineBlockPlacement::collectLoopBlockSet uses
>>> MBFI and MBPI guarded by a check of getEntryCount to see if PGO data is
>>> present (the comment even says "This needs precise profile data and we only
>>> do this when profile data is available."). Do we need to refactor things
>>> first to use a more semantically meaningful...
2016 Feb 05
2
Profiling with LLVM.
Dear Duncan,
I am generating branch-weights annotated IR files as described in the
documentation of LLVM, using profiling with instrumentation.
http://clang.llvm.org/docs/UsersManual.html#profiling-with-instrumentation
e.g.
llvm-profdata merge -output=$(BENCH).profdata default.profraw
> clang -S -emit-llvm -O3 -fprofile-instr-use=$(BENCH).profdata -o
> bench.prof.ll bench.c
The issue is
2017 Dec 15
2
RFC: Synthetic function entry counts
On Fri, Dec 15, 2017 at 12:22 AM, Sean Silva <chisophugis at gmail.com> wrote:
> IIUC, this proposal is just saying that we should infer a static profile
> for entry counts just like we do for branch probabilities. In the case of
> entry counts, we do not hide that information behind an analysis like BPI,
> so currently just annotating synthetic PGO entry counts is a simple
>
2011 Oct 19
0
[LLVMdev] Question regarding basic-block placement optimization
On Wed, Oct 19, 2011 at 3:24 AM, Chandler Carruth <chandlerc at google.com>wrote:
> On Tue, Oct 18, 2011 at 6:58 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote:
>
>>
>> On Oct 18, 2011, at 5:22 PM, Chandler Carruth wrote:
>>
>> As for why it should be an IR pass, mostly because once the selection
>>> dag runs through the code, we can never
2011 Oct 20
2
[LLVMdev] Question regarding basic-block placement optimization
...alyzeBranch(*FI...)
>
I'm aware, but there were a few weird places where it didn't happen, and
'From' seemed like a more readable name anyways... Lemme know if you'd
really rather I use the iterator everywhere.
> >
> > + WeightedEdge WE = { BaseFrequency * MBPI->getEdgeProbability(From,
> To),
> >
> > Did we add API for this computation? 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 y...
2011 Oct 19
3
[LLVMdev] Question regarding basic-block placement optimization
On Tue, Oct 18, 2011 at 6:58 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote:
>
> On Oct 18, 2011, at 5:22 PM, Chandler Carruth wrote:
>
> As for why it should be an IR pass, mostly because once the selection dag
>> runs through the code, we can never recover all of the freedom we have at
>> the IR level. To start with, splicing MBBs around requires known about