Skip to content

Commit 7723f39

Browse files
authored
[BACKEND] Update LLVM version to llvm/llvm-project@7752e0a (#6735)
Removed `addArgumentMaterialization` since that method was removed from MLIR in llvm/llvm-project@23e3cbb
1 parent 0e9c118 commit 7723f39

File tree

9 files changed

+21
-19
lines changed

9 files changed

+21
-19
lines changed

cmake/llvm-hash.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
092b6e73e651469527662443b592f98f442ece72
1+
7752e0a10b25da2f2eadbed10606bd5454dbca05

lib/Conversion/TritonGPUToLLVM/ConvertLayoutOpToLLVM.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ struct ConvertLayoutOpUsingLinearLayoutsConversion
295295
offset);
296296
}
297297
auto vecAddr = b.gep(sharedPtrTy, elemTy, smemBase, offset);
298-
vecAddr.setInbounds(true);
298+
vecAddr.setNoWrapFlags(mlir::LLVM::GEPNoWrapFlags::inbounds);
299299
return vecAddr;
300300
};
301301

lib/Conversion/TritonGPUToLLVM/Utility.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ Value getSmemVecAddr(const LinearLayout &regLayout,
399399
}
400400
auto ptrTy = smemBase.getType();
401401
auto vecAddr = b.gep(ptrTy, elemLlvmTy, smemBase, smemOffset);
402-
vecAddr.setInbounds(true);
402+
vecAddr.setNoWrapFlags(mlir::LLVM::GEPNoWrapFlags::inbounds);
403403
return vecAddr;
404404
}
405405

