ExecutionEngine: provide a hook for LLVM IR passes

The current ExecutionEngine flow generates the LLVM IR from MLIR and
JIT-compiles it as is without any transformation.  It thus misses the
opportunity to perform optimizations supported by LLVM or collect statistics
about the module.  Modify the Orc JITter to perform transformations on the LLVM
IR.  Accept an optional LLVM module transformation function when constructing
the ExecutionEngine and use it while JIT-compiling.  This prevents MLIR
ExecutionEngine from depending on LLVM passes; its clients should depend on the
passes they require.

PiperOrigin-RevId: 232877060
2 files changed
tree: 05e14a7e0357f33d7727fff11fdec675827334f9
  1. bindings/
  2. g3doc/
  3. include/
  4. lib/
  5. test/
  6. tools/
  7. utils/
  8. .clang-format
  9. LICENSE.TXT