Resolves an issue in which some loops cannot be auto-vectorized with
runtime checks despite all relevant alias sets having computable bounds.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Thanks for illustrating the issue here. I was a bit surprised this happens, as canCheckPtrAtRT already contains code to figure out if runtime checks are needed for a alias set. But it turns out that it sets 'CanDoRT` to false for alias sets with uncomputable bounds, even if no runtime checks are required for the AS.
I've put up D80622 with an alternative fix, that slightly extends the existing logic in canCheckPtrAtRT to correctly handle this case. I think this has a slight advantage of not having 2 different alias set collections, which potentially could lead to confusion down the road (if the wrong one is used).
Comment Actions
IIUC this was subsumed by D80622. Marking as changes requested to clear up review queue.