Files
clang-p2996/mlir/test/Target/LLVMIR/Import/function-attributes.ll
Christian Ulmann b72dd6f775 [mlir] Add function_entry_count to LLVMFuncOp
This commit introduces the function_entry_count metadata field to the
LLVMFuncOp and adds both the corresponding import and export
funtionalities.
The import of the function metadata uses the same infrastructure as the
instruction metadata, i.e., it dispatches through a dialect interface.

Reviewed By: gysit

Differential Revision: https://reviews.llvm.org/D141001
2023-01-05 13:40:56 +01:00

51 lines
1.2 KiB
LLVM

; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s
; CHECK: llvm.func internal @func_internal
define internal void @func_internal() {
ret void
}
; CHECK: llvm.func internal spir_funccc @spir_func_internal()
define internal spir_func void @spir_func_internal() {
ret void
}
; // -----
; CHECK-LABEL: @func_readnone
; CHECK-SAME: attributes {llvm.readnone}
; CHECK: llvm.return
define void @func_readnone() readnone {
ret void
}
; CHECK-LABEL: @func_readnone_indirect
; CHECK-SAME: attributes {llvm.readnone}
declare void @func_readnone_indirect() #0
attributes #0 = { readnone }
; // -----
; CHECK-LABEL: @func_arg_attrs
; CHECK-SAME: !llvm.ptr {llvm.byval = i64}
; CHECK-SAME: !llvm.ptr {llvm.byref = i64}
; CHECK-SAME: !llvm.ptr {llvm.sret = i64}
; CHECK-SAME: !llvm.ptr {llvm.inalloca = i64}
define void @func_arg_attrs(
ptr byval(i64) %arg0,
ptr byref(i64) %arg1,
ptr sret(i64) %arg2,
ptr inalloca(i64) %arg3) {
ret void
}
; // -----
; CHECK-LABEL: @entry_count
; CHECK-SAME: attributes {function_entry_count = 4242 : i64}
define void @entry_count() !prof !1 {
ret void
}
!1 = !{!"function_entry_count", i64 4242}