mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-28 20:41:07 +00:00
8b05278b4e
In case we also model scalar reads it can happen that a pointer appears in both a scalar read access as well as the base pointer of an array access. As this is a little surprising, we add a specific test case to document this behaviour. To my understanding it should be OK to have a read from an array A[] and read/write accesses to A[...]. isl is treating these arrays as unrelated as their dimensionality differs. This seems to be correct as A[] remains constant throughout the execution of the scop and is not affected by the reads/writes to A[...]. If this causes confusion, it might make sense to make this behaviour more obvious by using different names (e.g., A_scalar[], A[...]). llvm-svn: 252615
Polly - Polyhedral optimizations for LLVM ----------------------------------------- http://polly.llvm.org/ Polly uses a mathematical representation, the polyhedral model, to represent and transform loops and other control flow structures. Using an abstract representation it is possible to reason about transformations in a more general way and to use highly optimized linear programming libraries to figure out the optimal loop structure. These transformations can be used to do constant propagation through arrays, remove dead loop iterations, optimize loops for cache locality, optimize arrays, apply advanced automatic parallelization, drive vectorization, or they can be used to do software pipelining.