[all-commits] [llvm/llvm-project] c836b4: [mlir] Verify TestBuiltinAttributeInterfaces eltyp...

Rik Huijzer via All-commits all-commits at lists.llvm.org
Mon Oct 23 08:03:06 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c836b4ad6cd005766dfe1b29c81fe1b667e50e1c
      https://github.com/llvm/llvm-project/commit/c836b4ad6cd005766dfe1b29c81fe1b667e50e1c
  Author: Rik Huijzer <github at huijzer.xyz>
  Date:   2023-10-23 (Mon, 23 Oct 2023)

  Changed paths:
    M mlir/test/IR/elements-attr-interface.mlir
    M mlir/test/lib/IR/TestBuiltinAttributeInterfaces.cpp

  Log Message:
  -----------
  [mlir] Verify TestBuiltinAttributeInterfaces eltype (#69878)

Fixes #61871 and fixes #60581.

This PR fixes two small things. First and foremost, it throws a clear
error in the `-test-elements-attr-interface` when those tests are called
on elements which are not an integer. I've looked through the
introduction of the attribute interface
(https://reviews.llvm.org/D109190) and later commits and see no evidence
that the interface (`attr.tryGetValues<T>()`) is expected to handle
mismatching types.

For example, the case which is given in #61871 is:
```mlir
arith.constant sparse<[[0, 0, 5]],  -2.0> : vector<1x1x10xf16>
```
So, a sparse vector containing `f16` elements. This will crash at
various locations when called in the test because the test introduces
integer types (`int64_t`, `uint64_t`, `APInt`, `IntegerAttr`), but as I
said in the previous paragraph: I see no reason to believe that the
implementation of the interface is wrong here. The interface just
assumes that clients don't do things like `attr.tryGetValues<APInt>()`
on a floating point `attr`.

Also I've added a test for the implementation of this interface by the
`sparse` dialect. There were no problems there. Still, probably good to
increase code coverage on that one.




More information about the All-commits mailing list