diff options
author | Johannes de Fine Licht <johannes@musicmedia.dk> | 2024-06-12 08:29:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-12 08:29:02 +0200 |
commit | c012e487b7246239c31bd378ab074fb110631186 (patch) | |
tree | 2bc263a8d4f073b19d41a2d0cb6d8f578d6b0aea /llvm/lib/CodeGen/MachineBlockPlacement.cpp | |
parent | 93d4fb032ec1e069cfa5b800f3ca1c807f0d87ac (diff) | |
download | llvm-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