Closed VoxSciurorum closed 1 year ago
I looked into this a bit, out of curiosity. I think there may be a simpler underlying problem. This alias-analysis code, which is used to check for aliasing involving view lookups, checks for the wrong attribute: https://github.com/OpenCilk/opencilk-project/blob/dev/14.x/llvm/lib/Analysis/BasicAliasAnalysis.cpp#L1611-L1615
That's the problem. A regression introduced last summer. A fix with test case is on the way.
The following code is not vectorized because
One approach is to teach vectorization to recognize reducers as reduction variables.
It is likely that other loop optimizations would benefit from treating hyerpobjects as ordinary IR values (in SSA form with a PHI at the top of the loop).