@@ -551,7 +551,16 @@ gate_handle_stack_adjustments (void)
static unsigned int
rest_of_handle_stack_adjustments (void)
{
- cleanup_cfg (flag_crossjumping ? CLEANUP_CROSSJUMP : 0);
+ if (flag_crossjumping && optimize <= 1)
+ {
+ df_live_add_problem ();
+ df_live_set_all_dirty ();
+ df_analyze ();
+ cleanup_cfg (CLEANUP_CROSSJUMP);
+ df_remove_problem (df_live);
+ }
+ else
+ cleanup_cfg (flag_crossjumping ? CLEANUP_CROSSJUMP : 0);
/* This is kind of a heuristic. We need to run combine_stack_adjustments
even for machines with possibly nonzero TARGET_RETURN_POPS_ARGS