aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineBlockPlacement.cpp
diff options
context:
space:
mode:
authorJohannes de Fine Licht <johannes@musicmedia.dk>2024-06-12 08:29:02 +0200
committerGitHub <noreply@github.com>2024-06-12 08:29:02 +0200
commitc012e487b7246239c31bd378ab074fb110631186 (patch)
tree2bc263a8d4f073b19d41a2d0cb6d8f578d6b0aea /llvm/lib/CodeGen/MachineBlockPlacement.cpp
parent93d4fb032ec1e069cfa5b800f3ca1c807f0d87ac (diff)
downloadllvm-c012e487b7246239c31bd378ab074fb110631186.zip
llvm-c012e487b7246239c31bd378ab074fb110631186.tar.gz
llvm-c012e487b7246239c31bd378ab074fb110631186.tar.bz2
[MLIR][LLVM] Promote noinline/alwaysinline/optnone out of passthrough (#95110)
The `noinline`, `alwaysinline`, and `optnone` function attributes are already being used in MLIR code for the LLVM inlining interface and in some SPIR-V lowering, despite residing in the passthrough dictionary, which is intended as exactly that -- a pass through MLIR -- and not to model any actual semantics being handled in MLIR itself. Promote the `noinline`, `alwaysinline`, and `optnone` attributes out of the passthrough dictionary on `llvm.func` into first class unit attributes, updating the import and export accordingly. Add a verifier to `llvm.func` that checks that these attributes are not set in an incompatible way according to the LLVM specification. Update the LLVM dialect inlining interface to use the first class attributes to check whether inlining is possible.
Diffstat (limited to 'llvm/lib/CodeGen/MachineBlockPlacement.cpp')
0 files changed, 0 insertions, 0 deletions