[LLVMdev] Register Machine Pass
Ryan Taylor
ryta1203 at gmail.com
Mon Jul 14 10:27:34 PDT 2014
Rafael,
Ok. Looks like addPreRegAlloc is a valid back-end stage so that should be
fine. Also, I'm curious because none of the documentation/code samples I've
seen register machine passes this way. For example, HexagonHardwareLoops.
Thanks.
On Mon, Jul 14, 2014 at 1:21 PM, Rafael Auler <rafaelauler at gmail.com> wrote:
> Use llc -debug-pass=Structure to check if your pass is included in the
> back-end pipeline. You should register your pass using the same idiom to
> register a regular IR pass. Like this:
> static RegisterPass<MyMachinePass> X("mypass", "My Machine Pass");
>
> Check http://llvm.org/doxygen/classllvm_1_1TargetPassConfig.html to get
> an overview of the possible back-end stages where you can insert your pass
> via the addPrexxx() interface.
>
> Good luck,
> Rafael
>
>
> On Mon, Jul 14, 2014 at 2:07 PM, Justin Holewinski <jholewinski at nvidia.com
> > wrote:
>
>> On Mon, 2014-07-14 at 10:00 -0700, Ryan Taylor wrote:
>> > It's not being executed. I'm both trying to print via outs() and add
>> > info via STATISTIC, neither is occurring.
>>
>> Did you try running in a debugger to make sure addPass() is called? Or
>> if a debugger is unavailable, putting an outs() statement with the
>> addPass() call? That would at least rule out addPass() not being
>> called.
>>
>> >
>> > On Mon, Jul 14, 2014 at 12:22 PM, Justin Holewinski
>> > <jholewinski at nvidia.com> wrote:
>> > On Mon, 2014-07-14 at 08:31 -0700, Ryan Taylor wrote:
>> > > Where is the documentation about registering a machine pass?
>> > I'm
>> > > unable to find it.
>> > >
>> > >
>> > > I have built a machine function pass similar to the one
>> > found in
>> > > HexagonHardwareLoops.cpp. So I have generated a machine
>> > pass.cpp file,
>> > > modified 'Target'.h and 'Target'TargetMachine.cpp (to add
>> > pass via
>> > > addPass() in the addPreRegAlloc()). All this builds/compiles
>> > fine.
>> > >
>> > >
>> > > When running llc the pass does not get executed.
>> > >
>> > >
>> > > I seem to be missing some steps? Potentially registration of
>> > the
>> > > machine pass?
>> >
>> >
>> > That should be all you need to do. Are you running in a
>> > debugger and
>> > making sure your added addPass() call is actually being
>> > executed?
>> > >
>> > >
>> > > Thanks.
>> >
>> >
>> -----------------------------------------------------------------------------------
>> > This email message is for the sole use of the intended
>> > recipient(s) and may contain
>> > confidential information. Any unauthorized review, use,
>> > disclosure or distribution
>> > is prohibited. If you are not the intended recipient, please
>> > contact the sender by
>> > reply email and destroy all copies of the original message.
>> >
>> -----------------------------------------------------------------------------------
>> >
>> >
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140714/2802f5c4/attachment.html>
More information about the llvm-dev
mailing list