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 >
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>
(Fix email address) On 2021-02-02, Tom Stellard via llvm-dev 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