On Tue, Oct 1, 2013 at 3:42 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:> You are calling the option -auto-profile in some places and > -fauto-profile in others. Maybe it is just a typo?In opt, the option is named '-auto-profile' when I instantiate the pass: INITIALIZE_PASS(AutoProfile, "auto-profile", "Auto Profile loader", false, false) Do I need to name it fauto-profile as well? I'm also not sure how to schedule the pass at a specific spot in the pass manager. I've looked around for documentation on adding flags, but all I found was http://llvm.org/docs/WritingAnLLVMPass.html#pass-registration which does not seem to discuss this. Diego.
Rafael Espíndola
2013-Oct-01 19:53 UTC
[LLVMdev] RFH: passing options from clang down to opt
The option handling in clang in fairly different from opt. The comment about the mixed name was just a guess as to why you don't see the driver passing it down to -cc1. Once that is working, you will probably need to: * Patch ParseCodeGenArgs to record the option * Patch EmitAssemblyHelper::CreatePasses to set the option to enable the pass in the pass manager (assuming that is the effect you want). On 1 October 2013 15:48, Diego Novillo <dnovillo at google.com> wrote:> On Tue, Oct 1, 2013 at 3:42 PM, Rafael Espíndola > <rafael.espindola at gmail.com> wrote: >> You are calling the option -auto-profile in some places and >> -fauto-profile in others. Maybe it is just a typo? > > In opt, the option is named '-auto-profile' when I instantiate the pass: > > INITIALIZE_PASS(AutoProfile, "auto-profile", "Auto Profile loader", false, > false) > > Do I need to name it fauto-profile as well? > > I'm also not sure how to schedule the pass at a specific spot in the > pass manager. I've looked around for documentation on adding flags, > but all I found was > http://llvm.org/docs/WritingAnLLVMPass.html#pass-registration which > does not seem to discuss this. > > > Diego.
On Tue, Oct 1, 2013 at 3:53 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:> The option handling in clang in fairly different from opt. The comment > about the mixed name was just a guess as to why you don't see the > driver passing it down to -cc1.Clang::ConstructJob is ~2k lines long. I was putting the handling of this option too far down. I moved it up and it's now being passed. Not sure what order needs to be kept in this function, however.> Once that is working, you will probably need to: > > * Patch ParseCodeGenArgs to record the option > * Patch EmitAssemblyHelper::CreatePasses to set the option to enable > the pass in the pass manager (assuming that is the effect you want).Thanks. That was my disconnect. I was confusing 'opt' with clang's backend. The attached patch does what I want. Does it look like it's in the right direction? Thanks. Diego. -------------- next part -------------- A non-text attachment was scrubbed... Name: 00.diff Type: application/octet-stream Size: 3804 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131001/66c559ac/attachment.obj>
Possibly Parallel Threads
- [LLVMdev] RFH: passing options from clang down to opt
- [LLVMdev] RFH: passing options from clang down to opt
- [LLVMdev] RFH: passing options from clang down to opt
- [LLVMdev] RFH: passing options from clang down to opt
- [LLVMdev] RFH: passing options from clang down to opt