2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
+ PR middle-end/44554
+ * ira.c (ira): Switch off sharing spill slots if setjmp is called.
+
+2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
+
PR middle-end/40386
* ira.c (pseudo_for_reload_consideration_p): Don't use
flag_ira_share_spill_slots.
ira_assert (ira_conflicts_p || !loops_p);
saved_flag_ira_share_spill_slots = flag_ira_share_spill_slots;
- if (too_high_register_pressure_p ())
+ if (too_high_register_pressure_p () || cfun->calls_setjmp)
/* It is just wasting compiler's time to pack spilled pseudos into
- stack slots in this case -- prohibit it. */
+ stack slots in this case -- prohibit it. We also do this if
+ there is setjmp call because a variable not modified between
+ setjmp and longjmp the compiler is required to preserve its
+ value and sharing slots does not guarantee it. */
flag_ira_share_spill_slots = FALSE;
ira_color ();