Skip to content

Commit 9a2b8d4

Browse files
committed
Fix importer tail kind conversion
1 parent 28c1926 commit 9a2b8d4

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

mlir/lib/Target/LLVMIR/ModuleImport.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2195,15 +2195,18 @@ LogicalResult ModuleImport::convertInstruction(llvm::Instruction *inst) {
21952195
if (!resultTy)
21962196
return failure();
21972197
ArrayAttr operandAttrs = convertAsmInlineOperandAttrs(*callInst);
2198+
bool hasTailCallKind =
2199+
callInst->getTailCallKind() != llvm::CallInst::TCK_None;
21982200
return builder
21992201
.create<InlineAsmOp>(
22002202
loc, resultTy, *operands,
22012203
builder.getStringAttr(asmI->getAsmString()),
22022204
builder.getStringAttr(asmI->getConstraintString()),
22032205
asmI->hasSideEffects(), asmI->isAlignStack(),
2204-
callInst->isTailCall()
2206+
hasTailCallKind
22052207
? TailCallKindAttr::get(mlirModule.getContext(),
2206-
TailCallKind::Tail)
2208+
convertTailCallKindFromLLVM(
2209+
callInst->getTailCallKind()))
22072210
: nullptr,
22082211
AsmDialectAttr::get(
22092212
mlirModule.getContext(),

mlir/test/Target/LLVMIR/Import/instructions.ll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,9 @@ define void @inlineasm2() {
556556
; CHECK: {{.*}} = llvm.alloca %0 x !llvm.ptr {alignment = 8 : i64} : (i32) -> !llvm.ptr
557557
; CHECK-NEXT: llvm.inline_asm has_side_effects tail_call_kind = <tail> asm_dialect = att operand_attrs = [{elementtype = !llvm.ptr}] "", "*m,~{memory}" {{.*}} : (!llvm.ptr) -> !llvm.void
558558
tail call void asm sideeffect "", "*m,~{memory}"(ptr elementtype(ptr) %p)
559+
560+
; CHECK: llvm.inline_asm has_side_effects tail_call_kind = <notail> asm_dialect = att operand_attrs = [{elementtype = !llvm.ptr}] "", "*m,~{memory}" {{.*}} : (!llvm.ptr) -> !llvm.void
561+
notail call void asm sideeffect "", "*m,~{memory}"(ptr elementtype(ptr) %p)
559562
ret void
560563
}
561564

0 commit comments

Comments
 (0)