[llvm-commits] [llvm] r133286 - in /llvm/trunk: include/llvm/MC/MCStreamer.h include/llvm/Target/TargetRegistry.h lib/CodeGen/LLVMTargetMachine.cpp lib/MC/MCAsmStreamer.cpp lib/Target/PTX/PTXMCAsmStreamer.cpp lib/Target/PTX/PTXTargetMachine.cpp tools/llvm-mc/llvm-mc.cpp

Chris Lattner clattner at apple.com
Fri Jun 17 21:48:47 PDT 2011


On Jun 17, 2011, at 1:55 PM, Bill Wendling wrote:
>>> The LSDA is a bit difficult for the non-initiated to read. Even with comments,
>>> it's not always clear what's going on. This wraps the ASM streamer in a class
>>> that retains the LSDA and then emits a human-readable description of what's
>>> going on in it.
>> 
>> Spiffy.  Why is this a new set of flags?  Can't this just be tied to verbose asm?  I don't see any reason to have -decode-mc-lsda/-decode-lsda or to pass it down through the APIs as a bool.
> 
> I can do that. I did it this way to give people the option of not having it emitted when they don't want it. But having it default to "on" for -asm-verbose works for me too.

Please do, and remove the extra bools and flags.  People either want verbose asm or not, we don't want lots of flags and options.

> 
>> Also, why is this implemented by subclassing MCAsmStreamer?  Can't the code generator just emit this as verbose asm comments instead of reconstructing it?
> 
> 
> I actually do some of that now (see below). It's not the most readable thing in the world, but could be made a bit better. One major benefit of making it a subclass of MCAsmStreamer, however, is that you can run it on a .s file which doesn't have verbose comments in them. I would really like to maintain that ability.

Why is this important?  Who is it important for?

-Chris

> 
> -bw
> 
>        .byte   255                     ## @LPStart Encoding = omit
>        .byte   155                     ## @TType Encoding = indirect pcrel sdata4
>        .byte   220                     ## @TType base offset
>        .space  1
>        .byte   3                       ## Call site Encoding = udata4
>        .byte   78                      ## Call site table length
> Lset0 = Ltmp7-Leh_func_begin1           ## Region start
>        .long   Lset0
> Lset1 = Ltmp8-Ltmp7                     ## Region length
>        .long   Lset1
> Lset2 = Ltmp9-Leh_func_begin1           ## Landing pad
>        .long   Lset2
>        .byte   3                       ## Action
> ...
>                                        ## -- Action Record Table --
>                                        ## Action Record
>        .byte   2                       ##   TypeInfo index
>        .byte   0                       ##   Next action
>                                        ## Action Record
>        .byte   1                       ##   TypeInfo index
>        .byte   125                     ##   Next action
>                                        ## -- Catch TypeInfos --
>        .long   __ZTIPKc at GOTPCREL+4     ## TypeInfo
>        .long   __ZTIi at GOTPCREL+4       ## TypeInfo
> 




More information about the llvm-commits mailing list