[LLVMdev] Getting rid of tabs in LLVM's assembly output?

Eli Bendersky eliben at google.com
Tue Dec 18 19:14:09 PST 2012

On Tue, Dec 18, 2012 at 3:21 PM, Owen Anderson <resistor at mac.com> wrote:
> On Dec 18, 2012, at 2:07 PM, Chandler Carruth <chandlerc at google.com> wrote:
> On Tue, Dec 18, 2012 at 1:13 PM, Eli Bendersky <eliben at google.com> wrote:
>> On Tue, Dec 18, 2012 at 1:09 PM, Craig Topper <craig.topper at gmail.com>
>> wrote:
>> > But its pretty easy to change the tabstop within the editor to make it
>> > readable.
>> >
>> True, in this case... The output is not trying to be intelligent in
>> the general case, just spitting out tabs. I agree that to replace
>> this, however, it would be best to look at some smart column-padded
>> formatting than use a constant tab -> N spaces replacement. I'll see
>> if this is something I can get to.
> Maybe it's naive, but I would expect it to be easy for each backend to
> expose a constant N which is the length of the longest mnemonic, and then
> for the printer to pad to N+1 or N+2….
> That would probably work for X86, but other targets (ARM in particular)
> often have operands which are printed/parsed as suffices on the mnemonic
> itself.  Because of these, the backend does not statically know the longest
> potential string-of-stuff-before-the-tab.

Even if in some freak cases the formatting isn't perfect, it can still
be a massive improvement if the pad-to-column formatter is used in
tandem with Chandler's suggestion. Don't forget that the current
situation is to just emit a single tab after each instruction, so even
relatively simple cases get formatted badly.


More information about the llvm-dev mailing list