diff --git a/cmake/llvm-hash.txt b/cmake/llvm-hash.txt index 427b418502e8..6820aeff9caf 100644 --- a/cmake/llvm-hash.txt +++ b/cmake/llvm-hash.txt @@ -1 +1 @@ -ffe3129e9bdc146ee4d91e849173d1c64b1ae974 +1188b1ff7b956cb65d8ddda5f1e56c432f1a57c7 diff --git a/include/triton/Dialect/Triton/IR/TritonOps.td b/include/triton/Dialect/Triton/IR/TritonOps.td index b3c12662a8e3..bbe189e51fc5 100644 --- a/include/triton/Dialect/Triton/IR/TritonOps.td +++ b/include/triton/Dialect/Triton/IR/TritonOps.td @@ -1055,7 +1055,10 @@ def CallOp : TT_Op<"call", [CallOpInterface, /*MemRefsNormalizable, */DeclareOpI ``` }]; - let arguments = (ins FlatSymbolRefAttr:$callee, Variadic:$operands); + let arguments = (ins FlatSymbolRefAttr:$callee, + Variadic:$operands, + OptionalAttr:$arg_attrs, + OptionalAttr:$res_attrs); let results = (outs Variadic); let builders = [ diff --git a/lib/Dialect/Triton/IR/Ops.cpp b/lib/Dialect/Triton/IR/Ops.cpp index 1abae4e5e820..42522a68a176 100644 --- a/lib/Dialect/Triton/IR/Ops.cpp +++ b/lib/Dialect/Triton/IR/Ops.cpp @@ -922,7 +922,7 @@ void FuncOp::build(OpBuilder &builder, OperationState &state, StringRef name, if (argAttrs.empty()) return; assert(type.getNumInputs() == argAttrs.size()); - function_interface_impl::addArgAndResultAttrs( + call_interface_impl::addArgAndResultAttrs( builder, state, argAttrs, /*resultAttrs=*/std::nullopt, getArgAttrsAttrName(state.name), getResAttrsAttrName(state.name)); } diff --git a/test/Conversion/amd/async_ops_to_llvm.mlir b/test/Conversion/amd/async_ops_to_llvm.mlir index dae0aa242436..6f4d4fb747f5 100644 --- a/test/Conversion/amd/async_ops_to_llvm.mlir +++ b/test/Conversion/amd/async_ops_to_llvm.mlir @@ -83,16 +83,16 @@ module attributes {"ttg.num-ctas" = 1 : i32, "ttg.num-warps" = 4 : i32, ttg.shar %arg1: i32 {tt.divisibility = 16 : i32}, %arg2: !ttg.memdesc<32x64xf16, #shared, #smem, mutable>) { // The waitcnt stores all counters in one i32 bits 15:14 and 3:0 store the vmcnt we have to wait on - // CHECK: rocdl.waitcnt -49168 + // CHECK: rocdl.s.waitcnt -49168 // CHECK: rocdl.barrier ttg.async_wait {num = 0 : i32} - // CHECK: rocdl.waitcnt -49167 + // CHECK: rocdl.s.waitcnt -49167 // CHECK: rocdl.barrier ttg.async_wait {num = 1 : i32} - // CHECK: rocdl.waitcnt -2 + // CHECK: rocdl.s.waitcnt -2 // CHECK: rocdl.barrier ttg.async_wait {num = 62 : i32} - // CHECK: rocdl.waitcnt -1 + // CHECK: rocdl.s.waitcnt -1 // CHECK: rocdl.barrier ttg.async_wait {num = 63 : i32} tt.return diff --git a/third_party/amd/lib/TritonAMDGPUToLLVM/LoadStoreOpToLLVM.cpp b/third_party/amd/lib/TritonAMDGPUToLLVM/LoadStoreOpToLLVM.cpp index 931b04e685a0..2465923bed5c 100644 --- a/third_party/amd/lib/TritonAMDGPUToLLVM/LoadStoreOpToLLVM.cpp +++ b/third_party/amd/lib/TritonAMDGPUToLLVM/LoadStoreOpToLLVM.cpp @@ -1682,7 +1682,7 @@ struct AsyncWaitOpConversion : public ConvertOpToLLVMPattern { unsigned otherCnts = ~0xC00F; // C00F has bits 15:14 and 3:0 set unsigned waitValue = lowBits | highBits | otherCnts; - rewriter.create(loc, waitValue); + rewriter.create(loc, waitValue); // Drop the result AsyncToken rewriter.replaceOp(op, b.i32_val(0));