Skip to content

Commit 2780b8f

Browse files
authored
Revert "[mlir][llvm] Add intrinsic arg and result attribute support (… (#151099)
#150783)" This reverts commit 59013d4. The change breaks a flang build bot: https://lab.llvm.org/buildbot/#/builders/207/builds/4441
1 parent 5dab1fa commit 2780b8f

File tree

15 files changed

+209
-262
lines changed

15 files changed

+209
-262
lines changed

mlir/include/mlir/Dialect/ArmSME/IR/ArmSMEIntrinsicOps.td

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ class ArmSME_IntrOp<string mnemonic,
7171
/*bit requiresAccessGroup=*/0,
7272
/*bit requiresAliasAnalysis=*/0,
7373
/*bit requiresFastmath=*/0,
74-
/*bit requiresArgAndResultAttrs=*/0,
7574
/*bit requiresOpBundles=*/0,
7675
/*list<int> immArgPositions=*/immArgPositions,
7776
/*list<string> immArgAttrNames=*/immArgAttrNames>;

mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ class ArmSVE_IntrOp<string mnemonic,
9292
/*bit requiresAccessGroup=*/0,
9393
/*bit requiresAliasAnalysis=*/0,
9494
/*bit requiresFastmath=*/0,
95-
/*bit requiresArgAndResultAttrs=*/0,
9695
/*bit requiresOpBundles=*/0,
9796
/*list<int> immArgPositions=*/immArgPositions,
9897
/*list<string> immArgAttrNames=*/immArgAttrNames>;

mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ def LLVM_Log2Op : LLVM_UnaryIntrOpF<"log2">;
140140
def LLVM_LogOp : LLVM_UnaryIntrOpF<"log">;
141141
def LLVM_Prefetch : LLVM_ZeroResultIntrOp<"prefetch", [0],
142142
/*traits=*/[], /*requiresAccessGroup=*/0, /*requiresAliasAnalysis=*/0,
143-
/*requiresArgAndResultAttrs=*/0, /*requiresOpBundles=*/0,
144-
/*immArgPositions=*/[1, 2, 3], /*immArgAttrNames=*/["rw", "hint", "cache"]
143+
/*requiresOpBundles=*/0, /*immArgPositions=*/[1, 2, 3],
144+
/*immArgAttrNames=*/["rw", "hint", "cache"]
145145
> {
146146
let arguments = (ins LLVM_AnyPointer:$addr, I32Attr:$rw, I32Attr:$hint, I32Attr:$cache);
147147
}
@@ -200,13 +200,13 @@ class LLVM_MemcpyIntrOpBase<string name> :
200200
DeclareOpInterfaceMethods<DestructurableAccessorOpInterface>,
201201
DeclareOpInterfaceMethods<SafeMemorySlotAccessOpInterface>],
202202
/*requiresAccessGroup=*/1, /*requiresAliasAnalysis=*/1,
203-
/*requiresArgAndResultAttrs=*/1, /*requiresOpBundles=*/0,
204-
/*immArgPositions=*/[3], /*immArgAttrNames=*/["isVolatile"]> {
203+
/*requiresOpBundles=*/0, /*immArgPositions=*/[3],
204+
/*immArgAttrNames=*/["isVolatile"]> {
205205
dag args = (ins Arg<LLVM_AnyPointer,"",[MemWrite]>:$dst,
206206
Arg<LLVM_AnyPointer,"",[MemRead]>:$src,
207207
AnySignlessInteger:$len, I1Attr:$isVolatile);
208-
// Append the arguments defined by LLVM_IntrOpBase.
209-
let arguments = !con(args, baseArgs);
208+
// Append the alias attributes defined by LLVM_IntrOpBase.
209+
let arguments = !con(args, aliasAttrs);
210210
let builders = [
211211
OpBuilder<(ins "Value":$dst, "Value":$src, "Value":$len,
212212
"bool":$isVolatile), [{
@@ -217,8 +217,7 @@ class LLVM_MemcpyIntrOpBase<string name> :
217217
"IntegerAttr":$isVolatile), [{
218218
build($_builder, $_state, dst, src, len, isVolatile,
219219
/*access_groups=*/nullptr, /*alias_scopes=*/nullptr,
220-
/*noalias_scopes=*/nullptr, /*tbaa=*/nullptr,
221-
/*arg_attrs=*/nullptr, /*res_attrs=*/nullptr);
220+
/*noalias_scopes=*/nullptr, /*tbaa=*/nullptr);
222221
}]>
223222
];
224223
}
@@ -232,13 +231,13 @@ def LLVM_MemcpyInlineOp :
232231
DeclareOpInterfaceMethods<DestructurableAccessorOpInterface>,
233232
DeclareOpInterfaceMethods<SafeMemorySlotAccessOpInterface>],
234233
/*requiresAccessGroup=*/1, /*requiresAliasAnalysis=*/1,
235-
/*requiresArgAndResultAttrs=*/1, /*requiresOpBundles=*/0,
236-
/*immArgPositions=*/[2, 3], /*immArgAttrNames=*/["len", "isVolatile"]> {
234+
/*requiresOpBundles=*/0, /*immArgPositions=*/[2, 3],
235+
/*immArgAttrNames=*/["len", "isVolatile"]> {
237236
dag args = (ins Arg<LLVM_AnyPointer,"",[MemWrite]>:$dst,
238237
Arg<LLVM_AnyPointer,"",[MemRead]>:$src,
239238
APIntAttr:$len, I1Attr:$isVolatile);
240-
// Append the arguments defined by LLVM_IntrOpBase.
241-
let arguments = !con(args, baseArgs);
239+
// Append the alias attributes defined by LLVM_IntrOpBase.
240+
let arguments = !con(args, aliasAttrs);
242241
let builders = [
243242
OpBuilder<(ins "Value":$dst, "Value":$src, "IntegerAttr":$len,
244243
"bool":$isVolatile), [{
@@ -249,8 +248,7 @@ def LLVM_MemcpyInlineOp :
249248
"IntegerAttr":$isVolatile), [{
250249
build($_builder, $_state, dst, src, len, isVolatile,
251250
/*access_groups=*/nullptr, /*alias_scopes=*/nullptr,
252-
/*noalias_scopes=*/nullptr, /*tbaa=*/nullptr,
253-
/*arg_attrs=*/nullptr, /*res_attrs=*/nullptr);
251+
/*noalias_scopes=*/nullptr, /*tbaa=*/nullptr);
254252
}]>
255253
];
256254
}
@@ -260,12 +258,12 @@ def LLVM_MemsetOp : LLVM_ZeroResultIntrOp<"memset", [0, 2],
260258
DeclareOpInterfaceMethods<DestructurableAccessorOpInterface>,
261259
DeclareOpInterfaceMethods<SafeMemorySlotAccessOpInterface>],
262260
/*requiresAccessGroup=*/1, /*requiresAliasAnalysis=*/1,
263-
/*requiresArgAndResultAttrs=*/1, /*requiresOpBundles=*/0,
264-
/*immArgPositions=*/[3], /*immArgAttrNames=*/["isVolatile"]> {
261+
/*requiresOpBundles=*/0, /*immArgPositions=*/[3],
262+
/*immArgAttrNames=*/["isVolatile"]> {
265263
dag args = (ins Arg<LLVM_AnyPointer,"",[MemWrite]>:$dst,
266264
I8:$val, AnySignlessInteger:$len, I1Attr:$isVolatile);
267-
// Append the arguments defined by LLVM_IntrOpBase.
268-
let arguments = !con(args, baseArgs);
265+
// Append the alias attributes defined by LLVM_IntrOpBase.
266+
let arguments = !con(args, aliasAttrs);
269267
let builders = [
270268
OpBuilder<(ins "Value":$dst, "Value":$val, "Value":$len,
271269
"bool":$isVolatile), [{
@@ -276,8 +274,7 @@ def LLVM_MemsetOp : LLVM_ZeroResultIntrOp<"memset", [0, 2],
276274
"IntegerAttr":$isVolatile), [{
277275
build($_builder, $_state, dst, val, len, isVolatile,
278276
/*access_groups=*/nullptr, /*alias_scopes=*/nullptr,
279-
/*noalias_scopes=*/nullptr, /*tbaa=*/nullptr,
280-
/*arg_attrs=*/nullptr, /*res_attrs=*/nullptr);
277+
/*noalias_scopes=*/nullptr, /*tbaa=*/nullptr);
281278
}]>
282279
];
283280
}
@@ -287,12 +284,12 @@ def LLVM_MemsetInlineOp : LLVM_ZeroResultIntrOp<"memset.inline", [0, 2],
287284
DeclareOpInterfaceMethods<DestructurableAccessorOpInterface>,
288285
DeclareOpInterfaceMethods<SafeMemorySlotAccessOpInterface>],
289286
/*requiresAccessGroup=*/1, /*requiresAliasAnalysis=*/1,
290-
/*requiresArgAndResultAttrs=*/1, /*requiresOpBundles=*/0,
291-
/*immArgPositions=*/[2, 3], /*immArgAttrNames=*/["len", "isVolatile"]> {
287+
/*requiresOpBundles=*/0, /*immArgPositions=*/[2, 3],
288+
/*immArgAttrNames=*/["len", "isVolatile"]> {
292289
dag args = (ins Arg<LLVM_AnyPointer,"",[MemWrite]>:$dst,
293290
I8:$val, APIntAttr:$len, I1Attr:$isVolatile);
294-
// Append the arguments defined by LLVM_IntrOpBase.
295-
let arguments = !con(args, baseArgs);
291+
// Append the alias attributes defined by LLVM_IntrOpBase.
292+
let arguments = !con(args, aliasAttrs);
296293
let builders = [
297294
OpBuilder<(ins "Value":$dst, "Value":$val, "IntegerAttr":$len,
298295
"bool":$isVolatile), [{
@@ -303,8 +300,7 @@ def LLVM_MemsetInlineOp : LLVM_ZeroResultIntrOp<"memset.inline", [0, 2],
303300
"IntegerAttr":$isVolatile), [{
304301
build($_builder, $_state, dst, val, len, isVolatile,
305302
/*access_groups=*/nullptr, /*alias_scopes=*/nullptr,
306-
/*noalias_scopes=*/nullptr, /*tbaa=*/nullptr,
307-
/*arg_attrs=*/nullptr, /*res_attrs=*/nullptr);
303+
/*noalias_scopes=*/nullptr, /*tbaa=*/nullptr);
308304
}]>
309305
];
310306
}
@@ -353,8 +349,8 @@ def LLVM_PtrMaskOp
353349
class LLVM_LifetimeBaseOp<string opName> : LLVM_ZeroResultIntrOp<opName, [1],
354350
[DeclareOpInterfaceMethods<PromotableOpInterface>],
355351
/*requiresAccessGroup=*/0, /*requiresAliasAnalysis=*/0,
356-
/*requiresArgAndResultAttrs=*/0, /*requiresOpBundles=*/0,
357-
/*immArgPositions=*/[0], /*immArgAttrNames=*/["size"]> {
352+
/*requiresOpBundles=*/0, /*immArgPositions=*/[0],
353+
/*immArgAttrNames=*/["size"]> {
358354
let arguments = (ins I64Attr:$size, LLVM_AnyPointer:$ptr);
359355
let assemblyFormat = "$size `,` $ptr attr-dict `:` qualified(type($ptr))";
360356
}
@@ -374,8 +370,8 @@ def LLVM_InvariantStartOp : LLVM_OneResultIntrOp<"invariant.start", [], [1],
374370
def LLVM_InvariantEndOp : LLVM_ZeroResultIntrOp<"invariant.end", [2],
375371
[DeclareOpInterfaceMethods<PromotableOpInterface>],
376372
/*requiresAccessGroup=*/0, /*requiresAliasAnalysis=*/0,
377-
/*requiresArgAndResultAttrs=*/0, /*requiresOpBundles=*/0,
378-
/*immArgPositions=*/[1], /*immArgAttrNames=*/["size"]> {
373+
/*requiresOpBundles=*/0, /*immArgPositions=*/[1],
374+
/*immArgAttrNames=*/["size"]> {
379375
let arguments = (ins LLVM_DefaultPointer:$start,
380376
I64Attr:$size,
381377
LLVM_AnyPointer:$ptr);
@@ -546,10 +542,9 @@ def LLVM_AssumeOp
546542
: LLVM_ZeroResultIntrOp<"assume", /*overloadedOperands=*/[], /*traits=*/[],
547543
/*requiresAccessGroup=*/0,
548544
/*requiresAliasAnalysis=*/0,
549-
/*requiresArgAndResultAttrs=*/0,
550545
/*requiresOpBundles=*/1> {
551546
dag args = (ins I1:$cond);
552-
let arguments = !con(args, baseArgs);
547+
let arguments = !con(args, opBundleArgs);
553548

554549
let assemblyFormat = [{
555550
$cond
@@ -1131,8 +1126,8 @@ def LLVM_DebugTrap : LLVM_ZeroResultIntrOp<"debugtrap">;
11311126
def LLVM_UBSanTrap : LLVM_ZeroResultIntrOp<"ubsantrap",
11321127
/*overloadedOperands=*/[], /*traits=*/[],
11331128
/*requiresAccessGroup=*/0, /*requiresAliasAnalysis=*/0,
1134-
/*requiresArgAndResultAttrs=*/0, /*requiresOpBundles=*/0,
1135-
/*immArgPositions=*/[0], /*immArgAttrNames=*/["failureKind"]> {
1129+
/*requiresOpBundles=*/0, /*immArgPositions=*/[0],
1130+
/*immArgAttrNames=*/["failureKind"]> {
11361131
let arguments = (ins I8Attr:$failureKind);
11371132
}
11381133

mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td

Lines changed: 38 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ include "mlir/Dialect/LLVMIR/LLVMAttrDefs.td"
1818
include "mlir/Dialect/LLVMIR/LLVMInterfaces.td"
1919
include "mlir/IR/OpBase.td"
2020
include "mlir/Interfaces/SideEffectInterfaces.td"
21-
include "mlir/Interfaces/CallInterfaces.td"
2221

2322
//===----------------------------------------------------------------------===//
2423
// LLVM dialect type constraints.
@@ -287,26 +286,22 @@ class LLVM_MemAccessOpBase<string mnemonic, list<Trait> traits = []> :
287286
// intrinsic and "enumName" contains the name of the intrinsic as appears in
288287
// `llvm::Intrinsic` enum; one usually wants these to be related. Additionally,
289288
// the base class also defines the "mlirBuilder" field to support the inverse
290-
// translation starting from an LLVM IR intrinsic.
291-
//
292-
// The flags "requiresAccessGroup", "requiresAliasAnalysis",
293-
// "requiresFastmath", and "requiresArgAndResultAttrs" indicate which
294-
// interfaces the intrinsic implements. When a flag is set, the "baseArgs"
295-
// list includes the arguments required by the corresponding interface.
296-
// Derived intrinsics must append "baseArgs" to their argument list if they
297-
// enable any of these flags.
298-
//
299-
// LLVM `immargs` can be represented as MLIR attributes by providing both
300-
// the `immArgPositions` and `immArgAttrNames` lists. These two lists should
301-
// have equal length, with `immArgPositions` containing the argument
302-
// positions on the LLVM IR attribute that are `immargs`, and
303-
// `immArgAttrNames` mapping these to corresponding MLIR attributes.
289+
// translation starting from an LLVM IR intrinsic. The "requiresAccessGroup",
290+
// "requiresAliasAnalysis", and "requiresFastmath" flags specify which
291+
// interfaces the intrinsic implements. If the corresponding flags are set, the
292+
// "aliasAttrs" list contains the arguments required by the access group and
293+
// alias analysis interfaces. Derived intrinsics should append the "aliasAttrs"
294+
// to their argument list if they set one of the flags. LLVM `immargs` can be
295+
// represented as MLIR attributes by providing both the `immArgPositions` and
296+
// `immArgAttrNames` lists. These two lists should have equal length, with
297+
// `immArgPositions` containing the argument positions on the LLVM IR attribute
298+
// that are `immargs`, and `immArgAttrNames` mapping these to corresponding
299+
// MLIR attributes.
304300
class LLVM_IntrOpBase<Dialect dialect, string opName, string enumName,
305301
list<int> overloadedResults, list<int> overloadedOperands,
306302
list<Trait> traits, int numResults,
307303
bit requiresAccessGroup = 0, bit requiresAliasAnalysis = 0,
308-
bit requiresFastmath = 0, bit requiresArgAndResultAttrs = 0,
309-
bit requiresOpBundles = 0,
304+
bit requiresFastmath = 0, bit requiresOpBundles = 0,
310305
list<int> immArgPositions = [],
311306
list<string> immArgAttrNames = []>
312307
: LLVM_OpBase<dialect, opName, !listconcat(
@@ -316,30 +311,24 @@ class LLVM_IntrOpBase<Dialect dialect, string opName, string enumName,
316311
[DeclareOpInterfaceMethods<AliasAnalysisOpInterface>], []),
317312
!if(!gt(requiresFastmath, 0),
318313
[DeclareOpInterfaceMethods<FastmathFlagsInterface>], []),
319-
!if(!gt(requiresArgAndResultAttrs, 0),
320-
[DeclareOpInterfaceMethods<ArgAndResultAttrsOpInterface>], []),
321314
traits)>,
322315
LLVM_MemOpPatterns,
323316
Results<!if(!gt(numResults, 0), (outs LLVM_Type:$res), (outs))> {
324-
dag baseArgs = !con(
317+
dag aliasAttrs = !con(
325318
!if(!gt(requiresAccessGroup, 0),
326319
(ins OptionalAttr<LLVM_AccessGroupArrayAttr>:$access_groups),
327320
(ins )),
328321
!if(!gt(requiresAliasAnalysis, 0),
329322
(ins OptionalAttr<LLVM_AliasScopeArrayAttr>:$alias_scopes,
330323
OptionalAttr<LLVM_AliasScopeArrayAttr>:$noalias_scopes,
331324
OptionalAttr<LLVM_TBAATagArrayAttr>:$tbaa),
332-
(ins )),
333-
!if(!gt(requiresArgAndResultAttrs, 0),
334-
(ins OptionalAttr<DictArrayAttr>:$arg_attrs,
335-
OptionalAttr<DictArrayAttr>:$res_attrs),
336-
(ins )),
337-
!if(!gt(requiresOpBundles, 0),
338-
(ins VariadicOfVariadic<LLVM_Type,
339-
"op_bundle_sizes">:$op_bundle_operands,
340-
DenseI32ArrayAttr:$op_bundle_sizes,
341-
OptionalAttr<ArrayAttr>:$op_bundle_tags),
342325
(ins )));
326+
dag opBundleArgs = !if(!gt(requiresOpBundles, 0),
327+
(ins VariadicOfVariadic<LLVM_Type,
328+
"op_bundle_sizes">:$op_bundle_operands,
329+
DenseI32ArrayAttr:$op_bundle_sizes,
330+
OptionalAttr<ArrayAttr>:$op_bundle_tags),
331+
(ins ));
343332
string llvmEnumName = enumName;
344333
string overloadedResultsCpp = "{" # !interleave(overloadedResults, ", ") # "}";
345334
string overloadedOperandsCpp = "{" # !interleave(overloadedOperands, ", ") # "}";
@@ -353,52 +342,33 @@ class LLVM_IntrOpBase<Dialect dialect, string opName, string enumName,
353342
immArgPositionsCpp, immArgAttrNamesCpp], ",") # [{);
354343
(void) inst;
355344
}];
356-
string baseLlvmBuilderArgAndResultAttrs = [{
357-
if (failed(moduleTranslation.convertArgAndResultAttrs(
358-
op,
359-
inst,
360-
}] # immArgPositionsCpp # [{))) {
361-
return failure();
362-
}
363-
}];
364345
string baseLlvmBuilderCoda = !if(!gt(numResults, 0), "$res = inst;", "");
365-
let llvmBuilder = baseLlvmBuilder
366-
# !if(!gt(requiresAccessGroup, 0),
367-
setAccessGroupsMetadataCode, "")
368-
# !if(!gt(requiresAliasAnalysis, 0),
369-
setAliasAnalysisMetadataCode, "")
370-
# !if(!gt(requiresArgAndResultAttrs, 0),
371-
baseLlvmBuilderArgAndResultAttrs, "")
372-
# baseLlvmBuilderCoda;
346+
let llvmBuilder = baseLlvmBuilder # !if(!gt(requiresAccessGroup, 0), setAccessGroupsMetadataCode, "")
347+
# !if(!gt(requiresAliasAnalysis, 0), setAliasAnalysisMetadataCode, "")
348+
# baseLlvmBuilderCoda;
373349

374350
string baseMlirBuilder = [{
375351
SmallVector<Value> mlirOperands;
376352
SmallVector<NamedAttribute> mlirAttrs;
377353
if (failed(moduleImport.convertIntrinsicArguments(
378-
llvmOperands,
379-
llvmOpBundles,
380-
}] # !if(!gt(requiresOpBundles, 0), "true", "false") # [{,
381-
}] # immArgPositionsCpp # [{,
382-
}] # immArgAttrNamesCpp # [{,
383-
mlirOperands,
384-
mlirAttrs))) {
354+
llvmOperands,
355+
llvmOpBundles,
356+
}] # !if(!gt(requiresOpBundles, 0), "true", "false") # [{,
357+
}] # immArgPositionsCpp # [{,
358+
}] # immArgAttrNamesCpp # [{,
359+
mlirOperands,
360+
mlirAttrs))
361+
) {
385362
return failure();
386363
}
387364
SmallVector<Type> resultTypes =
388365
}] # !if(!gt(numResults, 0), "{$_resultType};", "{};") # [{
389366
auto op = $_qualCppClassName::create($_builder,
390367
$_location, resultTypes, mlirOperands, mlirAttrs);
391368
}];
392-
string baseMlirBuilderArgAndResultAttrs = [{
393-
moduleImport.convertArgAndResultAttrs(
394-
inst, op, }] # immArgPositionsCpp # [{);
395-
}];
396369
string baseMlirBuilderCoda = !if(!gt(numResults, 0), "$res = op;", "$_op = op;");
397-
let mlirBuilder = baseMlirBuilder
398-
# !if(!gt(requiresFastmath, 0),
370+
let mlirBuilder = baseMlirBuilder # !if(!gt(requiresFastmath, 0),
399371
"moduleImport.setFastmathFlagsAttr(inst, op);", "")
400-
# !if(!gt(requiresArgAndResultAttrs, 0),
401-
baseMlirBuilderArgAndResultAttrs, "")
402372
# baseMlirBuilderCoda;
403373

