[PATCH] D122939: [NVPTX][tests] Do not run the test CodeGen/Generic/2010-11-04-BigByval.ll
Daniil Kovalev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 4 14:25:11 PDT 2022
kovdan01 added a comment.
I’m currently working on a patch solving a similar problem (actually, an inseparable chain of problems).
- When compiling code with large structs (~1 million elements), got “Assertion `NumBits <= MAX_INT_BITS && "bitwidth too large"' failed.”
- Fixed that, but needed a test for the fix – and it turned out that we can’t create structs with (1<<16) elements and more because `NumValues` in `SDNode` is 16-bit width (when passing structs, we create `merge_values` node in `LowerArguments`). So had to widen `NumValues` and other similar fields.
- Just widening does not solve the problem because some functions have quadratic complexity of `NumValues` (for instance, `SDValue::hasOneUse`→`SDNode::hasNUsesOfValue`). But they only need `SDNode` uses corresponging to a single `ResNo`, so I decided to split `UseList` in `SDNode` corresponding to `ResNo`’s.
- The patch is more or less ready, but now I work on performance testing – we need to be sure that additional fields and logic about splitted `UseList` does not decrease performance. It is already clear that performance increases drastically on cases when we have structs with enormous number of elements, but we also need to check normal cases too.
I suppose that the problem you are discussing here will be solved by the patch I described above in middle-term perspective.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D122939/new/
https://reviews.llvm.org/D122939
More information about the llvm-commits
mailing list