Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] Preserving ProfileInfo in Backend"
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 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 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 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 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 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 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 22
1
[LLVMdev] Preserving Analysis in ALL Passes
Hi,
I'm fighting with this quite some time now: Is there a way to mark an
Analysis (in my case ProfileInfo) as perserved by _all_ passes?
I have tried to add ProfileInfo directly in Pass.h:getAnalysisUsage()
but that produces nasty circular library dependecies.
I also tried to simply store a pointer to the ProfileInfo in Module but
then the PassManager gets confused resulting in double
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
2009 Dec 03
0
[LLVMdev] PassManager again...
Hi all!
On 11/20/2009 06:29 PM, Devang Patel wrote:
>
> On Fri, Nov 20, 2009 at 6:54 AM, Andreas Neustifter wrote:
>>
>> If I use AU.addRequired<ProfileInfo>() in SelectionDAGISel.cpp the
>> wrong ProfileInfo is used. It uses the "No ProfileInfo" implementation
>> if ProfileInfo but not the one from ProfileInfoLoaderPass. (Which is
>>
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 Nov 20
0
[LLVMdev] PassManager again...
Hi.
On 11/17/2009 08:16 PM, Andreas Neustifter wrote:
> Hi,
>
> Devang Patel wrote:
>> On Tue, Nov 17, 2009 at 9:03 AM, Andreas Neustifter
>> <astifter-llvm at gmx.at> wrote:
>>
>>> Okay, so the ProfileInfoLoader is working, but when I examine the executions more closely I see that the ProfileInfo generated by the ProfileInfoLoader is immediately
2009 Nov 17
4
[LLVMdev] PassManager again...
Hi,
Devang Patel wrote:
> On Tue, Nov 17, 2009 at 9:03 AM, Andreas Neustifter
> <astifter-llvm at gmx.at> wrote:
>
>> Okay, so the ProfileInfoLoader is working, but when I examine the executions more closely I see that the ProfileInfo generated by the ProfileInfoLoader is immediately discarded, when the SelectionDAGISel kicks in the "No Profile Info"-Implementation
2009 Nov 20
2
[LLVMdev] PassManager again...
On Fri, Nov 20, 2009 at 6:54 AM, Andreas Neustifter
<astifter-llvm at gmx.at> wrote:
>
> If I use AU.addRequired<ProfileInfo>() in SelectionDAGISel.cpp the
> wrong ProfileInfo is used. It uses the "No ProfileInfo" implementation
> if ProfileInfo but not the one from ProfileInfoLoaderPass. (Which is
> immediately discarded after creation.)
>
You need to
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
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
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