@@ -758,9 +758,9 @@ def LLVM_CallOp : LLVM_MemAccessOpBase<"call",
758758 the LLVM function type that uses an explicit void type to model functions
759759 that do not return a value.
760760
761- If this operatin has the `no_inline` attribute, then this specific function call
762- will never be inlined. The opposite behavior will occur if the call has `always_inline`
763- attribute. The `inline_hint` attribute indicates that it is desirable to inline
761+ If this operatin has the `no_inline` attribute, then this specific function call
762+ will never be inlined. The opposite behavior will occur if the call has `always_inline`
763+ attribute. The `inline_hint` attribute indicates that it is desirable to inline
764764 this function call.
765765
766766 Examples:
@@ -2298,13 +2298,17 @@ def LLVM_InlineAsmOp : LLVM_Op<"inline_asm", [DeclareOpInterfaceMethods<MemoryEf
22982298 written, or referenced.
22992299 Attempting to define or reference any symbol or any global behavior is
23002300 considered undefined behavior at this time.
2301+ If `tail_call_kind` is used, the operation behaves like the specified
2302+ tail call kind. The `musttail` kind it's not available for this operation,
2303+ since it isn't supported by LLVM's inline asm.
23012304 }];
23022305 let arguments = (
23032306 ins Variadic<LLVM_Type>:$operands,
23042307 StrAttr:$asm_string,
23052308 StrAttr:$constraints,
23062309 UnitAttr:$has_side_effects,
23072310 UnitAttr:$is_align_stack,
2311+ DefaultValuedAttr<TailCallKind, "TailCallKind::None">:$tail_call_kind,
23082312 OptionalAttr<
23092313 DefaultValuedAttr<AsmATTOrIntel, "AsmDialect::AD_ATT">>:$asm_dialect,
23102314 OptionalAttr<ArrayAttr>:$operand_attrs);
@@ -2314,6 +2318,7 @@ def LLVM_InlineAsmOp : LLVM_Op<"inline_asm", [DeclareOpInterfaceMethods<MemoryEf
23142318 let assemblyFormat = [{
23152319 (`has_side_effects` $has_side_effects^)?
23162320 (`is_align_stack` $is_align_stack^)?
2321+ (`tail_call_kind` `=` $tail_call_kind^)?
23172322 (`asm_dialect` `=` $asm_dialect^)?
23182323 (`operand_attrs` `=` $operand_attrs^)?
23192324 attr-dict
@@ -2326,6 +2331,8 @@ def LLVM_InlineAsmOp : LLVM_Op<"inline_asm", [DeclareOpInterfaceMethods<MemoryEf
23262331 return "elementtype";
23272332 }
23282333 }];
2334+
2335+ let hasVerifier = 1;
23292336}
23302337
23312338//===--------------------------------------------------------------------===//
0 commit comments