| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
| 11 个月前 | ||
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Split header and merge block in mlir.selections (#134875) In the example below with the current code the first selection construct (if/else in GLSL for simplicity) share its merge block with a header block of the second construct. bool _115; if (_107) { // ... _115 = _200 < _174; } else { _115 = _107; } bool _123; if (_115) { // ... _123 = _213 < _174; } else { _123 = _115; } This results in a malformed nesting of mlir.selection instructions where one selection ends up inside a header block of another selection construct. For example: %61 = spirv.mlir.selection -> i1 { %80 = spirv.mlir.selection -> i1 { spirv.BranchConditional %60, ^bb1, ^bb2(%60 : i1) ^bb1: // pred: ^bb0 // ... spirv.Branch ^bb2(%101 : i1) ^bb2(%102: i1): // 2 preds: ^bb0, ^bb1 spirv.mlir.merge %102 : i1 } spirv.BranchConditional %80, ^bb1, ^bb2(%80 : i1) ^bb1: // pred: ^bb0 // ... spirv.Branch ^bb2(%90 : i1) ^bb2(%91: i1): // 2 preds: ^bb0, ^bb1 spirv.mlir.merge %91 : i1 } This change ensures that the merge block of one selection is not a header block of another, splitting blocks if necessary. The existing block splitting mechanism is updated to handle this case. | 1 年前 | |
[mlir][spirv] Fix constant.mlir test (#152015) Fix forward a few issues instead of reverting recent PRs.... 1. Remove split so that the output is properly serialized. This got added in #145687. 2. Add missing extensions and capabilities so that the spirv-val passes (tensors_arm, linkage). 3. Disable spirv-val test for arm tensor constants. These fail to verify. Added in #151485. Issue: #152012 | 11 个月前 | |
[mlir][spirv] Conditionally add SPV_KHR_non_semantic_info extension u… (#152686) …pon serialization If serialization option emitDebugInfo is enabled, then it is required to serialize SPV_KHR_non_semantic_info extension provided that it is available in the target environment. --------- Signed-off-by: Mohammadreza Ameri Mahabadian <mohammadreza.amerimahabadian@arm.com> | 11 个月前 | |
[mlir][spirv] Conditionally add SPV_KHR_non_semantic_info extension u… (#152686) …pon serialization If serialization option emitDebugInfo is enabled, then it is required to serialize SPV_KHR_non_semantic_info extension provided that it is available in the target environment. --------- Signed-off-by: Mohammadreza Ameri Mahabadian <mohammadreza.amerimahabadian@arm.com> | 11 个月前 | |
[mlir][spirv] Enable validation of decorations target tests (#165229) The Intel Cache Control tests are separated and not validated as spirv-val fails with: "ID '7' decorated with CacheControlLoadINTEL multiple times is not allowed". However, Intel extension does allow duplicated decoration if cache level in each annotation is different. It seems that spirv-val does not currently support it. | 8 个月前 | |
[mlir][spirv] Enable validation of decorations target tests (#165229) The Intel Cache Control tests are separated and not validated as spirv-val fails with: "ID '7' decorated with CacheControlLoadINTEL multiple times is not allowed". However, Intel extension does allow duplicated decoration if cache level in each annotation is different. It seems that spirv-val does not currently support it. | 8 个月前 | |
[mlir][spirv] Fix entry point, logical ops and sampled image Target tests (#159376) For the entry point an incorrect combination of execution model and mode was used as well as arguments were specified for the entry function (the function should take no arguments). For logical ops the test was failing as using scalar condition with vector objects are not supported in spv1.0. Sampled image test was using incorrect *Sampled* and *Dim* values. Sampled images need to have *Sampled* operand of 0 or 1, but not 2 ( NoSampler), and SubpassData is not allowed. | 10 个月前 | |
[mlir][spirv] Fix execution mode and function call Target tests (#159323) It fixes the problem where the execution mode is not valid for the given entry point ( LocalSizeHint requires Kernel) and where an Input storage class pointer is incorrectly passed to a function call (there is a restriction on what storage classes are allowed for pointer operands to an OpFunctionCall, see "2.16.1. Universal Validation Rules"). | 10 个月前 | |
[mlir][spirv] Fix execution mode and function call Target tests (#159323) It fixes the problem where the execution mode is not valid for the given entry point ( LocalSizeHint requires Kernel) and where an Input storage class pointer is incorrectly passed to a function call (there is a restriction on what storage classes are allowed for pointer operands to an OpFunctionCall, see "2.16.1. Universal Validation Rules"). | 10 个月前 | |
[mlir][spirv] Ensure function declarations precede definitions (#164956) SPIR-V spec requires that any calls to external functions are preceded by declarations of those external functions. To simplify the implementation, we sort functions in the serializer using a stronger condition: any functions declarations are moved before any functions definitions - this ensures that external functions are always declared before being used. | 8 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Enable validation of global vars tests (#164974) Currently the target test will fail with: error: line 12: Initializer type must match the data type %var2 = OpVariable %_ptr_Uniform_float Uniform %var1 When passed: mlir spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], []> { spirv.GlobalVariable @var1 : !spirv.ptr<f32, Uniform> spirv.GlobalVariable @var2 initializer(@var1) bind(1, 0) : !spirv.ptr<f32, Uniform> } The problem is that we try to initialize f32 pointer with f32 pointer, but the validator fails because it expects var1 to be f32, not a pointer to f32. spirv.GlobalVariable only allows pointer type, so in the current design we cannot initialize one spirv.GlobalVariable with another. So, for now we disallow initialization of one global variable with another. In the future we may want to re-work global variables if we want to support that. | 8 个月前 | |
[mlir][spirv] Add support for SPV_ARM_graph extension - part 2 (#156665) This is the second patch to add support for the SPV_ARM_graph SPIR-V extension to MLIR’s SPIR-V dialect. The extension introduces a new Graph abstraction for expressing dataflow computations over full resources. The part 2 implementation includes: - Serialization and deserialization support for: - OpGraphARM, OpGraphInputARM, OpGraphSetOutputARM, OpGraphEndARM - OpGraphEntryPointARM, OpGraphConstantARM, OpTypeGraphARM - Tests covering binary round-tripping. Graphs currently support only SPV_ARM_tensors, but are designed to generalize to other resource types, such as images. Spec: https://github.com/KhronosGroup/SPIRV-Registry/pull/346 RFC: https://discourse.llvm.org/t/rfc-add-support-for-spv-arm-graph-extension-in-mlir-spir-v-dialect/86947 --------- Signed-off-by: Davide Grohmann <davide.grohmann@arm.com> | 10 个月前 | |
[mlir][spirv] Fix Intel SubgroupBlock* op tests (#166185) spirv-val learned how to check related ops. Move them to a new test file and set the required capabilities. Closes: https://github.com/llvm/llvm-project/issues/166184 | 8 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Change translation to use spirv.module Update the SPIRV mlir-translate translations to translate to/from spirv.module instead of builtin.module. This simplifies the translation since the code no longer needs to walk the module looking for a SPIRV module, however it requires passing -no-implicit-module to all the tests. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D135819 | 3 年前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
Reland "[mlir][spirv] Fix int type declaration duplication when serializing" (#145687) This relands PRs #143108 and #144538. The original PR was reverted due to a mistake that made all the mlir tests run only if SPIRV target was enabled. This is now resolved since enabling spirv-tools does not required SPIRV target any longer. spirv-tools are not required by default to run SPIRV mlir tests, but they can be optionally enabled in some SPIRV mlir test to verify that the produced SPIRV assembly pass validation. The other reverted PR #144685 is not longer needed and not part of this relanding. Original commit message: > At the MLIR level unsigned integer and signless integers are different types. Indeed when looking up the two types in type definition cache they do not match. > Hence when translating a SPIR-V module which contains both usign and signless integers will contain the same type declaration twice (something like OpTypeInt 32 0) which is not permitted in SPIR-V and such generated modules fail validation. > This patch solves the problem by mapping unisgned integer types to singless integer types before looking up in the type definition cache. --------- Signed-off-by: Davide Grohmann <davide.grohmann@arm.com> | 11 个月前 | |
[mlir][spirv] Fix entry point, logical ops and sampled image Target tests (#159376) For the entry point an incorrect combination of execution model and mode was used as well as arguments were specified for the entry function (the function should take no arguments). For logical ops the test was failing as using scalar condition with vector objects are not supported in spv1.0. Sampled image test was using incorrect *Sampled* and *Dim* values. Sampled images need to have *Sampled* operand of 0 or 1, but not 2 ( NoSampler), and SubpassData is not allowed. | 10 个月前 | |
[mlir][spirv] Add validation for loop and struct tests (#166803) This adds missing extensions and capabilities to both tests, and missing offsets in the struct tests. Once this patch is merged all tests that can be validated are. | 8 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[MLIR] Drop use of REQUIRES:shell from tests (#168989) This patch drops two instances of REQUIRES: shell from MLIR tests. This feature does not mean much given the internal shell is the default for MLIR. It does prevent these tests from running on Windows, but it does not seem like there is anything inherent to these tests preventing them from running on Windows (minus maybe the lack of spirv-tools, which is explicitly required anyways. | 8 个月前 | |
[MLIR] Drop use of REQUIRES:shell from tests (#168989) This patch drops two instances of REQUIRES: shell from MLIR tests. This feature does not mean much given the internal shell is the default for MLIR. It does prevent these tests from running on Windows, but it does not seem like there is anything inherent to these tests preventing them from running on Windows (minus maybe the lack of spirv-tools, which is explicitly required anyways. | 8 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Enable validation of selection and phi tests (#166794) Some of the test cases are failing as they introduce unstructured control flow. It would be good to catch this in MLIR, but I am not sure it is currently feasible. We could enforce the conditional branch to always be in spirv.mlir.selection however from my perspective it will break our downstream project as we rely on unstructured control flow, i.e., the control flow graph is structured but we do not use spirv.mlir.selection and spirv.mlir.loop as they do not currently support early exists. It seems that the support for early exists is slowly coming into MLIR so we probably can revise what is being enforced regarding control flow ops in the future. | 8 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Fix constant.mlir test (#152015) Fix forward a few issues instead of reverting recent PRs.... 1. Remove split so that the output is properly serialized. This got added in #145687. 2. Add missing extensions and capabilities so that the spirv-val passes (tensors_arm, linkage). 3. Disable spirv-val test for arm tensor constants. These fail to verify. Added in #151485. Issue: #152012 | 11 个月前 | |
[mlir][spirv] Fix entry point, logical ops and sampled image Target tests (#159376) For the entry point an incorrect combination of execution model and mode was used as well as arguments were specified for the entry function (the function should take no arguments). For logical ops the test was failing as using scalar condition with vector objects are not supported in spv1.0. Sampled image test was using incorrect *Sampled* and *Dim* values. Sampled images need to have *Sampled* operand of 0 or 1, but not 2 ( NoSampler), and SubpassData is not allowed. | 10 个月前 | |
[mlir][spirv] Add support for SwitchOp (#168713) The dialect implementation mostly copies the one of cf.switch, but aligns naming to the SPIR-V spec. | 8 个月前 | |
[mlir][spirv] Split conditional basic blocks during deserialization (#127639) With the current design some of the values are sank into a selection region, despite them being also used outside that region. This is because the current deserializer logic sinks the entire basic block containing a conditional branch forming a header of a selection construct, without accounting for some values being used outside. This manifests as (for example): <unknown>:0: error: 'spirv.Variable' op failed control flow structurization: it has uses outside of the enclosing selection/loop construct <unknown>:0: note: see current operation: %0 = "spirv.Variable"()<{storage_class = #spirv.storage_class<Function>}> : () -> !spirv.ptr<vector<4xf32>, Function> The proposed solution to this problem is to split the conditional basic block into two, one block containing just the conditional branch, and other the rest of instructions. By doing this, the logic that structures selection regions, only sinks the comparison, keeping the rest of instructions outside the selection region. A SPIR-V test is required, as the problem can happen only during deserialization and cannot be tested with --test-spirv-roundtrip. An MLIR test exhibiting the problematic behaviour would be an incorrect MLIR in the first place. This solution is proposed as an alternative to an unfinished PR #123371, that is unlikely to be merged in the foreseeable future, as the author "stepped away from this for a time being". There is also a Discourse thread: https://discourse.llvm.org/t/spir-v-uses-outside-the-selection-region/84494 that tried to solicit some feedback on the topic. | 1 年前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation for loop and struct tests (#166803) This adds missing extensions and capabilities to both tests, and missing offsets in the struct tests. Once this patch is merged all tests that can be validated are. | 8 个月前 | |
[mlir][spirv] Fix Intel SubgroupBlock* op tests (#166185) spirv-val learned how to check related ops. Move them to a new test file and set the required capabilities. Closes: https://github.com/llvm/llvm-project/issues/166184 | 8 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 | |
[mlir][spirv] Add validation and missing capabilities in Target tests (#159139) This change adds calls to spirv-val in selected Target tests and fixes missing and broken capabilities. Tests that require fixes beyond simple capability changes are left untouched. | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 10 个月前 | ||
| 11 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 3 年前 | ||
| 10 个月前 | ||
| 11 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 11 个月前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 |