On 08/08/2011 10:35 PM, H.J. Lu wrote:
On Mon, Aug 8, 2011 at 4:19 PM, Vladimir Makarov<vmaka...@redhat.com> wrote:
The following patch fixes PR49990. The problem is described on
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49936
Reg classes which can not change modes for some pseudo were excluded from
the consideration. As I wrote recently, they should not. Instead the
correct cost for changing mode (by moving through memory or other class
register) should be taken into the account. I believe the cost is already
calculated rightly for this case, fortunately.
The patch was successfully bootstrapped on x86-64 and ppc64. Actually I did
not find a difference in generated code on variety tests on x86/x86-64 and
arm (that is what I tried).
Committed as rev. 177575.
2011-08-08 Vladimir Makarov<vmaka...@redhat.com>
PR rtl-optimization/49990
* ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
ignore classes which can not change mode.
(find_costs_and_classes): Ditto.
It breaks GCC on Linux/x86:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50026
Thanks for reporting.
I reverted the patch although I can not still reproduce it on my machine.