niyue commented on PR #37867: URL: https://github.com/apache/arrow/pull/37867#issuecomment-1735234487
> Could you also apply [#37834 (comment)](https://github.com/apache/arrow/issues/37834#issuecomment-1732419801) to accept LLVM 17? I applied your patch for LLVM 17 a moment ago, and it should help to address some issues in the CI. # LLVM incompatible API changes (or new API) But I realized my current changes use some APIs that are not available in lower version of LLVM, for example, this CI check failed (https://github.com/apache/arrow/actions/runs/6307346371/job/17123835292?pr=37867), there are at least 4 incompatible changes: 1) llvm::GVNPass() (I confirmed this is a newly added API in Nov. 2021, either introduced in LLVM 13.0.1 or LLVM 14.0.0 [1]) 2) llvm::ModuleInlinerPass() 3) llvm::OptimizationLevel 4) `void llvm::PassBuilder::registerPipelineStartEPCallback(const std::function<void(llvm::PassManager<llvm::Module>&)>&)` I used LLVM 14.0.6 locally. For such cases, do we need to use macro to call different APIs? Currently, the lowest version of LLVM listed in the support list is `7.0`, we probably won't be able to verify many different versions of LLVMs, an option is we use two implementations for `PassManager`: 1) the legacy PassManager one for LLVM version < 14 (the old implementation) 2) the new PassManager for LLVM version >= 14 (the implementation in this PR) (use version 14 because at least one of the API `llvm::GVNPass()` is likely introduced in LLVM 14.0) @kou what do you think? # linker error This CI check (https://github.com/apache/arrow/actions/runs/6307346377/job/17123834680?pr=37867) failed with some linker error `undefined reference`, but it is not a compiler error, do we have multiple version of LLVMs installed in the environment? # links [1] https://github.com/llvm/llvm-project/blame/7675f541f75baa20e8ec007cd625a837e89fc01f/llvm/include/llvm/Transforms/Scalar/GVN.h#L117 [2] LLVM release dates, https://releases.llvm.org -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
