Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1606,6 +1606,9 @@ static void convertFunctionAttributes(LLVMFuncOp func,
llvmFunc->addFnAttr(llvm::Attribute::NoUnwind);
if (func.getWillReturnAttr())
llvmFunc->addFnAttr(llvm::Attribute::WillReturn);
if (FramePointerKindAttr fpAttr = func.getFramePointerAttr())
llvmFunc->addFnAttr("frame-pointer", stringifyFramePointerKind(
fpAttr.getFramePointerKind()));
convertFunctionMemoryAttributes(func, llvmFunc);
}

Expand Down
12 changes: 12 additions & 0 deletions mlir/test/Target/LLVMIR/llvmir.mlir
Original file line number Diff line number Diff line change
Expand Up @@ -2454,6 +2454,18 @@ llvm.func @preserves_za_func() attributes {arm_preserves_za} {

// -----

//
// frame pointer attribute.
//

// CHECK-LABEL: @t
// CHECK-SAME: #[[FP:.*]]
llvm.func @t(!llvm.ptr) attributes {frame_pointer = #llvm.framePointerKind<"non-leaf">}

// CHECK: attributes #[[FP]] = { "frame-pointer"="non-leaf" }

// -----

//
// Zero-initialize operation.
//
Expand Down