Open hiraditya opened 2 weeks ago
I'm not sure where you'd assume alignment, and I'm not aware of any major performance problems due to aliasing. The main problem the auto vectorizer has is that it doesn't know that loops where we might break out can still dereference elements past that point, making it block auto vectorization.
I'm not sure where you'd assume alignment, and I'm not aware of any major performance problems due to aliasing.
i see. are there any attributes you think may help here.
The main problem the auto vectorizer has is that it doesn't know that loops where we might break out can still dereference elements past that point, making it block auto vectorization.
Are you referring to algorithms like all_of, none_of etc.?
I'm not sure where you'd assume alignment, and I'm not aware of any major performance problems due to aliasing.
i see. are there any attributes you think may help here.
I'm not aware of any that already exist. Otherwise I would have tried adding them already.
The main problem the auto vectorizer has is that it doesn't know that loops where we might break out can still dereference elements past that point, making it block auto vectorization.
Are you referring to algorithms like all_of, none_of etc.?
Yes, exactly.
Can adding attributes to libc++ algorithms to help the auto-vectorizer? e.g.,
@fhahn suggested parallel stl can also use some attributes https://libcxx.llvm.org/Status/PSTL.html.