GCC Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
gcc

Remove -ftree-loop-if-convert and tie if-conversion to vectorization

GCC removes the standalone -ftree-loop-if-convert option, dedicating if-conversion to loop vectorization.

The GCC compiler has removed the -ftree-loop-if-convert option, which previously allowed standalone loop if-conversion. This change simplifies the compiler by tying if-conversion directly to the vectorizer’s loop vectorization pass, as other if-conversion mechanisms (phiopt and cselimg) are considered more general. This aims to improve integration with the vectorizer and eliminate under-tested functionality.

In Details

The pass tree-if-conv.cc is now exclusively enabled when loop vectorization is active, removing the standalone -ftree-loop-if-convert option. The pass's gate function now checks for loop_vectorization_enabled instead of the flag. This change simplifies the pass by removing the loop_versioned argument from several internal functions, as it's now always true in this context, and leverages phiopt/cselimg for general if-conversion.

For Context
if-conversion
An optimization technique that replaces conditional branches (if-statements) with conditional move instructions or predicated operations, enabling better instruction-level parallelism.
loop vectorization
An optimization that transforms loops to operate on multiple data elements simultaneously using SIMD (Single Instruction, Multiple Data) instructions.
vectorization
The process of using SIMD instructions to perform the same operation on multiple data elements in parallel.
phiopt
A GCC optimization pass that performs if-conversion and related optimizations, often used for simplifying control flow.
cselimg
Likely refers to a GCC optimization pass or technique related to conditional select instructions, potentially 'conditional select on image' or similar, used for if-conversion.
tree-ssa-phiopt.cc
A GCC source file related to the SSA (Static Single Assignment) form and the phiopt optimization pass, which handles if-conversion.
tree-if-conv.cc
A GCC source file containing the implementation of the if-conversion optimization pass.
Filed Under: gccoptimizationvectorizationcompiler