Fixes: #177527 Updated test cases: * CodeGen/OpenMP/matmul-parallel.ll, ScheduleOptimizer/pattern-matching-based-opts.ll Before the update, ISL bailed out the dependency computation due to hitting the max operation limit. The commit https://repo.or.cz/isl.git/commit/4bdfe2567715c5d1a8287c07d8685eb3db281e32 seems to have reduced the complexity needed of the dependency computation, thus now being able to recognize some loops as parallel. The tests were checking that the outer loop is not parallel, but some inner loops can be parallized, particularly the array packing loops. * DeLICM/reduction_looprotate_hoisted.ll changes in how isl generates expressions * ScheduleOptimizer/pattern-matching-based-opts_5.ll changes in how isl generates expressions, and AST node changes
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.