--- lra-lives.c.orig   2012-10-08 12:24:10.000000000 +0200
+++ lra-lives.c        2012-10-08 12:26:07.000000000 +0200
@@ -751,8 +751,12 @@ process_bb_lives (basic_block bb)
     mark_pseudo_dead (i);

   EXECUTE_IF_SET_IN_BITMAP (DF_LR_IN (bb), FIRST_PSEUDO_REGISTER, j, bi)
-    if (sparseset_bit_p (pseudos_live_through_calls, j))
-      check_pseudos_live_through_calls (j);
+    {
+      if (sparseset_cardinality (pseudos_live_through_calls) == 0)
+       break;
+      if (sparseset_bit_p (pseudos_live_through_calls, j))
+       check_pseudos_live_through_calls (j);
+    }

   incr_curr_point (freq);
 }
