[LLVMdev] Command line options being put in Target backend libraries

Eric Christopher echristo at gmail.com
Fri Aug 23 15:33:56 PDT 2013


On Fri, Aug 23, 2013 at 12:27 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> ----- Original Message -----
>> Hi,
>>
>> Thanks for your reply, Sean.
>>
>> I think the reason users arent complaining about this is because,
>> users
>> dont link with target libraries.
>>
>> This is going to be a major cleanup too as there have been a lot of
>> options defined across all the targets.
>>
>> A simple find/grep shows you a total of 98 options defined in
>> libraries.
>
> I think that we'd need to do a more-careful audit to see how many of these options should really be user accessible. Some of them are there only to enable experimental features or assist target developers with debugging. Nevertheless, we may want to have a more flexible context-based system even for those options.
>

I think we should look into removing them eventually. Structs of flags
or something being passed into the backend might work. Some other
configury mechanism. The cl::opt machinery is great, but quite a bit
abused. I do this myself so I'm not going to throw stones in my glass
house.

-eric

>  -Hal
>
>>
>> Thanks
>>
>> Shankar Easwaran
>>
>> On 8/23/2013 1:41 PM, Sean Silva wrote:
>> > It is definitely an issue, since the command line options are
>> > basically
>> > globals, which fundamentally goes against LLVM's library-based
>> > design.
>> >
>> > -- Sean Silva
>> >
>> >
>> > On Fri, Jul 26, 2013 at 7:03 PM, Shankar Easwaran
>> > <shankare at codeaurora.org>wrote:
>> >
>> >> Hi,
>> >>
>> >> I see a lot of command line options being set in Target backend
>> >> libraries.
>> >> The problem with that is if a third party tool links with Target
>> >> libraries
>> >> and has a command line option that needs to be processed, the
>> >> option in the
>> >> Target libraries will get overridden.
>> >>
>> >> $ cd llvm/lib/Target
>> >> $ grep 'cl::' */*.cpp --> produces lot of such occurences.
>> >>
>> >> For example :- libLLVMX86CodeGen.a contains
>> >> libLLVMX86CodeGen.a:**X86RegisterInfo.cpp.o:**0000000000000080 b
>> >> EnableBasePointer
>> >>
>> >> I think those command line options would need to be moved to the
>> >> drivers
>> >> that are using them, Isnt it ?
>> >>
>> >> Am I mistaken ?
>> >>
>> >> Thanks
>> >>
>> >> Shankar Easwaran
>> >>
>> >> --
>> >> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
>> >> hosted
>> >> by the Linux Foundation
>> >>
>> >> ______________________________**_________________
>> >> LLVM Developers mailing list
>> >> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> >> http://lists.cs.uiuc.edu/**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>
>> >>
>>
>>
>> --
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
>> hosted by the Linux Foundation
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
> --
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory
> _______________________________________________
> 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 llvm-dev mailing list