Xingxing Pan found a typo in IRA code. Here is the patch to fix it.
The patch was bootstrapped on x86/x86-64. I did not find code generation difference on x86/x86-64, s390, ppc, and arm on variety tests. The code might make some small difference on other targets though.
Committed as rev. 201699. 2013-08-13 Vladimir Makarov <vmaka...@redhat.com> * ira.c (setup_class_translate_array): Use aclass instead of cl for classes not fully covered by allocno classes.
Index: ira.c =================================================================== --- ira.c (revision 201544) +++ ira.c (working copy) @@ -1111,8 +1111,8 @@ setup_class_translate_array (enum reg_cl min_cost = INT_MAX; for (mode = 0; mode < MAX_MACHINE_MODE; mode++) { - cost = (ira_memory_move_cost[mode][cl][0] - + ira_memory_move_cost[mode][cl][1]); + cost = (ira_memory_move_cost[mode][aclass][0] + + ira_memory_move_cost[mode][aclass][1]); if (min_cost > cost) min_cost = cost; }