Displaying 20 results from an estimated 100000 matches similar to: "[LLVMdev] Timing information out of the profiler"
2009 Aug 18
3
[LLVMdev] Profiling in LLVM Patch Followup 1
Hi!
Daniel Dunbar wrote:
> Applied as r78477.
>
> I do have a few comments on the patch, below, but I'll wait to see
> where things are going before acting on them. :)
>
> --
>
>> Index: include/llvm/Analysis/ProfileInfo.h
>> ===================================================================
>
>> + // MissingValue - The value that is returned
2009 Jul 14
0
[LLVMdev] Profiling in LLVM Patch Followup 1
Hi Andreas,
Thanks for breaking things up.
I applied two pieces of this patch in separate no-functionality-change
commits, here:
http://llvm.org/viewvc/llvm-project?view=rev&revision=75623
and here:
http://llvm.org/viewvc/llvm-project?view=rev&revision=75625
I merged in my changes to your patch, which results in the attached
patch. There may be some missed merge errors. The main
2009 Aug 08
0
[LLVMdev] Profiling in LLVM Patch Followup 1
Applied as r78477.
I do have a few comments on the patch, below, but I'll wait to see
where things are going before acting on them. :)
--
> Index: include/llvm/Analysis/ProfileInfo.h
> ===================================================================
> + // MissingValue - The value that is returned for execution counts in case
> + // no value is available.
> +
2009 Jul 02
1
[LLVMdev] Profiling in LLVM Patch Followup 1
Hi,
this is the first in a series of patches to cleanup and improve the LLVM Profiling Infrastructure.
First and foremost this patch removes duplicate functionality from ProfileInfoLoader and ProfileInfo:
The ProfileInfoLoader performed not only the loading of the profile information but also some synthesis of block and function execution counts from edge profiling information. Since the
2009 Jul 02
0
[LLVMdev] Profiling in LLVM Patch
On Wed, Jul 1, 2009 at 2:36 AM, Andreas
Neustifter<e0325716 at student.tuwien.ac.at> wrote:
>> [...]
>>
>> 1. The intent of ProfileInfo is that it is the public interface used by the rest
>> of LLVM for all "profiling" related analyses. As such, we want it to have a
>> thin, well-defined interface which can be implemented by multiple analysis
>>
2012 Sep 19
0
[LLVMdev] counting branch frequencies
Another issue is with ProfileInfo::getExecutionCount(Function* F).
Looking at the source code and results, I am seeing that it always
returns the execution count of the entry basic block of the function. If
the entry basic block is part of a loop, its execution count does not
match the function invocation count.
Is my assumption wrong, that ProfileInfo::getExecutionCount(Function* F)
is
2009 Jul 01
12
[LLVMdev] Profiling in LLVM Patch
Hi Daniel,
Daniel Dunbar wrote:
> Hi Andreas,
>
> First, thanks again for undertaking this work and submitting it back. There is a
> lot of good stuff here and it would be great to see it get back into the tree.
Thanks for taking the time to review this, I know its a huge patch. I still have a few questions on how you would like this patch to be re-factored and split up.
> [...]
2012 Sep 19
1
[LLVMdev] counting branch frequencies
Can we not run the -insert-edge-profiling and -profile-loader passes at the beginning of the opt? Orthogonal point is, is it worth doing any optimizations when -insert-edge-profiling is specified on command line?
-Prashantha
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Alastair Murray
Sent: Wednesday, September 19, 2012
2008 Nov 02
0
[LLVMdev] Strange behaviour with profile data loading
Hello:
I am following the example code in BasicBlockPlacement.cpp. That
transformation relies on basic block execution frequencies that have been
read from a profile file. This is how it loads the profile data:
1. In getAnalysisUsage, it calls addRequired<ProfileInfo>(), and
2. In the runOnFunction, it calls getAnalysis<ProfileInfo>() which returns a
ProfileInfo object pointer.
2005 Mar 17
2
[LLVMdev] Loading ProfileInfo
Hi LLVMers,
I am fairly new to the LLVM pass framework. My goal is to extend the
CFGPrinter analysis pass to label the edges of the graph with their
edge-counts from profile data.
I can generate the CFGs using 'analyze', but I am having trouble
loading the profile data. I added the line
AU.addRequired<ProfileInfo>(); to the getAnalysisUsage. It is
returning zero for all the edge
2009 Jul 01
0
[LLVMdev] Profiling in LLVM Patch
Hi Andreas,
First, thanks again for undertaking this work and submitting it back. There is a
lot of good stuff here and it would be great to see it get back into the tree.
I have a few major high-level comments on the patch. First off, the patch is
quite large and should be broken down into separate incremental changes which
are easier to review and apply. I think the patches should more or less
2005 Mar 17
0
[LLVMdev] Loading ProfileInfo
On Wed, 16 Mar 2005, Eric Zimmerman wrote:
> Hi LLVMers,
>
> I am fairly new to the LLVM pass framework. My goal is to extend the
> CFGPrinter analysis pass to label the edges of the graph with their
> edge-counts from profile data.
>
> I can generate the CFGs using 'analyze', but I am having trouble
> loading the profile data. I added the line
>
2005 Mar 18
2
[LLVMdev] Loading ProfileInfo
On Wed, Mar 16, 2005 at 09:16:20PM -0600, Chris Lattner wrote:
> >I am fairly new to the LLVM pass framework. My goal is to extend the
> >CFGPrinter analysis pass to label the edges of the graph with their
> >edge-counts from profile data.
> >
> >I can generate the CFGs using 'analyze', but I am having trouble
> >loading the profile data. I added the
2012 Sep 19
3
[LLVMdev] counting branch frequencies
Thanks everyone for the replies. After some experimentation, I found
that the order in which the passes are specified matters:
opt -O3 -profile-loader matmult.bc -o matmult.opt.bc (works)
opt -profile-loader -O3 matmult.bc -o matmult.opt.bc (does not work)
Also, I am able to avoid the inconsistency warning only for optimization
levels -O3 and -O2. I get that warning when using -O1 and
2009 Jul 22
4
[LLVMdev] Profiling in LLVM Patch Followup 1
Hi Daniel!
Daniel Dunbar wrote:
> I merged in my changes to your patch, which results in the attached
> patch. There may be some missed merge errors. The main problem I have
> with the rest of this patch is that it causes a regression in
> llvm-prof's behavior. I tried running edge profiling on the
> MultiSource/Applications/aha benchmark in the llvm test-suite, and
>
2012 Sep 19
0
[LLVMdev] counting branch frequencies
Hi Apala,
Dibyendu is correct that this is likely due to pass order, but things
get a bit complicated with -O[1-9] or -std-compile-opts as they insert
early passes *before* the profiling code.
I recommend that you use identical optimizations to insert
instrumentation and to load the profiling data.
E.g.:
opt -insert-edge-profiling -O3 foo.bc -o foo.2.bc
opt -profile-loader -O3 foo.bc
2012 Sep 26
0
[LLVMdev] Error while loading profile information
Hi all,
I am trying to load a profile information (llvmprof.out) which has been
separately created, to get the execution count of each basic block and use
it to estimate the execution count of machine basic blocks for getting how
many times any instruction gets executed, for ARM specifically. The error
on running the code comes as:
clang: PassManager.cpp:601: void
2012 Aug 09
0
[LLVMdev] Profile Based Branch Weight Metadata
Hi Alastair,
Your patch looks great. I am new on this part of llvm. Why do we want to get rid of ProfileInfo? Is there any email thread related to this?
I understand that we want to setBranchWeightMetadata from the profiling data generated by -insert-edge-profiling.
I thought the existing loader can parse the profiling data and map the data to the IR, and only the setting of metadata is missing.
2018 Aug 15
2
Queries Regarding Usage of PGOInstrumentation Passes instead of Deprecated ProfileInfo
Hey all,
I have a piece of code (written in LLVM 2.8) which uses profiling results
produced by ProfileInfo. It essentially computes the number of iterations
performed by a loop from the profiling information available. The code
snippet in my pass looks something like this.
BasicBlock *header = loop->getHeader();
ProfileInfo &pi = getAnalysis< ProfileInfo >();
for(pred_iterator
2010 Feb 26
1
[LLVMdev] Using Profile Information
I have not made a separate pass. I have done it in single pass ie added
ProfileLoaderPass , got information in PI and now I am planning to
perform the analysis here itself.
I was trying to print information using ProfileInfoPrinter pass but was
unable to do it.
namespace {
class MyAna : public ModulePass {
ProfileInfo *PI;
public:
static char ID; // Class identification, replacement