diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2025-03-02 19:18:55 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-02 19:18:55 -0800 |
commit | db0e7c72aff622849abbc92c3ed0d06efb8e2d16 (patch) | |
tree | 3bc251a04640795ed470f0976b76b2bdb4c9b576 /llvm/lib/CodeGen/MachineScheduler.cpp | |
parent | cb7030dbe7f3f1947c31b3059958ff3968cc22ff (diff) | |
download | llvm-db0e7c72aff622849abbc92c3ed0d06efb8e2d16.zip llvm-db0e7c72aff622849abbc92c3ed0d06efb8e2d16.tar.gz llvm-db0e7c72aff622849abbc92c3ed0d06efb8e2d16.tar.bz2 |
Reapply [MLIR][LLVMIR] Import unregistered intrinsics via llvm.intrin… (#129174)
…sic_call
Original introduced in https://github.com/llvm/llvm-project/pull/128626,
reverted in https://github.com/llvm/llvm-project/pull/128973
Reproduced the issue on a shared lib build locally on Linux, moved
content around to satisfy both static and shared lib builds.
### Original commit message
Currently, the llvm importer can only cover intrinsics that have a first
class representation in an MLIR dialect (arm-neon, etc). This PR
introduces a fallback mechanism that allow "unregistered" intrinsics to
be imported by using the generic `llvm.intrinsic_call` operation. This
is useful in several ways:
1. Allows round-trip the LLVM dialect output lowered from other dialects
(example: ClangIR)
2. Enables MLIR-linking tools to operate on imported LLVM IR without
requiring to add new operations to dozen of different targets.
If multiple dialects implement this interface hook, the last one to
register is the one converting all unregistered intrinsics.
---------
Co-authored-by: Bruno Cardoso Lopes <bcardosolopes@users.noreply.github.com>
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
0 files changed, 0 insertions, 0 deletions