[all-commits] [llvm/llvm-project] 368cb4: [ASAN] Support memory checks on scalable vector ty...
Philip Reames via All-commits
all-commits at lists.llvm.org
Fri Mar 10 16:20:45 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 368cb421c396edcc4fa2a708f8ebb0cc56925424
https://github.com/llvm/llvm-project/commit/368cb421c396edcc4fa2a708f8ebb0cc56925424
Author: Philip Reames <preames at rivosinc.com>
Date: 2023-03-10 (Fri, 10 Mar 2023)
Changed paths:
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
M llvm/test/Instrumentation/AddressSanitizer/asan-masked-load-store.ll
Log Message:
-----------
[ASAN] Support memory checks on scalable vector typed masked load and store
This takes the approach of using the loop based formation for scalable vectors only. We could potentially use the loop form for fixed vectors only, but we'd loose the unroll and specialize on constant vector logic which is already present. I don't have a strong opinion on whether the existing logic is worthwhile, I kept it mostly to minimize test churn.
Worth noting is that there is a better lowering available. The plain vector lowering appears to check only the first and last byte. By analogy, we should be able to check only the first active and last active byte in the masked op. This is a more invasive change to asan, and I decided simply supporting scalable vectors at all was a better starting place.
Differential Revision: https://reviews.llvm.org/D145198
More information about the All-commits
mailing list