At the moment there are three sets of move costs:

    move_cost
    may_move_in_cost
    may_move_out_cost

    ira_register_move_cost
    ira_may_move_in_cost
    ira_may_move_out_cost

    ira_max_register_move_cost
    ira_max_may_move_in_cost
    ira_max_may_move_out_cost

Having the first two sets around together dates back to when IRA
was an optional replacement for the old allocators.  The third set
is only used as a temporary while calculating the second set.

This series removes the first and third sets.  It isn't supposed
to change the output in any way.  Hopefully it will make things
a little more efficient, but the real motivation was to make it
easier to experiment with the costs.

Note that move_cost and ira_register_move_cost are already the same.
We make the latter an alias of the forner:

  ira_register_move_cost[mode] = move_cost[mode];

then modify it in-place:

          ira_register_move_cost[mode][cl1][cl2]
            = ira_max_register_move_cost[mode][cl1][cl2];

thus changing both.

Bootstrapped & regression-tested on x86_64-linux-gnu and i686-linux-gnu.
Also tested by making sure that the assembly output for recent cc1 .ii
files is unchanged.

Richard

Reply via email to