SLP schedule failure state caching improved.
GCC's SLP vectorization now correctly uses cached failure states for previously analyzed entries.
This commit ensures that GCC’s SLP (Superword Level Parallelism) vectorization pass properly utilizes cached failure information. When an entry has already been analyzed and determined to be unvectorizable, its failure state is now correctly reused, preventing redundant analysis and ensuring that previously identified unvectorizable code patterns are consistently handled.
In Details
The vect_schedule_slp function in tree-vect-slp.cc has been updated to properly leverage cached failure states. If scc_info (Scalar or Superword Code information) is already present for an entry, indicating a prior analysis, the function now consults its failure field. This prevents re-evaluation of code segments previously determined to be unsuitable for SLP vectorization, improving efficiency and consistency.
- SLP (Superword Level Parallelism)
- A compiler optimization technique that identifies and vectorizes sequences of identical operations that operate on different data elements within a single instruction stream.
- vectorization
- The process of transforming code to use SIMD (Single Instruction, Multiple Data) instructions, allowing a single instruction to operate on multiple data elements simultaneously.
- tree-optimization
- A phase in GCC's compilation pipeline where optimizations are performed on the GCC's intermediate representation (GIMPLE).
- scc_info
- Information related to Scalar or Superword Code, often used in vectorization passes to track analysis results.