404374
// Code for handling a `range` attribute that holds the constant range of the
@@ -429,14 +399,14 @@ class LLVM_IntrOp<string mnem, list<int> overloadedResults,
429399
list<int> overloadedOperands, list<Trait> traits,
430400
int numResults, bit requiresAccessGroup = 0,
431401
bit requiresAliasAnalysis = 0, bit requiresFastmath = 0,
432-
bit requiresArgAndResultAttrs = 0, bit requiresOpBundles = 0,
402+
bit requiresOpBundles = 0,
433403
list<int> immArgPositions = [],
434404
list<string> immArgAttrNames = []>
435405
: LLVM_IntrOpBase<LLVM_Dialect, "intr." # mnem, !subst(".", "_", mnem),
436406
overloadedResults, overloadedOperands, traits,
437407
numResults, requiresAccessGroup, requiresAliasAnalysis,
438-
requiresFastmath, requiresArgAndResultAttrs,
439-
requiresOpBundles, immArgPositions, immArgAttrNames>;
408+
requiresFastmath, requiresOpBundles, immArgPositions,
409+
immArgAttrNames>;
440410

441411
// Base class for LLVM intrinsic operations returning no results. Places the
442412
// intrinsic into the LLVM dialect and prefixes its name with "intr.".
@@ -456,14 +426,13 @@ class LLVM_ZeroResultIntrOp<string mnem, list<int> overloadedOperands = [],
456426
list<Trait> traits = [],
457427
bit requiresAccessGroup = 0,
458428
bit requiresAliasAnalysis = 0,
459-
bit requiresArgAndResultAttrs = 0,
460429
bit requiresOpBundles = 0,
461430
list<int> immArgPositions = [],
462431
list<string> immArgAttrNames = []>
463432
: LLVM_IntrOp<mnem, [], overloadedOperands, traits, /*numResults=*/0,
464433
requiresAccessGroup, requiresAliasAnalysis,
465-
/*requiresFastMath=*/0, requiresArgAndResultAttrs,
466-
requiresOpBundles, immArgPositions, immArgAttrNames>;
434+
/*requiresFastMath=*/0, requiresOpBundles, immArgPositions,
435+
immArgAttrNames>;
467436

