Vladimir Makarov <[email protected]> writes:
> The following patch implements most Richard's proposals for LRA
> lra-spills.c and lra-coalesce.c files.
>
> The patch was successfully bootstrapped on x86/x86-64.
>
> Committed as rev. 192389.
Thanks for the updates. Looks good to me. Just one comment though:
> @@ -125,7 +136,7 @@ process_copy_to_form_thread (int regno1,
> last = regno_assign_info[last].next)
> regno_assign_info[last].first = regno1_first;
> regno_assign_info[last].next = regno_assign_info[regno1_first].next;
> - regno_assign_info[regno1_first].first = regno2_first;
> + regno_assign_info[regno1_first].next = regno2_first;
> regno_assign_info[regno1_first].freq
> += regno_assign_info[regno2_first].freq;
> }
I still think this is missing a:
regno_assign_info[last].first = regno1_first;
after the loop. I.e.:
for (last = regno2_first;
regno_assign_info[last].next >= 0;
last = regno_assign_info[last].next)
regno_assign_info[last].first = regno1_first;
regno_assign_info[last].first = regno1_first;
regno_assign_info[last].next = regno_assign_info[regno1_first].next;
...
Richard