@@ -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