kecheng at cecs.pdx.edu
2011-Jun-29 04:35 UTC
[LLVMdev] How to disable pass grouping(scheduling)
Hi all, Llvm can automatically group a list passes. I want to do some experiment to see the difference between grouping and non-grouping execution. Considering the following example, if I want to apply transformation A, B and C. The execution order is: A.doInitialization(); B.doInitialization(); C.doInitialization(); A.runOnFunction(); B.runOnFunction(); C.runOnFunction(); A.doInitialization(); B.doInitialization(); C.doInitialization(); Is it possible to disable the grouping? Make it execute as: A.doInitialization(); A.runOnFunction(); A.doInitialization(); B.doInitialization(); B.runOnFunction(); B.doInitialization(); C.doInitialization(); C.runOnFunction(); C.doInitialization(); Thanks, Kecheng
On 6/28/11 11:35 PM, kecheng at cecs.pdx.edu wrote:> Hi all, > > Llvm can automatically group a list passes. I want to do some > experiment to see the difference between grouping and non-grouping > execution. > Considering the following example, if I want to apply transformation > A, B and C. The execution order is: > A.doInitialization(); > B.doInitialization(); > C.doInitialization(); > A.runOnFunction(); > B.runOnFunction(); > C.runOnFunction(); > A.doInitialization(); > B.doInitialization(); > C.doInitialization(); > > Is it possible to disable the grouping? Make it execute as: > > A.doInitialization(); > A.runOnFunction(); > A.doInitialization(); > B.doInitialization(); > B.runOnFunction(); > B.doInitialization(); > C.doInitialization(); > C.runOnFunction(); > C.doInitialization(); > > Thanks,You can run opt three times (one for each pass A, B, and C), piping them together so that the output of one is the input to the next. -- John T.> Kecheng > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
kecheng at cecs.pdx.edu
2011-Jun-29 16:33 UTC
[LLVMdev] How to disable pass grouping(scheduling)
Thanks John, this is an easy way to achieve this goal, but I'm wondering if this is the only way? I have around 100 passes. Quoting John Criswell <criswell at illinois.edu>:> On 6/28/11 11:35 PM, kecheng at cecs.pdx.edu wrote: >> Hi all, >> >> Llvm can automatically group a list passes. I want to do some >> experiment to see the difference between grouping and non-grouping >> execution. >> Considering the following example, if I want to apply transformation >> A, B and C. The execution order is: >> A.doInitialization(); >> B.doInitialization(); >> C.doInitialization(); >> A.runOnFunction(); >> B.runOnFunction(); >> C.runOnFunction(); >> A.doInitialization(); >> B.doInitialization(); >> C.doInitialization(); >> >> Is it possible to disable the grouping? Make it execute as: >> >> A.doInitialization(); >> A.runOnFunction(); >> A.doInitialization(); >> B.doInitialization(); >> B.runOnFunction(); >> B.doInitialization(); >> C.doInitialization(); >> C.runOnFunction(); >> C.doInitialization(); >> >> Thanks, > > You can run opt three times (one for each pass A, B, and C), piping > them together so that the output of one is the input to the next. > > -- John T. > >> Kecheng >> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >
Possibly Parallel Threads
- [LLVMdev] How to disable pass grouping(scheduling)
- [LLVMdev] How to disable pass grouping(scheduling)
- [LLVMdev] How to get the variable mapping between the sourceandllvm bytecode
- [LLVMdev] How to get the variable mapping between the source andllvm bytecode
- [LLVMdev] pass statistic