[llvm] r185484 - Debug Info: use module flag to set up Dwarf version.

Manman Ren mren at apple.com
Mon Jul 8 17:13:56 PDT 2013


On Jul 8, 2013, at 5:00 PM, Eric Christopher wrote:

> On Mon, Jul 8, 2013 at 4:33 PM, Manman Ren <mren at apple.com> wrote:
>> 
>> On Jul 8, 2013, at 4:14 PM, Eric Christopher wrote:
>> 
>>> I'm not sure what you mean here?
>>> 
>>> -eric
>>> 
>>> On Mon, Jul 8, 2013 at 4:07 PM, Manman Ren <mren at apple.com> wrote:
>>>> 
>>>> 
>>>> Adding a ModFlagBehavior Min or Max only makes sense for flag that is a ConstantInt.
>>>> Is the behavior general enough?
>> 
>> This is referring to the request of using Min or Max when merging two modules with different dwarf versions.
>> Since the type of a module flag is "Value*" and "Min or Max" only makes sense when the Value is a ConstantInt,
>> I was asking whether adding a behavior "Min or Max" is general enough.
>> 
>> BTW, have we decided whether we should use Min or Max? It seems the discussion is still ongoing.
>> 
> 
> The discussion is going something like this:
> 
> a) Max: Probably makes the most users happiest when they've got some
> weird library/target that specifies -gdwarf-2 (or something) on the
> command line in a legacy mode.
> b) Min: Handles the problem of "no, I really meant 2 for those
> files/compile units/libraries" because there's some bug I can't work
> around and now I have no recourse during LTO.
> c) Compile unit: Solves the above problem with Min by making it per
> CU, but now we've got different set of debug versions mixed into a
> final compilation (involving a little more complexity during compile
> time) when a single version works in the majority of cases and could
> probably even be max.

Thanks for the great summary. It all makes sense.
For now, I am going to add a helper function in Module to query a module flag with given key.

Manman
> 
> Mostly involves how much annoyance we've got in all of these situations.
> 
> -eric
> 
>> Manman
>> 
>>>> 
>>>> Manman
>> 




More information about the llvm-commits mailing list