| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[MLIR] Add remark flags to mlir-opt (#156825) | 10 个月前 | |
[mlir][spirv] Make ConvertToSPIRVPass into a test pass (non-public) With the removal of mlir-vulkan-runner (as part of #73457) in e7e3c45bc70904e24e2b3221ac8521e67eb84668, this pass no longer has to be public (previously it had to be so the runner could use it). This commit makes it instead only available for use by mlir-opt. This is a recommit of 058d183980a2f334d085a46c32abded0557aa789 (#124301) which had been reverted in 4573c857da88b3210d497d9a88a89351a74b5964 due to a missing linker dependency on MLIRSPIRVTransforms in mlir/test/lib/Pass/CMakeLists.txt (fixed in this commit). | 1 年前 | |
[mlir][NFC] Drop a few unnecessary includes from Pass.h | 4 年前 | |
[MLIR] Make PassPipelineOptions virtually inheriting from PassOptions to allow diamond inheritance (#146370) ## Problem Given 3 pipelines, A, B, and a superset pipeline AB that runs both the A & B pipelines, it is not easy to manage their options - one needs to manually recreate all options from A and B into AB, and maintain them. This is tedious. ## Proposed solution Ideally, AB options class inherits from both A and B options, making the maintenance effortless. Today though, this causes problems as their base classes PassPipelineOptions<A> and PassPipelineOptions<B> both inherit from mlir::detail::PassOptions, leading to the so called "diamond inheritance problem", i.e. multiple definitions of the same symbol, in this case parseFromString that is defined in mlir::detail::PassOptions. Visually, the inheritance looks like this: mlir::detail::PassOptions ↑ ↑ | | PassPipelineOptions<A> PassPipelineOptions<B> ↑ ↑ | | AOptions BOptions ↑ ↑ +---------+--------+ | ABOptions A proposed fix is to use the common solution to the diamond inheritance problem - virtual inheritance. | 11 个月前 | |
[MLIR] Implement remark emitting policies in MLIR (#161202) This update introduces two new remark emitting policies: 1. RemarkEmittingPolicyAll, which emits all remarks, 2. RemarkEmittingPolicyFinal, which only emits final remarks after processing. The RemarkEngine is modified to support these policies, allowing for more flexible remark handling based on user configuration. PR also adds flag to mlir-opt --remark-policy=<value> - Specify the policy for remark output. =all - Print all remarks =final - Print final remarks Relanding https://github.com/llvm/llvm-project/pull/160526 This PR requires RemarkEngine to be finalize manually. So here is usage: MLIRContext ctx; ctx.setRemarkEngine(...) ... ctx.getRemarkEngine().shutdown() <-- PR adds this, it is required when the emission policy is final | 9 个月前 | |
[mlir] Remove the mlir-spirv-cpu-runner (move to mlir-cpu-runner) (#114563) This commit builds on and completes the work done in 9f6c632ecda08bfff76b798c46d5d7cfde57b5e9 to eliminate the need for a separate mlir-spirv-cpu-runner binary. Since the MLIR processing is already done outside this runner, the only real difference between it and the mlir-cpu-runner is the final linking step between the nested LLVM IR modules. By moving this step into mlir-cpu-runner behind a new command-line flag ( --link-nested-modules), this commit is able to completely remove the runner component of the mlir-spirv-cpu-runner. The runtime libraries and the tests are moved and renamed to fit into the Execution Engine and Integration tests, following the model of the similar migration done for the CUDA Runner in D97463. | 1 年前 | |
[mlir][Transforms] Fix crash in reconcile-unrealized-casts (#158298) The reconcile-unrealized-casts pass used to crash when the input contains circular chains of unrealized_conversion_cast ops. Furthermore, the reconcileUnrealizedCasts helper functions used to erase ops that were not passed via the castOps operand. Such ops are now preserved. That's why some integration tests had to be changed. Also avoid copying the set of all unresolved materializations in convertOperations. This commit is in preparation of turning RewriterBase::replaceOp into a non-virtual function. This is a re-upload of #158067, which was reverted due to CI failures. Note for LLVM integration: If you are seeing tests that are failing with error: LLVM Translation failed for operation: builtin.unrealized_conversion_cast, you may have to add the -reconcile-unrealized-casts pass to your pass pipeline. (Or switch to the -convert-to-llvm pass instead of combining the various -convert-*-to-llvm passes.) --------- Co-authored-by: Mehdi Amini <joker.eph@gmail.com> | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 个月前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 11 个月前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 10 个月前 |