[PATCH] Fix -mno-accumulate-outgoing-args -fasynchronous-unwind-tables (PR rtl-optimization/36419)

Eric Botcazou ebotcazou@adacore.com
Sun Jun 15 14:50:00 GMT 2008


> The following so far only lightly tested patch fixes this by remembering CSA
> of non-/f insns into /f insns and adding DW_CFA_GNU_args_size on the stack
> subtraction that does the combined adjustment.

Did you consider attaching a REG_FRAME_RELATED_EXPR note on the merged insn 
instead, pointing to a PARALLEL made up of the non-merged adjustments, with 
RTX_FRAME_RELATED_P set on the first and not set on the second.

> @@ -373,7 +376,7 @@ combine_stack_adjustments_for_block (bas
>  		 deallocation+allocation conspired to cancel, we can
>  		 delete the old deallocation insn.  */
>  	      if (last_sp_set && last_sp_adjust == 0)
> -		delete_insn (insn);
> +		delete_insn (last_sp_set);
>  	      free_csa_memlist (memlist);
>  	      memlist = NULL;
>  	      last_sp_set = insn;

This looks correct to me.

-- 
Eric Botcazou



More information about the Gcc-patches mailing list