------- Comment #3 from ro at techfak dot uni-bielefeld dot de 2007-09-05 18:09 ------- Subject: Re: [4.3 regression] Bootstrap failure on alpha: ICE in convert_move, at expr.c:369
A reghunt revealed that this patch 2007-08-31 Richard Sandiford <[EMAIL PROTECTED]> * optabs.c (shift_optab_p, commutative_optab_p): New functions, split out from expand_binop. (avoid_expensive_constant): New function. (expand_binop_directly): Remove commutative_op argument and call cummutative_optab_p instead. Do not change op0 or op1 when swapping xop0 and xop1. Apply avoid_expensive_constant to each argument after potential swapping. Enforce the canonical order of commutative operands. (expand_binop): Use shift_optab_p and commutative_optab_p. Update the calls to expand_binop_directly. Only force constants into registers when widening an operation. Only swap operands once a direct expansion has been rejected. (expand_twoval_binop): Only force constants into registers when using a direct expansion. is the culprit. Rainer -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33306