On 10/28/12 20:43:05, Vladimir Makarov wrote: > The following patch fixes PR55106. A value in GENERAL_REGS is > inherited into a move with destination pseudo of SSE_REGS. It > results into secondary move for which inheritance is tried again an > again. It means cycling LRA passes. > > The patch was successfully bootstrapped on x86/x86-64.
This patch fails on IA64, due to unused variables on an #ifndef path. This fix, or something like it is needed. Index: gcc/lra-constraints.c =================================================================== --- gcc/lra-constraints.c (revision 192988) +++ gcc/lra-constraints.c (working copy) @@ -3591,7 +3591,8 @@ skip_usage_debug_insns (rtx usage_insns) USAGE_INSNS after inserting inherited pseudo of class INHER_CL into the insn. */ static bool -check_secondary_memory_needed_p (enum reg_class inher_cl, rtx usage_insns) +check_secondary_memory_needed_p (enum reg_class inher_cl ATTRIBUTE_UNUSED, + rtx usage_insns ATTRIBUTE_UNUSED) { #ifndef SECONDARY_MEMORY_NEEDED return false;