[LLVMdev] [proposal] Extensible IR metadata

Chris Lattner clattner at apple.com
Fri Sep 11 17:22:51 PDT 2009


On Sep 11, 2009, at 3:23 PM, David Greene wrote:
> I have a few questions and comments about Chris' initial proposal as  
> well.
>
> - I don't like the separation between "built-in" metadata and  
> "extended"
>  metadata.  Why not make all metadata use the RegisterMDKind  
> interface and
>  just have the LLVM libraries do it automatically for the "built-in"  
> stuff?
>  Having a separate namespace of enums is going to get confusing.   
> Practically
>  every day I curse the fact that "int" is different than "MyInt" in C 
> ++.  :-/

"builtin" metadata would also be registered, the only magic would be  
that the encoding would be smaller in the IR.

> - Defaulting alignment to 1 when metatadata is not present is going  
> to be a
>  huge performance hit on many architectures.  I hope we can find a  
> better
>  solution.  I'm not sure what it is yet because we have to maintain  
> safety.
>  I just fear a Pass inadvertantly dropping metadata and really  
> screwing
>  things up.

I don't expect metadata to be commonly stripped.  This could be just  
as bad a perf problem for other things like TBAA or high level type  
information for a dynamic language.  I think it is important that the  
IR is possible to reason about even in uncommon cases though.

-Chris



More information about the llvm-dev mailing list