------- Comment #18 from ramana at gcc dot gnu dot org 2010-04-02 00:01 -------
A work around I tried was to make cross-jumping run dependent on CSA which is probably a heavy weight work around to what looks like a different problem. It ended up retaining the correct ALIAS fields in this case but that's a heavy weight solution and will in most likely hood make this bug go latent again. I'm travelling the next few days with minimal network access and given this needs a MI expert to look at this - so can't actively work on this till I get back next Tuesday . Hence un-assigning myself from it. Index: combine-stack-adj.c =================================================================== --- combine-stack-adj.c (revision 157912) +++ combine-stack-adj.c (working copy) @@ -552,7 +552,6 @@ gate_handle_stack_adjustments (void) static unsigned int rest_of_handle_stack_adjustments (void) { - 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 RETURN_POPS_ARGS @@ -562,6 +561,7 @@ rest_of_handle_stack_adjustments (void) if (!ACCUMULATE_OUTGOING_ARGS) #endif { + cleanup_cfg (flag_crossjumping ? CLEANUP_CROSSJUMP : 0); df_note_add_problem (); df_analyze (); combine_stack_adjustments (); -- ramana at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|ramana at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED |NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42509