> Markus Franke wrote on 11/27/06 12:50: > > > Are there also some other optimisation passes working on the GIMPLE/SSA > > representation which make use of any machine-dependent features? > > > Yes. Passes like vectorization and loop optimizations will use so > called 'target hooks' which allow the high-level passes to query the > target for various capabilities and attributes. See the tree-vect*.c > files for several examples.
builtin_mask_for_load builtin_vectorized_function builtin_mul_widen_even builtin_mul_widen_odd are examples for such target hooks. There's other machine-dependent bits, like the UNITS_PER_SIMD_WORD variable that each target can define, and anywhere we check whether an operation is supported in the relevant vector mode (e.g. - "if (optab->handlers[(int) vec_mode].insn_code == CODE_FOR_nothing)"). dorit