This was added in https://reviews.llvm.org/D86979. My goal was to show how to write an in-tree NPM pass. It didn't really fit into any of the existing directories/libraries, so I created a similar one to the legacy HelloWorld example. Since it's unconditionally added to PassRegistry.def, I followed the CMake from something like llvm/lib/Transforms/Scalar. TBH I'm not super familiar with the various CMake machinery, so any suggestions are welcome. In hindsight, perhaps adding it to llvm/lib/Transforms/Scalar would be cleaner and would still properly show how to write an in-tree pass. I can go ahead and do that if you'd like. On Tue, Feb 2, 2021 at 2:32 PM Tom Stellard via llvm-dev < llvm-dev at lists.llvm.org> wrote:> On 2/2/21 1:32 PM, via llvm-dev wrote: > > My team is packaging up our next release, and this new pass popped > > up. It has its own library and everything (LLVMHelloWorld.lib), > > but it appears to be mandatory when linking against LLVM in general. > > I can see it's an example pass regarding the new pass manager, but > > I can also see the equivalent example for the legacy pass manager > > wasn't mandatory and we don't have it in our package. > > > > It seems like kind of a trivial thing to worry about--it's clearly > > harmless and doesn't take up a lot of space--but it's how the thing > > is packaged differently than the old Hello pass that bothers me. > > > > - I see it's listed in lib/Passes/Registry.def; the old one wasn't. > > > > - I see its CMakeLists.txt uses add_llvm_component_library where the > > old one uses add_llvm_library. > > > > Arthur, was the use of add_llvm_component_library() here intentional? > > -Tom > > > I can't say I understand these things but just being different > > raises my eyebrow. Is there a good reason they're different? > > And just for my own curiosity, what's the simplest way to avoid > > needing it in our package? > > > > Thanks, > > --paulr > > > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org > > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210202/2b53a307/attachment.html>
> On 2 Feb 2021, at 22:41, Arthur Eubanks via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > This was added in https://reviews.llvm.org/D86979 <https://reviews.llvm.org/D86979>. My goal was to show how to write an in-tree NPM pass. It didn't really fit into any of the existing directories/libraries, so I created a similar one to the legacy HelloWorld example. Since it's unconditionally added to PassRegistry.def, I followed the CMake from something like llvm/lib/Transforms/Scalar. TBH I'm not super familiar with the various CMake machinery, so any suggestions are welcome. > > In hindsight, perhaps adding it to llvm/lib/Transforms/Scalar would be cleaner and would still properly show how to write an in-tree pass. I can go ahead and do that if you'd like.Could it go into llvm/examples or does it need to be under llvm/lib/Transforms? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210202/06f5fd02/attachment.html>
> In hindsight, perhaps adding it to llvm/lib/Transforms/Scalar would be cleaner and would still properly show how to write an in-tree pass. I can go ahead and do that if you'd like.Agreed. ________________________________________ From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Arthur Eubanks via llvm-dev <llvm-dev at lists.llvm.org> Sent: Tuesday, February 2, 2021 2:41 PM To: tstellar at redhat.com Cc: llvm-dev Subject: Re: [llvm-dev] HelloWorldPass ? This was added in https://reviews.llvm.org/D86979<https://urldefense.com/v3/__https://reviews.llvm.org/D86979__;!!JmoZiZGBv3RvKRSx!uvevl9WxJWZajB0Ry7OvTsTpBbInzuVMLFel-NpaLf8cgfknTp5mrDkGD7s-BlN6ng$>. My goal was to show how to write an in-tree NPM pass. It didn't really fit into any of the existing directories/libraries, so I created a similar one to the legacy HelloWorld example. Since it's unconditionally added to PassRegistry.def, I followed the CMake from something like llvm/lib/Transforms/Scalar. TBH I'm not super familiar with the various CMake machinery, so any suggestions are welcome. In hindsight, perhaps adding it to llvm/lib/Transforms/Scalar would be cleaner and would still properly show how to write an in-tree pass. I can go ahead and do that if you'd like. On Tue, Feb 2, 2021 at 2:32 PM Tom Stellard via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote: On 2/2/21 1:32 PM, via llvm-dev wrote:> My team is packaging up our next release, and this new pass popped > up. It has its own library and everything (LLVMHelloWorld.lib), > but it appears to be mandatory when linking against LLVM in general. > I can see it's an example pass regarding the new pass manager, but > I can also see the equivalent example for the legacy pass manager > wasn't mandatory and we don't have it in our package. > > It seems like kind of a trivial thing to worry about--it's clearly > harmless and doesn't take up a lot of space--but it's how the thing > is packaged differently than the old Hello pass that bothers me. > > - I see it's listed in lib/Passes/Registry.def; the old one wasn't. > > - I see its CMakeLists.txt uses add_llvm_component_library where the > old one uses add_llvm_library. >Arthur, was the use of add_llvm_component_library() here intentional? -Tom> I can't say I understand these things but just being different > raises my eyebrow. Is there a good reason they're different? > And just for my own curiosity, what's the simplest way to avoid > needing it in our package? > > Thanks, > --paulr > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<https://urldefense.com/v3/__https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev__;!!JmoZiZGBv3RvKRSx!uvevl9WxJWZajB0Ry7OvTsTpBbInzuVMLFel-NpaLf8cgfknTp5mrDkGD7v9MrAJRQ$> >_______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<https://urldefense.com/v3/__https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev__;!!JmoZiZGBv3RvKRSx!uvevl9WxJWZajB0Ry7OvTsTpBbInzuVMLFel-NpaLf8cgfknTp5mrDkGD7v9MrAJRQ$>