lib/Conversion/TritonToTritonGPU/TritonGPUConversion.cpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,6 @@ TritonGPUTypeConverter::TritonGPUTypeConverter(MLIRContext *context,
5555
//
5656
// Materializations
5757
//
58-
// This will be called when (newArgType != origArgType)
59-
// This will create newArg, and map(origArg, newArg)
60-
addArgumentMaterialization([](OpBuilder &builder, RankedTensorType tensorType,
61-
ValueRange inputs, Location loc) -> Value {
62-
llvm_unreachable("Argument rematerialization should not happen in Triton "
63-
"-> TritonGPU conversion");
64-
return {};
65-
});
66-
6758
// If the origValue still has live user(s), use this to
6859
// convert origValue to newValue
6960
addSourceMaterialization([=](OpBuilder &builder, RankedTensorType tensorType,

third_party/amd/lib/TritonAMDGPUToLLVM/BuiltinFuncToLLVM.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ struct ConvertBuiltinFuncToLLVM
204204
ModuleOp mod = getOperation();
205205

206206
GreedyRewriteConfig config;
207-
config.enableRegionSimplification = GreedySimplifyRegionLevel::Aggressive;
207+
config.setRegionSimplificationLevel(GreedySimplifyRegionLevel::Aggressive);
208208

209209
RewritePatternSet patterns(context);
210210
patterns.add<CallOpConversion>(context, this->ftz);

third_party/amd/lib/TritonAMDGPUToLLVM/TritonGPUToLLVM.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "mlir/Conversion/MathToLLVM/MathToLLVM.h"
1212
#include "mlir/Conversion/SCFToControlFlow/SCFToControlFlow.h"
1313
#include "mlir/Conversion/UBToLLVM/UBToLLVM.h"
14+
#include "mlir/Dialect/AMDGPU/Utils/Chipset.h"
1415
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
1516
#include "mlir/Dialect/LLVMIR/NVVMDialect.h"
1617
#include "mlir/Dialect/LLVMIR/ROCDLDialect.h"
@@ -24,6 +25,7 @@
2425
#include "triton/Dialect/Triton/IR/Dialect.h"
2526
#include "triton/Dialect/TritonGPU/IR/Dialect.h"
2627
#include "triton/Dialect/TritonNvidiaGPU/IR/Dialect.h"
28+
#include "llvm/TargetParser/TargetParser.h"
2729

2830
#include "third_party/proton/dialect/include/TritonProtonToLLVM/PatternTritonProtonOpToLLVM.h"
2931

@@ -86,6 +88,15 @@ struct ConvertTritonAMDGPUToLLVM
8688
mod.emitError("unsupported target: '") << this->arch.getValue() << "'";
8789
return signalPassFailure();
8890
}
91+
llvm::StringRef chipset =
92+
llvm::AMDGPU::getArchNameAMDGCN(targetInfo.getGPUKind());
93+
llvm::FailureOr<mlir::amdgpu::Chipset> maybeChipset =
94+
mlir::amdgpu::Chipset::parse(chipset);
95+
if (failed(maybeChipset)) {
96+
mlir::emitError(mlir::UnknownLoc::get(&getContext()),
97+
"Invalid chipset name: " + chipset);
98+
return signalPassFailure();
99+
}
89100

90101
mlir::LowerToLLVMOptions option(context);
91102
option.overrideIndexBitwidth(32);
@@ -210,8 +221,8 @@ struct ConvertTritonAMDGPUToLLVM
210221
mlir::populateMathToLLVMConversionPatterns(typeConverter, patterns);
211222

212223
// Native lowering patterns
213-
mlir::populateGpuToROCDLConversionPatterns(typeConverter, patterns,
214-
mlir::gpu::amd::HIP);
224+
mlir::populateGpuToROCDLConversionPatterns(
225+
typeConverter, patterns, mlir::gpu::amd::HIP, *maybeChipset);
215226

216227
mlir::cf::populateControlFlowToLLVMConversionPatterns(typeConverter,
217228
patterns);

third_party/amd/lib/TritonAMDGPUTransforms/CanonicalizePointers.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include "mlir/IR/TypeUtilities.h"
1414
#include "mlir/IR/Value.h"
1515
#include "mlir/Pass/Pass.h"
16-
#include "mlir/Transforms/OneToNTypeConversion.h"
16+
#include "mlir/Transforms/DialectConversion.h"
1717
#include "triton/Analysis/Utility.h"
1818
#include "triton/Dialect/Triton/IR/Dialect.h"
1919
#include "triton/Dialect/Triton/IR/Types.h"

third_party/nvidia/lib/TritonNVIDIAGPUToLLVM/MemoryOpToLLVM.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ LogicalResult lowerDistributedToSharedStmatrix(
191191
.second;
192192
Value offset = b.xor_(regBase, b.i32_val(regIdx));
193193
auto vecAddr = b.gep(smemPtrTy, llvmElemTy, smemBase, offset);
194-
vecAddr.setInbounds(true);
194+
vecAddr.setNoWrapFlags(mlir::LLVM::GEPNoWrapFlags::inbounds);
195195
SmallVector<Value> inValsVec;
196196
for (int j = 0; j < srcVec; j++)
197197
inValsVec.push_back(srcVals[i + j]);

third_party/nvidia/lib/TritonNVIDIAGPUToLLVM/TargetInfo.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ void TargetInfo::storeDShared(RewriterBase &rewriter, Location loc, Value ptr,
230230
SmallVector<Value> vals = unpackLLVector(loc, val, rewriter);
231231
for (int i = 0; i < vec / maxVec; i++) {
232232
auto newPtr = b.gep(ptr.getType(), elemTy, ptr, b.i32_val(i * maxVec),
233-
/*inbounds=*/true);
233+
mlir::LLVM::GEPNoWrapFlags::inbounds);
234234
storeDShared(
235235
rewriter, loc, newPtr, ctaId,
236236
packLLVector(loc, ArrayRef(vals).slice(i * maxVec, maxVec), rewriter),
@@ -343,7 +343,7 @@ Value TargetInfo::loadDShared(RewriterBase &rewriter, Location loc, Value ptr,
343343
SmallVector<Value> vals;
344344
for (int i = 0; i < vec / maxVec; i++) {
345345
auto newPtr = b.gep(ptr.getType(), elemTy, ptr, b.i32_val(i * maxVec),
346-
/*inbounds=*/true);
346+
mlir::LLVM::GEPNoWrapFlags::inbounds);
347347
auto newVal = loadDShared(rewriter, loc, newPtr, ctaId,
348348
vec_ty(elemTy, maxVec), pred);
349349
for (Value v : unpackLLVector(loc, newVal, rewriter)) {

0 commit comments

Comments
 (0)