John Reagan via llvm-dev
2018-Feb-14 17:28 UTC
[llvm-dev] Adding comments to 'MachineInstruction'
We'll be doing something similar for our OpenVMS port. Right now I'm using "AsmStreamer->GetCommentOS()" and writing to the stream at the assembler level but that gets aligned on a right-side column (the column is hardcoded) and you have to be in verbose mode. So if you come up with something or have a quick design, post it so perhaps we can leverage each other's work. Our prior code generator provided an "annotations" package that would let such comments strings get emitted either as stand-along lines in the machine output or as part of some "end of line" comments. John On 2/5/18 3:00 PM, via llvm-dev wrote:> Message: 6 > Date: Mon, 5 Feb 2018 19:31:58 -0000 > From: "Martin J. O'Riordan via llvm-dev" <llvm-dev at lists.llvm.org> > To: <mbraun at apple.com> > Cc: 'LLVM Developers' <llvm-dev at lists.llvm.org> > Subject: Re: [llvm-dev] Adding comments to 'MachineInstruction' > Message-ID: <006701d39eb7$fda8ac90$f8fa05b0$@theheart.ie> > Content-Type: text/plain; charset="utf-8" > > Thanks Matthias, > > > > It looks like the comments that do exist are emitted are pre-cooked and depend on some other attribute of the MI or the context of the MI. Curiously enough, a couple of years ago I had thought about this, but I wanted to have different comments used for instructions selected by the TableGen pattern matcher versus those crafted directly in the C++ code which would be very useful when debugging obscure code-generation issues. > > > > All the best, > > > > MartinO > > > > From: mbraun at apple.com [mailto:mbraun at apple.com] > Sent: 05 February 2018 17:08 > To: Martin J. O'Riordan <MartinO at theheart.ie> > Cc: LLVM Developers <llvm-dev at lists.llvm.org> > Subject: Re: [llvm-dev] Adding comments to 'MachineInstruction' > > > > There is no generic mechanism as far as I know. You can look at AsmPrinter.cpp/emitComments() to see what situations trigger comments at the moment. > > > > - Matthias > > > > > > On Feb 3, 2018, at 4:40 AM, Martin J. O'Riordan via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > wrote: > > > > When I am constructing sequences of instructions during custom lowering, I would like to be able to also add a comment that appears in the generated assembly with ‘-S -fverbose-asm’. There is a large set of ‘add*’ functions to attach additional information to the MI, but I don’t see one for adding comments. > > > > Is there a method I can call to attach an arbitrary string (‘StringRef’, ‘const char*’, ‘Twine’) to an MI with ‘BuildMI’ or after? > > > > Thanks, > > > > MartinO > > > > _______________________________________________ > LLVM Developers mailing list > <mailto:llvm-dev at lists.llvm.org> llvm-dev at lists.llvm.org > <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180214/519def50/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180214/519def50/attachment.sig>
Martin J. O'Riordan via llvm-dev
2018-Feb-17 21:53 UTC
[llvm-dev] Adding comments to 'MachineInstruction'
Hi John, Actually, I haven’t tried to resolve this. My original question was apreamble to deciding whether or not I needed to devise a solution, but I have not yet started on a solution. My feeling is that it would be useful to add an MI annotation for such comments, and perhaps introduce something to TableGen analogous to ‘${:comment}’ like: ${:verbose-comment} that could allow the TD patterns to provide a comment independent of the BuildMI interface, with the BuildMI interface taking precedence. The 'GetCommentOS' interface is too crude for what I want, and also does not allow me to attach comments when I am building an MI tree. If I do implement something, I would be quite happy to share it. Thanks, MartinO From: John Reagan [mailto:john.reagan at vmssoftware.com] Sent: 14 February 2018 17:28 To: llvm-dev at lists.llvm.org; MartinO at theheart.ie; mbraun at apple.com Subject: Re: [llvm-dev] Adding comments to 'MachineInstruction' We'll be doing something similar for our OpenVMS port. Right now I'm using "AsmStreamer->GetCommentOS()" and writing to the stream at the assembler level but that gets aligned on a right-side column (the column is hardcoded) and you have to be in verbose mode. So if you come up with something or have a quick design, post it so perhaps we can leverage each other's work. Our prior code generator provided an "annotations" package that would let such comments strings get emitted either as stand-along lines in the machine output or as part of some "end of line" comments. John On 2/5/18 3:00 PM, via llvm-dev wrote: Message: 6 Date: Mon, 5 Feb 2018 19:31:58 -0000 From: "Martin J. O'Riordan via llvm-dev" <llvm-dev at lists.llvm.org> To: <mbraun at apple.com> Cc: 'LLVM Developers' <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] Adding comments to 'MachineInstruction' Message-ID: <006701d39eb7$fda8ac90$f8fa05b0$@theheart.ie> Content-Type: text/plain; charset="utf-8" Thanks Matthias, It looks like the comments that do exist are emitted are pre-cooked and depend on some other attribute of the MI or the context of the MI. Curiously enough, a couple of years ago I had thought about this, but I wanted to have different comments used for instructions selected by the TableGen pattern matcher versus those crafted directly in the C++ code which would be very useful when debugging obscure code-generation issues. All the best, MartinO From: mbraun at apple.com [mailto:mbraun at apple.com] Sent: 05 February 2018 17:08 To: Martin J. O'Riordan <MartinO at theheart.ie> Cc: LLVM Developers <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] Adding comments to 'MachineInstruction' There is no generic mechanism as far as I know. You can look at AsmPrinter.cpp/emitComments() to see what situations trigger comments at the moment. - Matthias On Feb 3, 2018, at 4:40 AM, Martin J. O'Riordan via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > wrote: When I am constructing sequences of instructions during custom lowering, I would like to be able to also add a comment that appears in the generated assembly with ‘-S -fverbose-asm’. There is a large set of ‘add*’ functions to attach additional information to the MI, but I don’t see one for adding comments. Is there a method I can call to attach an arbitrary string (‘StringRef’, ‘const char*’, ‘Twine’) to an MI with ‘BuildMI’ or after? Thanks, MartinO _______________________________________________ LLVM Developers mailing list <mailto:llvm-dev at lists.llvm.org> llvm-dev at lists.llvm.org <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev