diff options
author | Philip Reames <preames@rivosinc.com> | 2023-08-22 07:58:22 -0700 |
---|---|---|
committer | Philip Reames <listmail@philipreames.com> | 2023-08-22 07:59:49 -0700 |
commit | c3b48ec6ff92c47cd6136ee25360d31952a3adf2 (patch) | |
tree | 123934ed1ffde90cf6913a902fdaebaa58cd3e1c /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | 1083ae23471839878153412d9c78955d9a7a29ac (diff) | |
download | llvm-c3b48ec6ff92c47cd6136ee25360d31952a3adf2.zip llvm-c3b48ec6ff92c47cd6136ee25360d31952a3adf2.tar.gz llvm-c3b48ec6ff92c47cd6136ee25360d31952a3adf2.tar.bz2 |
[RISCV] Match strided loads with reversed indexing sequences
This extends the concat_vector of loads to strided_load transform to handle reversed index pattern. The previous code expected indexing of the form (a0, a1+S, a2+S,...). However, we can also see indexing of the form (a1+S, a2+S, a3+S, .., aS). This form is a strided load starting at address aN + S*(n-1) with stride -S.
Note that this is also fixing what looks to be a bug in the memory location reasoning for forward strided case. A strided load with negative stride access eltsize bytes past base ptr, and then bytes *before* base ptr. (That is, the range should extend from before base ptr to after base ptr.)
Differential Revision: https://reviews.llvm.org/D157886
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
0 files changed, 0 insertions, 0 deletions