b385aeda3f
(init_expmed): Always pass some insn to recog. Set shift_cost[0], shiftadd_cost[0] and shiftsub_cost[0] to something reasonable. Compute zero_cost. (enum alg_code): Remove alg_none; add alg_zero and alg_m. (struct algorithm): Rename field COEFF to LOG. (synth_mult): Use new ops alg_zero and alg_m for multiplication by zero and one, respectively. Use MIN when helpful. Be consistent and don't test cost before recursive call. Don't special-case shift counts of zero; already handled elsewhere. (expand_mult): First operation is always alg_zero or alg_m; remaining operations can't be one of those. Use proper subtargets for computations. Remove special-cases for shift counts of zero. Track value computed so far and make REG_EQUAL notes. From-SVN: r3786 |
||
---|---|---|
gcc |