This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] optabs: Allow CAS expanders to fail


On Fri, Feb 07, 2014 at 12:58:37PM +0100, Andreas Krebbel wrote:
> 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
> 
> 	* optabs.c (expand_atomic_compare_and_swap): Allow expander to
> 	fail.

Ok.

> --- a/gcc/optabs.c
> +++ b/gcc/optabs.c
> @@ -7383,12 +7383,13 @@ expand_atomic_compare_and_swap (rtx *ptarget_bool, rtx *ptarget_oval,
>        create_integer_operand (&ops[5], is_weak);
>        create_integer_operand (&ops[6], succ_model);
>        create_integer_operand (&ops[7], fail_model);
> -      expand_insn (icode, 8, ops);
> -
> -      /* Return success/failure.  */
> -      target_bool = ops[0].value;
> -      target_oval = ops[1].value;
> -      goto success;
> +      if (maybe_expand_insn (icode, 8, ops))
> +	{
> +	  /* Return success/failure.  */
> +	  target_bool = ops[0].value;
> +	  target_oval = ops[1].value;
> +	  goto success;
> +	}
>      }
>  
>    /* Otherwise fall back to the original __sync_val_compare_and_swap

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]