[llvm-dev] Looking for an out-of-source "Hello, world" LLVM/Clang pass example

Andrzej Warzynski via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 17 06:21:32 PDT 2019


Hi Scott,

This is useful feedback for me, thanks! As you've noticed, that project
is Work In Progress, which has been on hold for a while. I'm about to
get back to it, and you've already given me some good hints as what to
improve.

My replies inline.

On 15/07/2019 23:01, Scott Pakin wrote:
> Andrzej,
>
> On 7/14/19 8:02 AM, Andrzej Warzynski wrote:
>> This is still very early stages, but you can be my guinea pig:
>>
>> https://github.com/banach-space/llvm-tutor
>>
>> It's a tutorial that I've been preparing recently and am hoping to
>> present somewhere at some point :-) I believe that it already covers 1),
>> 2) and 3). I haven't had the time to work on 4). It's based on LLVM-8
>> and includes a working CI set-up, so that you can be confident that it
>> works. If it doesn't, ping me - I'm keen on improving it.
>
> Cool, thanks.  I just started reading over that now.  I have a couple
> of questions already, if you don't mind:
>
> 1) I see you're building the pass with
>
>      add_library(lt-cc-static STATIC StaticCallCounter.cpp
> DynamicCallCounter.cpp)
>      add_library(lt-cc-shared MODULE StaticCallCounter.cpp
> DynamicCallCounter.cpp)
>
>    What's the reason for building a STATIC version?  Does any LLVM tool
>    make use of that?

Good catch - I honestly don't remember. Let me check that and I'll get
back to you.

>
>    Is add_library the preferred pass-building CMake macro these days,
>    as opposed to add_llvm_library or add_llvm_loadable_module?

My motivation was to make it as standalone and basic as possible.
add_library was sufficient and that's what I used.

>
> 2) How is the user supposed to install the generated files?  Neither
>     "make install" nor "cmake --target=install" seem to work.

I have not considered that at all. Added to my TODO list.

>
> -- Scott
>

-- Andrzej
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


More information about the llvm-dev mailing list