Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support LLVM 17 #1480

Closed
chenrui333 opened this issue Oct 12, 2023 · 1 comment
Closed

Support LLVM 17 #1480

chenrui333 opened this issue Oct 12, 2023 · 1 comment

Comments

@chenrui333
Copy link

Looks like there is some challenge of building the latest release against LLVM 17

error build log
[ 59%] Building CXX object Enzyme/CMakeFiles/LLDEnzyme-17.dir/DifferentialUseAnalysis.cpp.o
cd /tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/build/Enzyme && /opt/homebrew/Library/Homebrew/shims/mac/super/clang++ -DENZYME_RUNPASS -DENZYME_VERSION_MAJOR=0 -DENZYME_VERSION_MINOR=0 -DENZYME_VERSION_PATCH=79 -I/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/build/include -I/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/build/Enzyme -Wall -fPIC -fno-rtti  -O2 -std=gnu++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -fPIC   -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MT Enzyme/CMakeFiles/LLDEnzyme-17.dir/DifferentialUseAnalysis.cpp.o -MF CMakeFiles/LLDEnzyme-17.dir/DifferentialUseAnalysis.cpp.o.d -o CMakeFiles/LLDEnzyme-17.dir/DifferentialUseAnalysis.cpp.o -c /tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DifferentialUseAnalysis.cpp
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/CApi.cpp:1315:13: warning: unused variable 'idx' [-Wunused-variable]
  for (auto idx : enzyme_srets) {
            ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/CApi.cpp:1489:53: warning: braces around scalar initializer [-Wbraced-scalar-init]
        offset = recur(B, B.CreateExtractElement(V, {i}), offset);
                                                    ^~~
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/CacheUtility.cpp:1389:29: warning: 'supportsTypedPointers' is deprecated: Always returns false [-Wdeprecated-declarations]
  if (tostore->getContext().supportsTypedPointers()) {
                            ^
/opt/homebrew/opt/llvm/include/llvm/IR/LLVMContext.h:323:5: note: 'supportsTypedPointers' has been explicitly marked deprecated here
  [[deprecated("Always returns false")]]
    ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/CacheUtility.cpp:1391:47: error: no member named 'getPointerElementType' in 'llvm::Type'; did you mean 'getArrayElementType'?
    if (tostore->getType() != loc->getType()->getPointerElementType()) {
                                              ^~~~~~~~~~~~~~~~~~~~~
                                              getArrayElementType
/opt/homebrew/opt/llvm/include/llvm/IR/Type.h:405:9: note: 'getArrayElementType' declared here
  Type *getArrayElementType() const {
        ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/CacheUtility.cpp:1396:50: error: no member named 'getPointerElementType' in 'llvm::Type'; did you mean 'getArrayElementType'?
    assert(tostore->getType() == loc->getType()->getPointerElementType());
                                                 ^~~~~~~~~~~~~~~~~~~~~
                                                 getArrayElementType
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/assert.h:99:25: note: expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0)
                        ^
/opt/homebrew/opt/llvm/include/llvm/IR/Type.h:405:9: note: 'getArrayElementType' declared here
  Type *getArrayElementType() const {
        ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:179:47: warning: 'getPrefTypeAlignment' is deprecated: use getPrefTypeAlign instead [-Wdeprecated-declarations]
        oldFunc->getParent()->getDataLayout().getPrefTypeAlignment(type);
                                              ^~~~~~~~~~~~~~~~~~~~
                                              getPrefTypeAlign
/opt/homebrew/opt/llvm/include/llvm/IR/DataLayout.h:538:3: note: 'getPrefTypeAlignment' has been explicitly marked deprecated here
  LLVM_DEPRECATED("use getPrefTypeAlign instead", "getPrefTypeAlign")
  ^
/opt/homebrew/opt/llvm/include/llvm/Support/Compiler.h:155:50: note: expanded from macro 'LLVM_DEPRECATED'
#define LLVM_DEPRECATED(MSG, FIX) __attribute__((deprecated(MSG, FIX)))
                                                 ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:186:25: warning: 'supportsTypedPointers' is deprecated: Always returns false [-Wdeprecated-declarations]
  if (val->getContext().supportsTypedPointers()) {
                        ^
/opt/homebrew/opt/llvm/include/llvm/IR/LLVMContext.h:323:5: note: 'supportsTypedPointers' has been explicitly marked deprecated here
  [[deprecated("Always returns false")]]
    ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:188:43: error: no member named 'getPointerElementType' in 'llvm::PointerType'; did you mean 'getArrayElementType'?
    assert(differentials[val]->getType()->getPointerElementType() == type);
                                          ^~~~~~~~~~~~~~~~~~~~~
                                          getArrayElementType
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/assert.h:99:25: note: expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0)
                        ^
/opt/homebrew/opt/llvm/include/llvm/IR/Type.h:405:9: note: 'getArrayElementType' declared here
  Type *getArrayElementType() const {
        ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:524:27: warning: 'supportsTypedPointers' is deprecated: Always returns false [-Wdeprecated-declarations]
  if (toset->getContext().supportsTypedPointers()) {
                          ^
/opt/homebrew/opt/llvm/include/llvm/IR/LLVMContext.h:323:5: note: 'supportsTypedPointers' has been explicitly marked deprecated here
  [[deprecated("Always returns false")]]
    ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:526:49: error: no member named 'getPointerElementType' in 'llvm::Type'; did you mean 'getArrayElementType'?
    if (toset->getType() != tostore->getType()->getPointerElementType()) {
                                                ^~~~~~~~~~~~~~~~~~~~~
                                                getArrayElementType
/opt/homebrew/opt/llvm/include/llvm/IR/Type.h:405:9: note: 'getArrayElementType' declared here
  Type *getArrayElementType() const {
        ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:530:52: error: no member named 'getPointerElementType' in 'llvm::Type'; did you mean 'getArrayElementType'?
    assert(toset->getType() == tostore->getType()->getPointerElementType());
                                                   ^~~~~~~~~~~~~~~~~~~~~
                                                   getArrayElementType
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/assert.h:99:25: note: expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __ASSERT_FILE_NAME, __LINE__, #e) : (void)0)
                        ^
/opt/homebrew/opt/llvm/include/llvm/IR/Type.h:405:9: note: 'getArrayElementType' declared here
  Type *getArrayElementType() const {
        ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:575:33: warning: 'supportsTypedPointers' is deprecated: Always returns false [-Wdeprecated-declarations]
  if (metaforfree->getContext().supportsTypedPointers()) {
                                ^
/opt/homebrew/opt/llvm/include/llvm/IR/LLVMContext.h:323:5: note: 'supportsTypedPointers' has been explicitly marked deprecated here
  [[deprecated("Always returns false")]]
    ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:577:33: error: no member named 'getPointerElementType' in 'llvm::Type'; did you mean 'getArrayElementType'?
    T = metaforfree->getType()->getPointerElementType();
                                ^~~~~~~~~~~~~~~~~~~~~
                                getArrayElementType
/opt/homebrew/opt/llvm/include/llvm/IR/Type.h:405:9: note: 'getArrayElementType' declared here
  Type *getArrayElementType() const {
        ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:646:29: warning: 'supportsTypedPointers' is deprecated: Always returns false [-Wdeprecated-declarations]
  if (origptr->getContext().supportsTypedPointers()) {
                            ^
/opt/homebrew/opt/llvm/include/llvm/IR/LLVMContext.h:323:5: note: 'supportsTypedPointers' has been explicitly marked deprecated here
  [[deprecated("Always returns false")]]
    ^
/tmp/enzyme-20231012-53020-xs8iro/Enzyme-0.0.88/enzyme/Enzyme/DiffeGradientUtils.cpp:648:37: error: no member named 'getPointerElementType' in 'llvm::Type'; did you mean 'getArrayElementType'?
    needsCast = origptr->getType()->getPointerElementType() != addingType;
                                    ^~~~~~~~~~~~~~~~~~~~~
                                    getArrayElementType
/opt/homebrew/opt/llvm/include/llvm/IR/Type.h:405:9: note: 'getArrayElementType' declared here
  Type *getArrayElementType() const {
        ^
1 warning and 2 errors generated.
gmake[2]: *** [Enzyme/CMakeFiles/LLDEnzyme-17.dir/build.make:121: Enzyme/CMakeFiles/LLDEnzyme-17.dir/CacheUtility.cpp.o] Error 1
@wsmoses
Copy link
Member

wsmoses commented Oct 12, 2023

Oh yeah this should be doable now that it's out. We actually have a build succeeding which tracks LLVM head, and I guess we didn't have the >= versions checks all correct for 17.

I'll add 17 to our CI and we can fix this quickly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants