[LLVMdev] [PATCH] Support asm comment output
clattner at apple.com
Mon Jul 13 09:40:23 PDT 2009
On Jul 13, 2009, at 9:31 AM, David Greene wrote:
>> A couple of things are important to discuss:
>> + dynamic_cast<formatted_raw_ostream &>(O) << Comment(*c);
>> We're trying to eliminate rtti, please don't add new uses of it.
>> Switching all of the asmprinter to statically use
>> formatted_raw_ostream would be appropriate.
> I was attempting to reduce the number of files affected, but if you
> want this change I'll go ahead and do it.
Makes sense, thanks. Please do it as a separate patch from the other
changes though since it will be large and mechanical.
>> Before we settle on whether this is the right thing to do or not, can
>> you talk about what comments you plan to add to these instructions?
>> Comments indicating what a memoperand are (for example) don't need to
>> be explicitly store in the machineinstr, they can be synthesized from
>> the MachineOperand directly.
> Some things we've used comments for:
> - Tag instructons with source line information (customers really
> want this).
Right, that would be nice. This should be synthesizable from the
DebugLoc on the instruction in the asm printer, no need to redundantly
encode it into the comment field.
> - Tag instructions as register spills or reloads.
I'm not sure what this means exactly, but would it be sufficient for
the asmprinter to use isLoadFromStackSlot and print this if the FI is
a spill slot?
> - Tag instructions with an ID of the tblgen pattern that generated
> them. This
> is super useful for debugging.
this would also be really nice :). This can be generated by the asm
printer as well.
> - Tag instructions as top-of-loop, with nesting information (we use
> to do some static analysis on asm files).
What part of the code generator would identify this? It seems that
the asmprinter could do this, but it is less obvious than the former
ones. It also seems that this is really a basic block property, not
an instruction property.
If these are the planned uses of the comments, it would be nice try to
not add a per-machine-instr list of comments. Instead, the asmprinter
could synthesize the list as it processes each instruction. This
makes the list of comments transient instead of persistent in the
machineinstrs. Does that sound reasonable to you?
More information about the llvm-dev