Displaying 20 results from an estimated 500 matches similar to: "[LLVMdev] [PATCH] & Question: Preserving ProfileInfo for backend."
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
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 10
0
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
> It *is* allowed to access ModulePass analysis information from an
> FunctionPass?
BasicBlockPlacement (a FunctionPass) also accesses the profile
information and I assumed it worked (but haven't independently
verified this).
> Can you try to manually override the PI value in the
> MyCodeGenPass::runOnMachineFunction() to the value seen in llc and then
> access the
2009 Sep 10
0
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
> What does "llc -debug-pass=Structure" say? Is the ProfileLoaderPass
> really the last pass to touch the ProfileInfo before you are using it?
Below is the sequence of passes that I see. Although the
NoProfileInfo pass is being run, it should be subsequently overridden
by ProfileInfoLoaderPass (LoaderPass) correct?
Target Data Layout
Create Garbage Collector Module Metadata
2009 Sep 10
2
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
Shuguang Feng wrote:
>> What does "llc -debug-pass=Structure" say? Is the ProfileLoaderPass
>> really the last pass to touch the ProfileInfo before you are using it?
>
> Below is the sequence of passes that I see. Although the
> NoProfileInfo pass is being run, it should be subsequently overridden
> by ProfileInfoLoaderPass (LoaderPass) correct?
Yes.
>
2009 Sep 10
1
[LLVMdev] Loading ProfileInfo in Backend. (Was: [PATCH] & Question: Preserving ProfileInfo for backend.)
Hi,
Shuguang Feng wrote:
> Thanks for such a rapid response!
>
>> Don't know about Passes in the backend, but this could be a problem of
>> an FunctionPassManager trying to use a ModulePass.
>
> I manually applied the patch you provided for llc (I'm using the 2.5
> release of LLVM not ToT) and it fixed my compilation error. When your
> patch replaced the
2009 Dec 02
0
[LLVMdev] Preserving ProfileInfo in Backend
Hi all,
after some work I finally am able to preserve the ProfileInfo in quite
some passes. My first question is how to deal with this patch. I have
touched quite some code, everywhere are scattered bits of "preserving
code" and a quite some additions to the ProfileInfo-API.
I guess checking in the ProfileInfo part is not a problem, but how shall
I proceed with all the code 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,
2009 Dec 07
1
[LLVMdev] Preserving ProfileInfo in several Passes
Hi!
On 12/03/2009 07:50 PM, Dan Gohman wrote:
> 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()).
Yes, it would, how do I do this? :-)
>> +
2009 Dec 03
2
[LLVMdev] Preserving ProfileInfo in several Passes
Hi all,
this (altough a big patch) is actually pretty straight forward: It
(tries) to preserve ProfileInfo in all -std-compile-opts passes and all
X86-Backend passes.
There is still some passes that have corner cases where the ProfileInfo
is not correct after the pass. Some passes are still missing...
How shall I proceed with this?
Andi
-------------- next part --------------
A non-text
2009 Sep 09
2
[LLVMdev] [PATCH] & Question: Preserving ProfileInfo for backend.
Thanks for such a rapid response!
> Don't know about Passes in the backend, but this could be a problem of
> an FunctionPassManager trying to use a ModulePass.
I manually applied the patch you provided for llc (I'm using the 2.5
release of LLVM not ToT) and it fixed my compilation error. When your
patch replaced the FunctionPassManager used by llc with a PassManager
the error went
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
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
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
>
2010 Jan 21
0
[LLVMdev] ProfileInfo Questions -- How to proceed?
Hi all,
I have some questions about the maintenance of the Profiling Code, since
this is largely my contribution I still feel responsible for it.
(I have not finished my master thesis, so it also is still work in
progress... :-)
When there are API changes in LLVM, I guess the person changing the API
is responsible for changing all the occurrences in LLVM? (So I do not
have to worry about
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
2005 Mar 18
0
[LLVMdev] Loading ProfileInfo
On Thu, 17 Mar 2005, Eric Zimmerman wrote:
> Chris,
>
> Thanks, that worked. For my own understanding, I wondered if using
> the opt command-line is the only way to request a
> ProfileInfoLoaderPass? What if I want to use this information in the
> 'analyze' utility instead of 'opt'?
Ah, very reasonable :). If you update CVS, it should be available in both
opt
2009 Sep 10
0
[LLVMdev] [PATCH] Preserver ProfileInfo in CodeGenPrepare
Hi all!
Attached a patch to preserve ProfileInfo in CodeGenPrepare.
Would it be okay to commit such patches (that touch parts of LLVM to
preserve ProfileInfo) without prior approval?
Thanks, Andi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvm-r81438.preserver.profile.info.patch
Type: text/x-patch
Size: 4480 bytes
Desc: not available
URL:
2009 Sep 10
0
[LLVMdev] [PATCH] Preserver ProfileInfo in CodeGenPrepare
Hi all!
Attached a patch to preserve ProfileInfo in CodeGenPrepare.
Would it be okay to commit such patches (that touch parts of LLVM to
preserve ProfileInfo) without prior approval?
Thanks, Andi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvm-r81438.preserver.profile.info.patch
Type: text/x-patch
Size: 4479 bytes
Desc: not available
URL:
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