[LLVMdev] [patch] CodeEmitter Memory Foot Reduction

Daniel Dunbar daniel at zuster.org
Sun Jul 19 23:15:30 PDT 2009


On Thu, Jul 16, 2009 at 11:43 AM, Aaron
Gray<aaronngray.lists at googlemail.com> wrote:
> 2009/7/16 Daniel Dunbar <daniel at zuster.org>
>>
>> On Thu, Jul 16, 2009 at 10:04 AM, Aaron
>> Gray<aaronngray.lists at googlemail.com> wrote:
>> > 2009/7/16 Chris Lattner <clattner at apple.com>
>> >> Whats Daniels approach, does he have any online documentation or code,
>> >> do
>> >> you have an email address so I may talk to him.
>> >>
>> >> Take a look at how asmprinters work
>> >> in include/llvm/Target/TargetRegistry.h .  If you have specific
>> >> questions,
>> >> llvmdev is a great place to ask them.
>> >
>> >
>> >
>> > Okay I will take a look.
>>
>> I don't have any documentation yet other than the doxygen comments
>> (some will be added at least before 2.6), but the basic idea is that
>> there is one global Target instance per target, and targets register
>> optional components via initialization functions (which can be called
>> via static constructors, or explicitly by the client).
>>
>> Clients of the targets simple request a Target, which will always be
>> linked in, and look to see if the optional functionality is present
>> (i.e. was linked in).
>
>
> Okay so features must be linked in rather than availiable from dynamicly
> linked libraries.

Library features do not have to be linked in, however that is the
mechanism we want to use for the core LLVM libraries. The registry
mechanism itself doesn't care whether it is called via an
initialization function called directly, or a static constructor (etc)
run during the loading of a dynamic library.

 - Daniel




More information about the llvm-dev mailing list