Build instructions for old versions
Andrey Alekseenko edited this page Oct 25, 2023
·
1 revision
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"
frominclude/hipSYCL/compiler/GlobalsPruningPass.hpp
(sed '/PassManagerBuilder\.h/d' -i include/hipSYCL/compiler/GlobalsPruningPass.hpp
), and - Disable CPU acceleration (
cmake -DWITH_ACCELERATED_CPU=OFF
).