Julien Lerouge
2009-Feb-27 02:01 UTC
[LLVMdev] AnalysisUsage & Call Graph SCC Pass Manager
Hello, I have the following sequence of passes (using --debug-pass=Structure): ... ModulePass Manager FunctionPass Manager Preliminary module verification Dominator Tree Construction Module Verifier MyModulePass0 MyAnalysis Basic CallGraph Construction MyModulePass1 MyAnalysis MyModulePass2 Basic CallGraph Construction Call Graph SCC Pass Manager MyCallGraphSCCPass MyModulePass3 ... I have the following analysis usages: MyModulePass0 does not require anything and does not preserve anything. MyModulePass1 requires MyAnalysis & Callgraph but does not preserve them. MyModulePass2 requires MyAnalysis and preserves it. MyCallGraphSCCPass requires MyAnalysis but does not preserve it. MyModulePass3 requires MyAnalysis and preserves it. I am expecting MyAnalysis to be re-scheduled between MyCallGraphSCCPass and MyModulePass3 but it's not happening. If I set MyModulePass3 to not preserve MyAnalysis, then I see MyAnalysis re-scheduled after MyModulePass3. It seems like the fact that MyAnalysis is not preserved by MyCallGraphSCCPass is somehow not propagated outside the Call Graph SCC Pass Manager. Is there something wrong with that sequence ? Thanks, Julien -- Julien Lerouge PGP Key Id: 0xB1964A62 PGP Fingerprint: 392D 4BAD DB8B CE7F 4E5F FA3C 62DB 4AA7 B196 4A62 PGP Public Key from: keyserver.pgp.com
On Feb 26, 2009, at 6:01 PM, Julien Lerouge wrote:> Hello, > > I have the following sequence of passes (using --debug- > pass=Structure): > > ... > ModulePass Manager > FunctionPass Manager > Preliminary module verification > Dominator Tree Construction > Module Verifier > MyModulePass0 > MyAnalysis > Basic CallGraph Construction > MyModulePass1 > MyAnalysis > MyModulePass2 > Basic CallGraph Construction > Call Graph SCC Pass Manager > MyCallGraphSCCPass > MyModulePass3 > ... > > I have the following analysis usages: > > MyModulePass0 does not require anything and does not preserve > anything. > MyModulePass1 requires MyAnalysis & Callgraph but does not preserve > them. > MyModulePass2 requires MyAnalysis and preserves it. > MyCallGraphSCCPass requires MyAnalysis but does not preserve it. > MyModulePass3 requires MyAnalysis and preserves it. > > I am expecting MyAnalysis to be re-scheduled between > MyCallGraphSCCPass and > MyModulePass3 but it's not happening. > > If I set MyModulePass3 to not preserve MyAnalysis, then I see > MyAnalysis > re-scheduled after MyModulePass3. > > It seems like the fact that MyAnalysis is not preserved by > MyCallGraphSCCPass > is somehow not propagated outside the Call Graph SCC Pass Manager. > > Is there something wrong with that sequence ?It is a bug. CGPassManager is incorrectly claiming that it is preserving all analysis info. - Devang> > > Thanks, > Julien > > -- > Julien Lerouge > PGP Key Id: 0xB1964A62 > PGP Fingerprint: 392D 4BAD DB8B CE7F 4E5F FA3C 62DB 4AA7 B196 4A62 > PGP Public Key from: keyserver.pgp.com > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev- Devang
Julien Lerouge
2009-Mar-03 19:55 UTC
[LLVMdev] AnalysisUsage & Call Graph SCC Pass Manager
On Tue, Mar 03, 2009 at 11:13:22AM -0800, Devang Patel wrote:> It is a bug. CGPassManager is incorrectly claiming that it is > preserving all analysis info. > - > DevangThanks, I filed http://llvm.org/bugs/show_bug.cgi?id=3703 with a simple test case. Julien -- Julien Lerouge PGP Key Id: 0xB1964A62 PGP Fingerprint: 392D 4BAD DB8B CE7F 4E5F FA3C 62DB 4AA7 B196 4A62 PGP Public Key from: keyserver.pgp.com
Maybe Matching Threads
- [LLVMdev] AnalysisUsage & Call Graph SCC Pass Manager
- Some questions about phase ordering in OPT and LLC
- Some questions about phase ordering in OPT and LLC
- [LLVMdev] More llvm-gcc build breakage
- [LLVMdev] Problem in External/SPEC/CFP2000/177.mesa/Makefile ?