It turns out we have some old machine descriptions that have no L1 cache, so we must account for a zero line size. Regstrapped on powerpc64-linux-unknown-gnu with no new failures, committed as obvious.
Thanks, Bill 2012-06-13 Bill Schmidt <wschm...@linux.ibm.com> PR tree-optimization/53647 * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for targets with no defined cache line size. Index: gcc/tree-ssa-phiopt.c =================================================================== --- gcc/tree-ssa-phiopt.c (revision 188482) +++ gcc/tree-ssa-phiopt.c (working copy) @@ -1976,12 +1976,14 @@ hoist_adjacent_loads (basic_block bb0, basic_block /* Determine whether we should attempt to hoist adjacent loads out of diamond patterns in pass_phiopt. Always hoist loads if -fhoist-adjacent-loads is specified and the target machine has - a conditional move instruction. */ + both a conditional move instruction and a defined cache line size. */ static bool gate_hoist_loads (void) { - return (flag_hoist_adjacent_loads == 1 && HAVE_conditional_move); + return (flag_hoist_adjacent_loads == 1 + && PARAM_VALUE (PARAM_L1_CACHE_LINE_SIZE) + && HAVE_conditional_move); } /* Always do these optimizations if we have SSA