| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][benchmark] Fix broken benchmark script (#68841) The mbr script was broken, so this patch fixes it to follow the latest python binding. | 2 年前 | |
[mlir] Make MLIR Python sources idempotent (#97167) Make MLIR Python sources idempotent by moving the custom commands off the custom target for each source. Previously, a custom target was created for each MLIR Python source file and a custom command added to symlink it to a destination path. However this causes the build to not be idempotent because custom targets always run. Instead, this PR separates the symlink/copy to destination paths into custom commands and makes the custom target depend on the output. That prevents re-running them and restores idempotency. Testing: - Build with -D MLIR_ENABLE_BINDINGS_PYTHON=ON. Prior to this change, the build is not idempotent (building twice re-runs the symlink/copy command for Python source targets). After this change it is idempotent. | 2 年前 | |
[mlir][docs] Update documentation for canonicalize. (#99753) Update canonicalize docs. | 2 年前 | |
mlir/LogicalResult: move into llvm (#97309) This patch is part of a project to move the Presburger library into LLVM. | 2 年前 | |
[MLIR][LLVM] Always print variadic callee type (#99293) This commit updates the LLVM dialect CallOp and InvokeOp to always print the variadic callee type (previously callee type) if present. An additional verifier checks that only variadic calls have a non-null variadic callee type, and the builders are adapted accordingly to set the variadic callee type for variadic calls only. Finally, the CallOp and InvokeOp verifiers are strengthened to check that the variadic callee type matches the call argument and result types. The motivation of this change is that CallOp and InvokeOp don't have hidden state that is not pretty printed, but used during the export to LLVM IR. Previously, it could happen that a call looked correct in MLIR, but the return type changed after exporting to LLVM IR (since it has been taken from the hidden callee type attribute). After landing this change, this is not possible anymore since the variadic callee type is always printed if present. | 2 年前 | |
Fix sign of largest known divisor of div. (#100081) There's a missing abs, so it returns a negative value if the divisor is negative. Later this is then cast to uint. | 2 年前 | |
[MLIR] Add f8E4M3 IEEE 754 type (#97118) This PR adds f8E4M3 type to mlir. f8E4M3 type follows IEEE 754 convention c f8E4M3 (IEEE 754) - Exponent bias: 7 - Maximum stored exponent value: 14 (binary 1110) - Maximum unbiased exponent value: 14 - 7 = 7 - Minimum stored exponent value: 1 (binary 0001) - Minimum unbiased exponent value: 1 − 7 = −6 - Precision specifies the total number of bits used for the significand (mantisa), including implicit leading integer bit = 3 + 1 = 4 - Follows IEEE 754 conventions for representation of special values - Has Positive and Negative zero - Has Positive and Negative infinity - Has NaNs Additional details: - Max exp (unbiased): 7 - Min exp (unbiased): -6 - Infinities (+/-): S.1111.000 - Zeros (+/-): S.0000.000 - NaNs: S.1111.{001, 010, 011, 100, 101, 110, 111} - Max normal number: S.1110.111 = +/-2^(7) x (1 + 0.875) = +/-240 - Min normal number: S.0001.000 = +/-2^(-6) - Max subnormal number: S.0000.111 = +/-2^(-6) x 0.875 = +/-2^(-9) x 7 - Min subnormal number: S.0000.001 = +/-2^(-6) x 0.125 = +/-2^(-9) Related PRs: - [PR-97179](https://github.com/llvm/llvm-project/pull/97179) [APFloat] Add support for f8E4M3 IEEE 754 type | 2 年前 | |
[MLIR][LLVM] Always print variadic callee type (#99293) This commit updates the LLVM dialect CallOp and InvokeOp to always print the variadic callee type (previously callee type) if present. An additional verifier checks that only variadic calls have a non-null variadic callee type, and the builders are adapted accordingly to set the variadic callee type for variadic calls only. Finally, the CallOp and InvokeOp verifiers are strengthened to check that the variadic callee type matches the call argument and result types. The motivation of this change is that CallOp and InvokeOp don't have hidden state that is not pretty printed, but used during the export to LLVM IR. Previously, it could happen that a call looked correct in MLIR, but the return type changed after exporting to LLVM IR (since it has been taken from the hidden callee type attribute). After landing this change, this is not possible anymore since the variadic callee type is always printed if present. | 2 年前 | |
[mlir][spirv] Implement vector type legalization for function signatures (#98337) ### Description This PR implements a minimal version of function signature conversion to unroll vectors into 1D and with a size supported by SPIR-V (2, 3 or 4 depending on the original dimension). This PR also includes new unit tests that only check for function signature conversion. ### Future Plans - Check for capabilities that support vectors of size 8 or 16. - Set up OneToNTypeConversion and DialectConversion to replace the current implementation that uses GreedyPatternRewriteDriver. - Introduce other vector unrolling patterns to cancel out the vector.insert_strided_slice and vector.extract_strided_slice ops and fully legalize the vector types in the function body. - Handle func::CallOp and declarations. - Restructure the code in SPIRVConversion.cpp. - Create test passes for testing sets of patterns in isolation. - Optimize the way original shape is splitted into target shapes, e.g. vector<5xi32> can be splitted into vector<4xi32> and vector<1xi32>. --------- Co-authored-by: Jakub Kuderski <kubakuderski@gmail.com> | 2 年前 | |
Fix sign of largest known divisor of div. (#100081) There's a missing abs, so it returns a negative value if the divisor is negative. Later this is then cast to uint. | 2 年前 | |
[MLIR] Add f8E4M3 IEEE 754 type (#97118) This PR adds f8E4M3 type to mlir. f8E4M3 type follows IEEE 754 convention c f8E4M3 (IEEE 754) - Exponent bias: 7 - Maximum stored exponent value: 14 (binary 1110) - Maximum unbiased exponent value: 14 - 7 = 7 - Minimum stored exponent value: 1 (binary 0001) - Minimum unbiased exponent value: 1 − 7 = −6 - Precision specifies the total number of bits used for the significand (mantisa), including implicit leading integer bit = 3 + 1 = 4 - Follows IEEE 754 conventions for representation of special values - Has Positive and Negative zero - Has Positive and Negative infinity - Has NaNs Additional details: - Max exp (unbiased): 7 - Min exp (unbiased): -6 - Infinities (+/-): S.1111.000 - Zeros (+/-): S.0000.000 - NaNs: S.1111.{001, 010, 011, 100, 101, 110, 111} - Max normal number: S.1110.111 = +/-2^(7) x (1 + 0.875) = +/-240 - Min normal number: S.0001.000 = +/-2^(-6) - Max subnormal number: S.0000.111 = +/-2^(-6) x 0.875 = +/-2^(-9) x 7 - Min subnormal number: S.0000.001 = +/-2^(-6) x 0.125 = +/-2^(-9) Related PRs: - [PR-97179](https://github.com/llvm/llvm-project/pull/97179) [APFloat] Add support for f8E4M3 IEEE 754 type | 2 年前 | |
[mlir] Add missing newline at end of .clang-format file | 4 年前 | |
[mlir] Disable misc-const-correctness clang-tidy check. https://clang.llvm.org/extra/clang-tidy/checks/misc/const-correctness.html | 3 年前 | |
[mlir] Revise IDE folder structure (#89749) Update the folder titles for targets in the monorepository that have not seen taken care of for some time. These are the folders that targets are organized in Visual Studio and XCode ( set_property(TARGET <target> PROPERTY FOLDER "<title>")) when using the respective CMake's IDE generator. * Ensure that every target is in a folder * Use a folder hierarchy with each LLVM subproject as a top-level folder * Use consistent folder names between subprojects * When using target-creating functions from AddLLVM.cmake, automatically deduce the folder. This reduces the number of set_property/set_target_property, but are still necessary when add_custom_target, add_executable, add_library, etc. are used. A LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's root CMakeLists.txt. | 2 年前 | |
Add the Apache2 with LLVM exceptions license to MLIR It seems that every subproject has a license file instead of having a top-level one. | 6 年前 | |
mlir README.md: Fix the syntax | 6 年前 |
Multi-Level Intermediate Representation
See https://mlir.llvm.org/ for more information.