diff options
author | Amara Emerson <amara@apple.com> | 2025-09-03 10:25:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-03 10:25:52 -0700 |
commit | 4829dedfa9bb3d1e15aaa88cf1ff329c7b0e59de (patch) | |
tree | cc2cf3cca5e9c5181b94b279e9d1878c371d6bf0 /llvm/test/Analysis/DependenceAnalysis | |
parent | 714f6b03bc89bff766ae628092cd059fd8aa0aa1 (diff) | |
download | llvm-main.zip llvm-main.tar.gz llvm-main.tar.bz2 |
This patch implements direct N-way splitting for wide scalar shifts
instead
of recursive binary splitting. For example, an i512 G_SHL can now be
split
directly into 8 i64 operations rather than going through i256 -> i128 ->
i64.
The main motivation behind this is to alleviate (although not entirely
fix)
pathological compile time issues with huge types, like i4224. The
problem
we see is that the recursive splitting strategy combined with our messy
artifact combiner ends up with terribly long compiles as tons of
intermediate
artifacts are generated, and then attempted to be combined ad-nauseum.
Going directly from the large shifts to the destination types
short-circuits
a lot of these issues, but it's still an abuse of the backend and
front-ends
should never be doing this sort of thing.
Diffstat (limited to 'llvm/test/Analysis/DependenceAnalysis')
0 files changed, 0 insertions, 0 deletions