Displaying 20 results from an estimated 20000 matches similar to: "[LLVMdev] profile directed pass with 'extern' profile data"
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.
2009 Sep 09
2
[LLVMdev] [PATCH] & Question: Preserving ProfileInfo for backend.
Hi,
Does the current LLVM backend support reading in profile information
(without preserving across transformations)? An earlier poster
http://groups.google.com/group/llvm-dev/browse_thread/thread/4bd65dbe84394bb7
noted that accessing execution counts in a MachineFunction pass (using
the BasicBlock* corresponding to the respective MachineBasicBlock)
returned 0 for all blocks. Running llc with
2009 Sep 08
0
[LLVMdev] [PATCH] & Question: Preserving ProfileInfo for backend.
On Sep 8, 2009, at 1:27 AM, Andreas Neustifter wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi,
>
> the second part of my work is to preserve the profiling information
> through all the transformation passes and make it available to the
> backend machinery.
>
> Attached is an example patch on how I plan to preserve the information
> for a given
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
2009 Sep 09
0
[LLVMdev] [PATCH] & Question: Preserving ProfileInfo for backend.
Hi,
Shuguang Feng wrote:
> Does the current LLVM backend support reading in profile information
> (without preserving across transformations)? An earlier poster
Yes, it does.
> http://groups.google.com/group/llvm-dev/browse_thread/thread/4bd65dbe84394bb7
>
> noted that accessing execution counts in a MachineFunction pass (using
> the BasicBlock* corresponding to the respective
2009 Sep 08
2
[LLVMdev] [PATCH] & Question: Preserving ProfileInfo for backend.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
the second part of my work is to preserve the profiling information
through all the transformation passes and make it available to the
backend machinery.
Attached is an example patch on how I plan to preserve the information
for a given transformation pass.
And now comes the question into place: whats the best way to attach the
profile info
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.
> [...]
2010 Feb 25
0
[LLVMdev] Using Profile Information
Ah BTW...
On 25.02.2010, at 17:33, ambika wrote:
> ProfileInfo *PI;
> PI = &getAnalysis<ProfileInfo>();
If this _in_ your pass, then you have to register the usage of this in
the getAnalysisUsage() method:
void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<ProfileInfo>();
}
Also you have to ensure that the pass you are using is executed right
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
2008 Nov 26
0
[LLVMdev] LLVM profiling
Hi Rantao,
perhaps you should use $llvmpath/utils/profile.pl for profiling? It
works well. If you don't want to use it, there is at least some code
in the script that should help you.
BTW: I'm not sure if it is possible to instrument the bitcode with
function and basic block code at the same time.
But it should work sequential (data in llvmprof.out are accumulated
after each run
2010 Feb 25
3
[LLVMdev] Using Profile Information
Hi,
How can I use profile information into my pass for performing some analysis.
I tried something like:
PassManager PassMgr = PassManager();
cl::opt<std::string> ProfileDataFile(cl::Positional,
cl::desc("<llvmprof.out file>"),
cl::Optional, cl::init("llvmprof.out"));
PassMgr.add(createProfileLoaderPass(ProfileDataFile));
2012 Jul 16
0
[LLVMdev] FYI: Planning to remove ProfileInfo and related passes from LLVM
Hi Chandler and Alastair,
I have been using the Profile.pl and the related passes and optimizations for about 4 years now. With every new release lately, the support for the profile scripts and their framework seemed to be downgrading. Hence, I used my own tiny one line fixes to keep them working. I offered to send these small patches to keep these scripts working, to the LLVM dev so that others
2012 Oct 12
2
[LLVMdev] initial selection DAG
Hi,
I wonder how the initial selection DAG is built in the backends.
>From working backends I get:
----8<-------
Initial selection DAG: BB#0 'main:'
SelectionDAG has 18 nodes:
----8<-------
>From my (not working) backend I get:
----8<-------
Initial selection DAG: BB#0 'main:'
SelectionDAG has 15 nodes:
----8<-------
I miss three nodes and I wonder what do I have
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.
2013 Sep 06
3
[LLVMdev] RFC - Extending ProfileInfo to support external profiles
I've been looking at the existing profile support in LLVM with
the intent of incorporating other sources of profile information.
In particular, I'm writing a tool that converts perf
(http://perf.wiki.kernel.org) data into a loadable LLVM profile.
First, I would like to describe what I understand about the
current setup. Please correct me, as I'm likely to be missing a
few things. I
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
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
>>
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
2012 Feb 27
3
[LLVMdev] SwitchInst handling in backend
Hi,
if I want to know how switch instructions are handled in the backend, where do I have to look first?
I'm not familiar with the backend framework and I couldn't figure out the interface between the LLVM instruction 'SwitchInst' and whatever there is in the backend.
I would be very happy about every hint where I have to look to find the entry point of switch instructions in the
2009 Dec 03
0
[LLVMdev] Preserving ProfileInfo in several Passes
Hello,
Here are a few misc. comments on this patch.
Would it make sense to mark the ProfileInfo passes as "CFGOnly?"
If so, that would let them be automatically preserved by passes
which don't modify the CFG (and that call AU.setPreservesCFG()).
> + if (ProfileInfo* PI = getAnalysisIfAvailable<ProfileInfo>()) {
> + PI->splitEdge(OrigPreHeader, NewHeader,