468437
// Base class for LLVM intrinsic operations returning one result. Places the
469438
// intrinsic into the LLVM dialect and prefixes its name with "intr.". This is
@@ -479,8 +448,7 @@ class LLVM_OneResultIntrOp<string mnem, list<int> overloadedResults = [],
479448
list<string> immArgAttrNames = []>
480449
: LLVM_IntrOp<mnem, overloadedResults, overloadedOperands, traits, 1,
481450
/*requiresAccessGroup=*/0, /*requiresAliasAnalysis=*/0,
482-
requiresFastmath, /*requiresArgAndResultAttrs=*/0,
483-
/*requiresOpBundles=*/0, immArgPositions,
451+
requiresFastmath, /*requiresOpBundles=*/0, immArgPositions,
484452
immArgAttrNames>;
485453

486454
// Base class for LLVM intrinsic operations returning two results. Places the
@@ -497,8 +465,7 @@ class LLVM_TwoResultIntrOp<string mnem, list<int> overloadedResults = [],
497465
list<string> immArgAttrNames = []>
498466
: LLVM_IntrOp<mnem, overloadedResults, overloadedOperands, traits, 2,
499467
/*requiresAccessGroup=*/0, /*requiresAliasAnalysis=*/0,
500-
requiresFastmath, /*requiresArgAndResultAttrs=*/0,
501-
/*requiresOpBundles=*/0, immArgPositions,
468+
requiresFastmath, /*requiresOpBundles=*/0, immArgPositions,
502469
immArgAttrNames>;
503470

504471
def LLVM_OneResultOpBuilder :

0 commit comments

Comments
 (0)