Skip to content

Build instructions for old versions

Andrey Alekseenko edited this page Oct 25, 2023 · 1 revision

hipSYCL 0.9.4

Clang 17

Building hipSYCL v0.9.4 with mainline Clang 17.0.2 fails with the following errors:

fatal error: llvm/Analysis/SyncDependenceAnalysis.h: No such file or directory
In file included from /home/***/AdaptiveCpp/src/compiler/cbs/UniformityAnalysis.cpp:13:
/home/***/AdaptiveCpp/src/compiler/../../include/hipSYCL/compiler/cbs/UniformityAnalysis.hpp:39:10: fatal error: llvm/Analysis/SyncDependenceAnalysis.h: No such file or directory
   39 | #include "llvm/Analysis/SyncDependenceAnalysis.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/home/***/AdaptiveCpp/src/compiler/../../include/hipSYCL/compiler/cbs/SplitterAnnotationAnalysis.hpp:71:9: error: ‘Optional’ in namespace ‘llvm’ does not name a template type
   71 |   llvm::Optional<SplitterAnnotationInfo> SplitterAnnotation_;
      |         ^~~~~~~~

/home/***/AdaptiveCpp/src/compiler/../../include/hipSYCL/compiler/cbs/SplitterAnnotationAnalysis.hpp: In member function ‘const hipsycl::compiler::SplitterAnnotationInfo& hipsycl::compiler::SplitterAnnotationAnalysisLegacy::getAnnotationInfo() const’:
/home/***/AdaptiveCpp/src/compiler/../../include/hipSYCL/compiler/cbs/SplitterAnnotationAnalysis.hpp:84:69: error: ‘SplitterAnnotation_’ was not declared in this scope; did you mean ‘SplitterAnnotationInfo’?
   84 |   const SplitterAnnotationInfo &getAnnotationInfo() const { return *SplitterAnnotation_; }
      |                                                                     ^~~~~~~~~~~~~~~~~~~
      |                                                                     SplitterAnnotationInfo

Older versions of Clang (e.g., hipSYCL 0.9.4 + Clang 15) or newer versions of AdaptiveCpp (e.g., AdaptiveCpp 23.10.0-alpha + Clang 17) work fine.

Suggested workaround

  • Remove #include "llvm/Transforms/IPO/PassManagerBuilder.h" from include/hipSYCL/compiler/GlobalsPruningPass.hpp (sed '/PassManagerBuilder\.h/d' -i include/hipSYCL/compiler/GlobalsPruningPass.hpp), and
  • Disable CPU acceleration (cmake -DWITH_ACCELERATED_CPU=OFF).