Seb
2011-Dec-07 10:07 UTC
[LLVMdev] Adding option to LLVM opt to disable a specific pass from command line
Hi all, I would like to add an option for LLVM 'opt' to disable a specific optimization pass from command line. The idea is to have something like: opt -O2 -disable-pass=[passname,...] Do you think it could be useful ? How should I proceed to develop it and commit changes to LLVM trunk ? Thanks for your advices and recommandations. Best Regards Seb -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111207/6608b7ff/attachment.html>
Devang Patel
2011-Dec-07 17:51 UTC
[LLVMdev] Adding option to LLVM opt to disable a specific pass from command line
Hello, On Dec 7, 2011, at 2:07 AM, Seb wrote:> Hi all, > > I would like to add an option for LLVM 'opt' to disable a specific optimization pass from command line. > > The idea is to have something like: > > opt -O2 -disable-pass=[passname,...] > > Do you think it could be useful ?I have few questions : - Why (and when) would you us this ? - Some of the passes are executed multiple times, how would you select which invocation to disable ? Or would you disable all invocation of such passes ? - Some passes are required by another passes. In such cases PassManager will insist on running them, which may conflict with the user request from command line. Who wins? - Why not update the list passes run as part of -O2 (use --debug-pass=Arguments to get it) to remove selected passes and run opt <my list of passes> ... ?> How should I proceed to develop it and commit changes to LLVM trunk ? > Thanks for your advices and recommandations. > Best Regards > Seb- Devang
Seb
2011-Dec-08 09:20 UTC
[LLVMdev] Adding option to LLVM opt to disable a specific pass from command line
Hello Devang, answers are interleaved 2011/12/7 Devang Patel <dpatel at apple.com>> Hello, > > On Dec 7, 2011, at 2:07 AM, Seb wrote: > > > Hi all, > > > > I would like to add an option for LLVM 'opt' to disable a specific > optimization pass from command line. > > > > The idea is to have something like: > > > > opt -O2 -disable-pass=[passname,...] > > > > Do you think it could be useful ? > > I have few questions : > > - Why (and when) would you us this ? >I woudl use this to selectively disable passes in opt that are either redundant with passes performed by the fron-end I'm working on our exhibit a BUG in opt. For instance, I figured out that loop-idiom pass has a BUG in LLVM 2.9, a llvm.memcpy is generated for an overlapping memory region and then x86 backend reorder loads/store thus generating a BUG. So my use would be to disable all loop-idiom invocations.> - Some of the passes are executed multiple times, how would you select > which invocation to disable ? Or would you disable all invocation of such > passes ? >By default I guess I would like to disable all invocation of such passes. We could also imagine to have an option -disable-pass=[pass_name:inv_num, ...] to deal with multiple invocation. - Some passes are required by another passes. In such cases PassManager> will insist on running them, which may conflict with the user request from > command line. Who wins? >How to I know that a pass is required by another ? Let's say give priority to pass manager and issue a warning like like 'option -disable-pass=<pass_name> ignored because required by pass <other_pass>.' - Why not update the list passes run as part of -O2 (use> --debug-pass=Arguments to get it) to remove selected passes and run opt <my > list of passes> ... ? > >I also thought about this but it can lead to long command lines and source of errors.> > How should I proceed to develop it and commit changes to LLVM trunk ? > > Thanks for your advices and recommandations. > > Best Regards > > Seb > > > - > Devang > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111208/8afa6dbc/attachment.html>
Possibly Parallel Threads
- [LLVMdev] Adding option to LLVM opt to disable a specific pass from command line
- [LLVMdev] Adding option to LLVM opt to disable a specific pass from command line
- [LLVMdev] questions about getAnalysisUsage
- [LLVMdev] About adding a pass into llvm
- Passing llvm option -mem2reg to clang