Skip to content

Commit 0457e36

Browse files
wsmosesLeila Ghaffari
andauthored
Fix ROCM (rust-lang#669)
Co-authored-by: Leila Ghaffari <[email protected]>
1 parent ca37b19 commit 0457e36

File tree

6 files changed

+10
-5
lines changed

6 files changed

+10
-5
lines changed

enzyme/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@ if (ENZYME_FLANG)
128128
add_definitions(-DFLANG=1)
129129
endif()
130130

131+
option(ENZYME_ROCM "Build for non-version compliant ROCM" OFF)
132+
if (ENZYME_ROCM)
133+
add_definitions(-DROCM=1)
134+
endif()
135+
131136
# Offer the user the choice of overriding the installation directories
132137
set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
133138
if(WIN32 AND NOT CYGWIN)

enzyme/Enzyme/AdjointGenerator.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10487,7 +10487,7 @@ class AdjointGenerator
1048710487
#if LLVM_VERSION_MAJOR >= 14
1048810488
cast<CallInst>(anti)->addDereferenceableRetAttr(derefBytes);
1048910489
cal->addDereferenceableRetAttr(derefBytes);
10490-
#ifndef FLANG
10490+
#if !defined(FLANG) && !defined(ROCM)
1049110491
AttrBuilder B(called->getContext());
1049210492
#else
1049310493
AttrBuilder B;

enzyme/Enzyme/CacheUtility.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ AllocaInst *CacheUtility::createCacheForScope(LimitContext ctx, Type *T,
896896
#if LLVM_VERSION_MAJOR >= 14
897897
malloccall->addDereferenceableRetAttr(
898898
ci->getLimitedValue() * byteSizeOfType->getLimitedValue());
899-
#ifndef FLANG
899+
#if !defined(FLANG) && !defined(ROCM)
900900
AttrBuilder B(ci->getContext());
901901
#else
902902
AttrBuilder B;

enzyme/Enzyme/Enzyme.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1801,7 +1801,7 @@ class Enzyme : public ModulePass {
18011801
// dead internal functions, which invalidates Enzyme's cache
18021802
// code left here to re-enable upon Attributor patch
18031803

1804-
#if LLVM_VERSION_MAJOR >= 13 && !defined(FLANG)
1804+
#if LLVM_VERSION_MAJOR >= 13 && !defined(FLANG) && !defined(ROCM)
18051805

18061806
AnalysisGetter AG(Logic.PPC.FAM);
18071807
SetVector<Function *> Functions;

enzyme/Enzyme/EnzymeLogic.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2318,7 +2318,7 @@ const AugmentedReturn &EnzymeLogic::CreateAugmentedPrimal(
23182318
}
23192319
#if LLVM_VERSION_MAJOR >= 14
23202320
malloccall->addDereferenceableRetAttr(size->getLimitedValue());
2321-
#ifndef FLANG
2321+
#if !defined(FLANG) && !defined(ROCM)
23222322
AttrBuilder B(malloccall->getContext());
23232323
#else
23242324
AttrBuilder B;

enzyme/Enzyme/FunctionUtils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ static inline void UpgradeAllocasToMallocs(Function *NewF,
319319
#if LLVM_VERSION_MAJOR >= 14
320320
if (ConstantInt *size = dyn_cast<ConstantInt>(CI->getOperand(0))) {
321321
CI->addDereferenceableRetAttr(size->getLimitedValue());
322-
#ifndef FLANG
322+
#if !defined(FLANG) && !defined(ROCM)
323323
AttrBuilder B(CI->getContext());
324324
#else
325325
AttrBuilder B;

0 commit comments

Comments
 (0)