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]

Reply via email to