[cfe-dev] [LLVMdev] [RFC] Encoding Compile Flags into the IR

Jim Grosbach grosbach at apple.com
Mon Apr 30 18:11:49 PDT 2012


On Apr 30, 2012, at 4:12 PM, Bill Wendling wrote:

> On Apr 30, 2012, at 1:00 PM, dag at cray.com wrote:
> 
>> Bill Wendling <wendling at apple.com> writes:
>> 
>>> Link-Time Optimization has a problem. We need to preserve some of the
>>> flags with which the modules were compiled so that the semantics of
>>> the resulting program are correct. For example, a module compiled with
>>> `-msoft-float' should use library calls for floating point. And that's
>>> only the tip of the proverbial iceberg.
>> 
>> This is an important missing feature.
>> 
>>> - Named metadata would be used for those options which affect code
>>> generation for the functions, but which doesn't prevent two modules
>>> from being merged together. For example, `-fomit-frame-pointer'
>>> applies to individual functions, but it doesn't prevent a module
>>> compiled with `-fno-omit-frame-pointer' from being merged with one
>>> compiled with `-fomit-frame-pointer'. We would use a named metadata
>>> flag:
>> 
>> Doesn't this violate the "no semantics" requirement of metadata?  What
>> happens if the metadata gets dropped?
>> 
> Named metadata cannot be stripped by normal methods.
> 

Do we elsewhere use named metadata for any information that is required for correctness?

> -bw
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the cfe-dev mailing list