[all-commits] [llvm/llvm-project] db0e7c: Reapply [MLIR][LLVMIR] Import unregistered intrins...

Bruno Cardoso Lopes via All-commits all-commits at lists.llvm.org
Sun Mar 2 19:19:17 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: db0e7c72aff622849abbc92c3ed0d06efb8e2d16
      https://github.com/llvm/llvm-project/commit/db0e7c72aff622849abbc92c3ed0d06efb8e2d16
  Author: Bruno Cardoso Lopes <bruno.cardoso at gmail.com>
  Date:   2025-03-02 (Sun, 02 Mar 2025)

  Changed paths:
    M mlir/include/mlir/Target/LLVMIR/LLVMImportInterface.h
    M mlir/lib/Target/LLVMIR/CMakeLists.txt
    A mlir/lib/Target/LLVMIR/LLVMImportInterface.cpp
    M mlir/test/Target/LLVMIR/Import/import-failure.ll
    A mlir/test/Target/LLVMIR/Import/intrinsic-unregistered.ll

  Log Message:
  -----------
  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 at users.noreply.github.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list