search for: passmgr

Displaying 20 results from an estimated 21 matches for "passmgr".

2009 Jun 04
1
[LLVMdev] Get Analysis from PassManager
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I try to write a tool that uses the PassManager to load profiling information for a module like this: ... ModulePass *LoaderPass = createProfileLoaderPass(); PassMgr.add(LoaderPass); PassMgr.run(*M); ... I can verify that the pass was run, but how to I get to the ProfileInfo implemented by that pass? I tried ... ProfileInfo PI = LoaderPass->getAnalysis<ProfileInfo>(); ... but this does not seem to return the correct profiling information. Tha...
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)); PassMgr.run(M); ProfileIn...
2013 Sep 23
0
[LLVMdev] Cannot get Alias Analysis?
...hSCCPass. Firstly, I inherit a class AnalysisDriver from CallGraphSCCPass. Then, I implement my own runOnFunction method which tries to get alias analysis from each function. The code is shown as follows: *class AnalysisDriver : public CallGraphSCCPass {* * static char Pid;* * PassManager &passMgr;* * * *public:* * AnalysisDriver(PassManager &pmgr);* * ~AnalysisDriver();* * * * virtual void getAnalysisUsage(AnalysisUsage &AU) const {* * AU.addRequired<CallGraph>();* * AU.addRequired<AliasAnalysis>();* * AU.addPreserved<AliasAnalysis>();* * }* * * * b...
2010 Feb 26
1
[LLVMdev] Using Profile Information
...static char ID; // Class identification, replacement for typeinfo MyAna() : ModulePass(&ID) {} virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequired<ProfileInfo>(); } bool runOnModule(Module &M) { 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)); PI = &getAnalysis<Profil...
2008 Oct 27
0
[LLVMdev] endian independence
...is in LLVM, the place to start is to make the optimizers completely targetdata-independent. The best way to do this (IMO) is to change passes to use "getAnalysisToUpdate" instead of "getAnalysis/AddRequired" on TargetData. Then, change opt to only add targetdata to the passmgr if a target data string exists in the module. This would make the optimizers transparently take advantage of TD when available, but gracefully handle the cases when it isn't. -Chris
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
2008 Feb 15
2
[LLVMdev] Possible Bad Assertion in Value.cpp
Chris Lattner wrote: > On Feb 15, 2008, at 3:01 PM, John Criswell wrote: > > >>> The convention is that 'remove' unlinks the object from the IR, and >>> 'erase' does remove and deletes the result. >>> >>> If someone wants to clarify this behavior in http://llvm.org/docs/ProgrammersManual.html#common >>> , it would be nice :)
2008 Feb 15
0
[LLVMdev] Possible Bad Assertion in Value.cpp
...ally interfacing to the LeakDetector can help. >> > It is an LLVM pass, it's a debug build, and the only assertion I got > was > the one in ~Value(). > > Should there have been an earlier assertion? You load a module, run your pass (which leaks an instruction) from the passmgr, then delete the module? -Chris
2008 Feb 16
1
[LLVMdev] Possible Bad Assertion in Value.cpp
...> >> It is an LLVM pass, it's a debug build, and the only assertion I got >> was >> the one in ~Value(). >> >> Should there have been an earlier assertion? >> > > You load a module, run your pass (which leaks an instruction) from the > passmgr, then delete the module? > Yes, that's what the code was doing. -- John T. > -Chris > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmde...
2012 Jun 12
0
[LLVMdev] output -stats to file.txt
...gt;opt -stats temp.bc -o tmp.bc2 D:\ >opt -stats temp.bc -o tmp.bc2 -O3 ===-------------------------------------------------------------------------=== ... Statistics Collected ... ===-------------------------------------------------------------------------=== 1 cgscc-passmgr - Maximum CGSCCPassMgr iterations on one SCC 3 reassociate - Number of insts reassociated From: Rafael Parizi [mailto:parizi.computacao at gmail.com] Sent: Tuesday, June 12, 2012 1:27 PM To: Villmow, Micah Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] output -stats to file.txt Yes, I'v...
2007 Aug 09
0
[LLVMdev] Choosing Alias Analysis
...9;s the regalloc way, which invents > a whole new class just to register register allocators and provide an option > for picking one. But alias analysis already uses AnalysisGroup so a new class > to register alias analysis passes isn't necessary. I'm not sure what you mean. The passmgr already fully supports this. > It seems desireable to augment AnalysisGroup with the ability to provide > command-line options. Is this a good strategy or is there a better way? Command line options are already fully published by opt. llvm-gcc intentionally does not publish all of the ll...
2012 Jun 12
1
[LLVMdev] output -stats to file.txt
...; ===-------------------------------------------------------------------------=== > **** > > ... Statistics Collected ...**** > > > ===-------------------------------------------------------------------------=== > **** > > ** ** > > 1 cgscc-passmgr - Maximum CGSCCPassMgr iterations on one SCC**** > > 3 reassociate - Number of insts reassociated**** > > ** ** > > ** ** > > *From:* Rafael Parizi [mailto:parizi.computacao at gmail.com] > *Sent:* Tuesday, June 12, 2012 1:27 PM > *To:* Villmow, Micah > *Cc:* llvm...
2012 Jun 12
2
[LLVMdev] output -stats to file.txt
Yes, I've tried and it did not work On Tue, Jun 12, 2012 at 4:03 PM, Villmow, Micah <Micah.Villmow at amd.com>wrote: > Have you tried "opt -stats bitecode.bc > test.txt"?**** > > ** ** > > *From:* llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] *On > Behalf Of *Rafael Parizi > *Sent:* Tuesday, June 12, 2012 11:36 AM > *To:*
2007 Aug 09
2
[LLVMdev] Choosing Alias Analysis
On Thursday 09 August 2007 16:29, Devang Patel wrote: > On Aug 9, 2007, at 2:22 PM, David Greene wrote: > > A better question to ask is, how do I do this with llvm-gcc? My > > perusal of > > the code doesn't turn up any obvious places for options for alias > > analysis > > are registered. > > As you've figured out, not all options are exposed by
2008 Oct 27
3
[LLVMdev] endian independence
>> I'm already working on this myself. Would you be interested in having >> this work contributed back to LLVM? > > If this were to better support target independent languages, it would > be very useful. If you're just trying to *reduce* the endianness > assumptions that leak through, I don't think it's a good approach. > There is just no way to solve
2013 Jul 29
5
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...hem > are quite substantial. User-time is used for comparison. I measure the > result twice, they are basically very stable. As far as I can tell from the result, > the proposed pass-ordering is basically toward good change. > > Interesting enough, if I combine the populatePreIPOPassMgr() as the preIPO phase > (see the patch) with original populateLTOPassManager() for both IPO and postIPO, > I see significant improve to "Benchmarks/Trimaran/netbench-crc/netbench-crc" > (about 94%, 0.5665s(was) vs 0.0295s), as of I write this mail, I have not yet got chance &g...
2009 Sep 15
1
[LLVMdev] SCCIterator and unconnected graphs
Chris Lattner wrote: > On Sep 3, 2009, at 4:15 AM, Hans Vandierendonck wrote: > Hi, >> >> I am using the scc_iterator class in my code on a CallGraph, where some >> functions are not called from within the module. It seems that >> scc_iterator does not list all SCCs if the graph is not connected; only >> those nodes connected to the node pointed to by >>
2013 Jul 29
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...time is used for comparison. I measure > > the > > result twice, they are basically very stable. As far as I can tell > > from the result, > > the proposed pass-ordering is basically toward good change. > > > > Interesting enough, if I combine the populatePreIPOPassMgr() as > > the preIPO phase > > (see the patch) with original populateLTOPassManager() for both IPO > > and postIPO, > > I see significant improve to > > "Benchmarks/Trimaran/netbench-crc/netbench-crc" > > (about 94%, 0.5665s(was) vs 0.0295s), as of I wr...
2007 Aug 09
3
[LLVMdev] Choosing Alias Analysis
...gt; invents a whole new class just to register register allocators and > > provide an option for picking one. But alias analysis already uses > > AnalysisGroup so a new class to register alias analysis passes isn't > > necessary. > > I'm not sure what you mean. The passmgr already fully supports this. Regalloc doesn't use PassManager to handle its options. It uses a sort of AnalysisGroup-like scheme to provide the -regalloc=foo option. > > It seems desireable to augment AnalysisGroup with the ability to provide > > command-line options. Is this a...
2013 Jul 28
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...but more improve, few of them are quite substantial. User-time is used for comparison. I measure the result twice, they are basically very stable. As far as I can tell from the result, the proposed pass-ordering is basically toward good change. Interesting enough, if I combine the populatePreIPOPassMgr() as the preIPO phase (see the patch) with original populateLTOPassManager() for both IPO and postIPO, I see significant improve to "Benchmarks/Trimaran/netbench-crc/netbench-crc" (about 94%, 0.5665s(was) vs 0.0295s), as of I write this mail, I have not yet got chance to figure out wh...