[Arc] Allow VectorizeOp body to have multiple results
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
The `arc.vectorize` op currently doesn't allow its body region to produce more than one result. This is a limitation in MLIR, which does not support VariadicOfVariadic results yet. VariadicOfVariadic operands _do_ work however, which is why the vectorize op can have multiple operands. The vectorize op should definitely allow for multiple results, in order to allow for larger vectors to be formed.
Either add VariadicOfVariadic result support upstream in MLIR, or manually add the necessary result segment size attribute and result accessors to `VectorizeOp` here in CIRCT.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by inspecting the VectorizeOp definition and its existing VariadicOfVariadic operand handling. Determine whether result support should be added upstream in MLIR or locally with result segment size handling and accessors; done means arc.vectorize accepts bodies producing multiple results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100