mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-31 14:15:12 +00:00
64c0ff4141
Scalar dependences between scop statements have caused troubles during parallel code generation as we did not pass on the new stack allocation created for such scalars to the parallel subfunctions. This change now detects all scalar reads/writes in parallel subfunctions, creates the allocas for these scalar objects, passes the resulting memory locations to the subfunctions and ensures that within the subfunction requests for these memory locations will return the rewritten values. Johannes suggested as a future optimization to privatizing some of the scalars in the subfunction. llvm-svn: 246414
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.