]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR rtl-optimization/26847 (Missed optimization in simplify_plus_minus)
authorPaolo Bonzini <bonzini@gcc.gnu.org>
Tue, 5 Sep 2006 17:41:22 +0000 (17:41 +0000)
committerPaolo Bonzini <bonzini@gcc.gnu.org>
Tue, 5 Sep 2006 17:41:22 +0000 (17:41 +0000)
commitd26cef13fbe5a707e4a495c4a9d56847b9547072
tree7a5dd2d54bd36f40c450bd564a63865f0fcb60b3
parent5527be59f4f6621b8e99ecf13ed3a3126576b87f
re PR rtl-optimization/26847 (Missed optimization in simplify_plus_minus)

2006-09-05  Paolo Bonzini  <bonzini@gnu.org>

PR rtl-optimization/26847
* simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
(simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
(simplify_plus_minus): Count n_constants while filling ops.  Replace
qsort with insertion sort.  Before going through the array to simplify
pairs, sort it.  Delay early exit until after the first sort, exiting
only if no swaps occurred.  Simplify pairs in reversed order, without
special-casing the first iteration.  Pack ops after simplifying pairs.

From-SVN: r116701
gcc/ChangeLog
gcc/simplify-rtx.c