On Thu, Jul 30, 2015 at 3:02 PM, Richard Sandiford <richard.sandif...@arm.com> wrote: > expand_builtin_atomic_clear has code to handle an atomic_clear instruction. > However, no target defines such a pattern, and the code wouldn't compile > on any target that tried to define it, since the generator is passed the > memory model enum directly rather than via an rtx wrapper. It seems better > to remove the code rather than try to update it. > > No documentation changes are needed because the pattern isn't mentioned > in md.texi. > > Bootstrapped & regression-tested on x86_64-linux-gnu. Grepped for references > to atomic_clear to make sure that no such pattern exists. OK to install?
Ok. Thanks, Richard. > Thanks, > Richard > > gcc/ > * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete. > (expand_builtin_atomic_clear): Remove support for atomic_clear > pattern. > > diff --git a/gcc/builtins.c b/gcc/builtins.c > index 1750e25..d7eb65f 100644 > --- a/gcc/builtins.c > +++ b/gcc/builtins.c > @@ -5587,12 +5587,6 @@ expand_builtin_atomic_fetch_op (machine_mode mode, > tree exp, rtx target, > return ret; > } > > - > -#ifndef HAVE_atomic_clear > -# define HAVE_atomic_clear 0 > -# define gen_atomic_clear(x,y) (gcc_unreachable (), NULL_RTX) > -#endif > - > /* Expand an atomic clear operation. > void _atomic_clear (BOOL *obj, enum memmodel) > EXP is the call expression. */ > @@ -5615,12 +5609,6 @@ expand_builtin_atomic_clear (tree exp) > model = MEMMODEL_SEQ_CST; > } > > - if (HAVE_atomic_clear) > - { > - emit_insn (gen_atomic_clear (mem, model)); > - return const0_rtx; > - } > - > /* Try issuing an __atomic_store, and allow fallback to > __sync_lock_release. > Failing that, a store is issued by __atomic_store. The only way this > can > fail is if the bool type is larger than a word size. Unlikely, but >