This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Remove support for atomic_clear pattern
- From: Richard Sandiford <richard dot sandiford at arm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 30 Jul 2015 14:02:28 +0100
- Subject: Remove support for atomic_clear pattern
- Authentication-results: sourceware.org; auth=none
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?
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