[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