SuccessChanges

Summary

  1. [MLIR][PYTHON] Provide opt level for ExecutionEngine Python binding (details)
  2. [MemCpyOpt] Add test for unreachable capture (NFC) (details)
  3. [CaptureTracking] Do not check domination (details)
  4. Revert "[CaptureTracking] Do not check domination" (details)
Commit 185ce8cdfc7dba6cb6611b04346bfa03d008d5bf by uday
[MLIR][PYTHON] Provide opt level for ExecutionEngine Python binding

Provide an option to specify optimization level when creating an
ExecutionEngine via the MLIR JIT Python binding. Not only is the
specified optimization level used for code generation, but all LLVM
optimization passes at the optimization level are also run prior to
machine code generation (akin to the mlir-cpu-runner tool).

Default opt level continues to remain at level two (-O2).

Contributions in part from Prashant Kumar <prashantk@polymagelabs.com>
as well.

Differential Revision: https://reviews.llvm.org/D102551
The file was modifiedmlir/test/CAPI/execution_engine.c
The file was modifiedmlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp
The file was modifiedmlir/include/mlir-c/ExecutionEngine.h
The file was modifiedmlir/lib/Bindings/Python/ExecutionEngine.cpp
Commit aaf5fd4316917506160078139ac2d860d6096bb3 by nikita.ppv
[MemCpyOpt] Add test for unreachable capture (NFC)

This is based on the test from D90688, without the argmemonly
attribute. The argmemonly attribute would guaranteed no modref
by itself and the question of captures would not arise in the
first place.
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot.ll
Commit 6b8b43e7af3074124e3c9e429e1fb08165799be4 by nikita.ppv
[CaptureTracking] Do not check domination

For the CapturesBefore tracker, it is sufficient to check that
I can not reach BeforeHere. This does not necessarily require
that BeforeHere dominates I, it can also occur if the capture
happens on an entirely disjoint path.

This change was previously accepted in D90688, but had to be
reverted due to large compile-time impact in some cases: It
increases the number of reachability queries that are performed.

After recent changes, the compile-time impact is largely mitigated,
so I'm reapplying this patch. The remaining compile-time impact
is largely proportional to changes in code-size.
The file was modifiedllvm/lib/Analysis/CaptureTracking.cpp
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot.ll
Commit 541c2845ded174f8937433fc8a110a2e644919a6 by nikita.ppv
Revert "[CaptureTracking] Do not check domination"

This reverts commit 6b8b43e7af3074124e3c9e429e1fb08165799be4.

This causes clang test to fail (CodeGenObjC/synchronized.m).
Revert until I can figure out whether that's an expected change.
The file was modifiedllvm/test/Transforms/MemCpyOpt/callslot.ll
The file was modifiedllvm/lib/Analysis/CaptureTracking.cpp