summaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorPhilip Reames <preames@rivosinc.com>2024-06-05 08:05:07 -0700
committerGitHub <noreply@github.com>2024-06-05 08:05:07 -0700
commit0a357adc75aa6f9d6b9fe815a5da937128cfee56 (patch)
tree1845d67c1de9fe0159ad6bc95a2555389d5ff324 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parentf10e71f6d80719c47f3eed117120e74d9d3858c1 (diff)
[SCEV] Support non-constant step in howFarToZero (#94411)
VF * vscale is the canonical step for a scalably vectorized loop, and LFTR canonicalizes to NE loop tests, so having our trip count logic be unable to compute trip counts for such loops is unfortunate. The existing code needed minimal generalization to handle non-constant strides. The tricky cases to be sure we handle correctly are: zero, and -1 (due to the special case of abs(-1) being non-positive). This patch does the full generalization in terms of code structure, but in practice, this seems unlikely to benefit anything beyond the (C * vscale) case. I did some quick investigation, and it seems the context free non-zero, and sign checks are basically never disproved for arbitrary scales. I think we have alternate tactics available for these, but I'm going to return to that in a separate patch.
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions