| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][Transforms] Dialect Conversion Driver without Rollback (#151865) This commit improves the allowPatternRollback flag handling in the dialect conversion driver. Previously, this flag was used to merely detect cases that are incompatible with the new One-Shot Dialect Conversion driver. This commit implements the driver itself: when the flag is set to "false", all IR changes are materialized immediately, bypassing the IRRewrite and ConversionValueMapping infrastructure. A few selected test cases now run with both the old and the new driver. RFC: https://discourse.llvm.org/t/rfc-a-new-one-shot-dialect-conversion-driver/79083 | 11 个月前 | |
[mlir][flang] Added Weighted[Region]BranchOpInterface's. (#142079) The new interfaces provide getters and setters for the weight information about the branches of BranchOpInterface and RegionBranchOpInterface operations. These interfaces are done the same way as LLVM dialect's BranchWeightOpInterface. The plan is to produce this information in Flang, e.g. mark most probably "cold" code as such and allow LLVM to order basic blocks accordingly. An example of such a code is copy loops generated for arrays repacking - we can mark it as "cold" assuming that the copy will not happen dynamically. If the copy actually happens the overhead of the copy is probably high enough so that we may not care about the little overhead of jumping to the "cold" code and fetching it. | 1 年前 | |
[mlir][CF] Split cf-to-llvm from func-to-llvm (#120580) Do not run cf-to-llvm as part of func-to-llvm. This commit fixes https://github.com/llvm/llvm-project/issues/70982. This commit changes the way how func.func ops are lowered to LLVM. Previously, the signature of the entire region (i.e., entry block and all other blocks in the func.func op) was converted as part of the func.func lowering pattern. Now, only the entry block is converted. The remaining block signatures are converted together with cf.br and cf.cond_br as part of cf-to-llvm. All unstructured control flow is not converted as part of a single pass (cf-to-llvm). func-to-llvm no longer deals with unstructured control flow. Also add more test cases for control flow dialect ops. Note: This PR is in preparation of #120431, which adds an additional GPU-specific lowering for cf.assert. This was a problem because cf.assert used to be converted as part of func-to-llvm. Note for LLVM integration: If you see failures, add -convert-cf-to-llvm to your pass pipeline. | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 |