From: liuhongt <hongtao.liu@intel.com>
To: gcc-patches@gcc.gnu.org
Cc: crazylht@gmail.com, hjl.tools@gmail.com, ubizjak@gmail.com
Subject: [PATCH] Remove TARGET_GEN_MEMSET_SCRATCH_RTX since it's not used anymore.
Date: Wed, 22 Mar 2023 10:57:01 +0800 [thread overview]
Message-ID: <20230322025701.3369256-1-hongtao.liu@intel.com> (raw)
The target hook is only used by i386, and the current definition is
same as default gen_reg_rtx. So there's no need for this target hook.
Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}.
Ok for trunk(or GCC14)?
gcc/ChangeLog:
* builtins.cc (builtin_memset_read_str): Replace
targetm.gen_memset_scratch_rtx with gen_reg_rtx.
(builtin_memset_gen_str): Ditto.
* config/i386/i386-expand.cc
(ix86_convert_const_wide_int_to_broadcast): Replace
ix86_gen_scratch_sse_rtx with gen_reg_rtx.
(ix86_expand_vector_move): Ditto.
* config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
Removed.
* config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
(TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
* doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
* doc/tm.texi.in: Ditto.
* target.def: Ditto.
---
gcc/builtins.cc | 4 ++--
gcc/config/i386/i386-expand.cc | 6 +++---
gcc/config/i386/i386-protos.h | 2 --
gcc/config/i386/i386.cc | 12 ------------
gcc/doc/tm.texi | 7 -------
gcc/doc/tm.texi.in | 2 --
gcc/target.def | 9 ---------
7 files changed, 5 insertions(+), 37 deletions(-)
diff --git a/gcc/builtins.cc b/gcc/builtins.cc
index 90246e214d6..8026e2001b7 100644
--- a/gcc/builtins.cc
+++ b/gcc/builtins.cc
@@ -4212,7 +4212,7 @@ builtin_memset_read_str (void *data, void *prev,
return const_vec;
/* Use the move expander with CONST_VECTOR. */
- target = targetm.gen_memset_scratch_rtx (mode);
+ target = gen_reg_rtx (mode);
emit_move_insn (target, const_vec);
return target;
}
@@ -4256,7 +4256,7 @@ builtin_memset_gen_str (void *data, void *prev,
the memset expander. */
insn_code icode = optab_handler (vec_duplicate_optab, mode);
- target = targetm.gen_memset_scratch_rtx (mode);
+ target = gen_reg_rtx (mode);
class expand_operand ops[2];
create_output_operand (&ops[0], target, mode);
create_input_operand (&ops[1], (rtx) data, QImode);
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index c1300dc4e26..1e3ce4b7c3f 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -338,7 +338,7 @@ ix86_convert_const_wide_int_to_broadcast (machine_mode mode, rtx op)
machine_mode vector_mode;
if (!mode_for_vector (broadcast_mode, nunits).exists (&vector_mode))
gcc_unreachable ();
- rtx target = ix86_gen_scratch_sse_rtx (vector_mode);
+ rtx target = gen_reg_rtx (vector_mode);
bool ok = ix86_expand_vector_init_duplicate (false, vector_mode,
target,
GEN_INT (val_broadcast));
@@ -686,7 +686,7 @@ ix86_expand_vector_move (machine_mode mode, rtx operands[])
if (!register_operand (op0, mode)
&& !register_operand (op1, mode))
{
- rtx scratch = ix86_gen_scratch_sse_rtx (mode);
+ rtx scratch = gen_reg_rtx (mode);
emit_move_insn (scratch, op1);
op1 = scratch;
}
@@ -728,7 +728,7 @@ ix86_expand_vector_move (machine_mode mode, rtx operands[])
&& !register_operand (op0, mode)
&& !register_operand (op1, mode))
{
- rtx tmp = ix86_gen_scratch_sse_rtx (GET_MODE (op0));
+ rtx tmp = gen_reg_rtx (GET_MODE (op0));
emit_move_insn (tmp, op1);
emit_move_insn (op0, tmp);
return;
diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
index bfb2198265a..71ae95ffef7 100644
--- a/gcc/config/i386/i386-protos.h
+++ b/gcc/config/i386/i386-protos.h
@@ -50,8 +50,6 @@ extern void ix86_reset_previous_fndecl (void);
extern bool ix86_using_red_zone (void);
-extern rtx ix86_gen_scratch_sse_rtx (machine_mode);
-
extern unsigned int ix86_regmode_natural_size (machine_mode);
extern bool ix86_check_builtin_isa_match (unsigned int fcode);
#ifdef RTX_CODE
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 5d0e4739a84..6a8734c2346 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -24197,15 +24197,6 @@ ix86_optab_supported_p (int op, machine_mode mode1, machine_mode,
}
}
-/* Implement the TARGET_GEN_MEMSET_SCRATCH_RTX hook. Return a scratch
- register in MODE for vector load and store. */
-
-rtx
-ix86_gen_scratch_sse_rtx (machine_mode mode)
-{
- return gen_reg_rtx (mode);
-}
-
/* Address space support.
This is not "far pointers" in the 16-bit sense, but an easy way
@@ -25253,9 +25244,6 @@ static bool ix86_libc_has_fast_function (int fcode ATTRIBUTE_UNUSED)
#undef TARGET_LIBC_HAS_FAST_FUNCTION
#define TARGET_LIBC_HAS_FAST_FUNCTION ix86_libc_has_fast_function
-#undef TARGET_GEN_MEMSET_SCRATCH_RTX
-#define TARGET_GEN_MEMSET_SCRATCH_RTX ix86_gen_scratch_sse_rtx
-
#if CHECKING_P
#undef TARGET_RUN_TARGET_SELFTESTS
#define TARGET_RUN_TARGET_SELFTESTS selftest::ix86_run_selftests
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index c4a92a5ebee..4bb48c5428c 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -12001,13 +12001,6 @@ This function prepares to emit a conditional comparison within a sequence
@var{bit_code} is @code{AND} or @code{IOR}, which is the op on the compares.
@end deftypefn
-@deftypefn {Target Hook} rtx TARGET_GEN_MEMSET_SCRATCH_RTX (machine_mode @var{mode})
-This hook should return an rtx for a scratch register in @var{mode} to
-be used when expanding memset calls. The backend can use a hard scratch
-register to avoid stack realignment when expanding memset. The default
-is @code{gen_reg_rtx}.
-@end deftypefn
-
@deftypefn {Target Hook} unsigned TARGET_LOOP_UNROLL_ADJUST (unsigned @var{nunroll}, class loop *@var{loop})
This target hook returns a new value for the number of times @var{loop}
should be unrolled. The parameter @var{nunroll} is the number of times
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
index 4075e71624c..f7ab5d48a63 100644
--- a/gcc/doc/tm.texi.in
+++ b/gcc/doc/tm.texi.in
@@ -7787,8 +7787,6 @@ lists.
@hook TARGET_GEN_CCMP_NEXT
-@hook TARGET_GEN_MEMSET_SCRATCH_RTX
-
@hook TARGET_LOOP_UNROLL_ADJUST
@defmac POWI_MAX_MULTS
diff --git a/gcc/target.def b/gcc/target.def
index f401fe148ee..1b9c882229e 100644
--- a/gcc/target.def
+++ b/gcc/target.def
@@ -2738,15 +2738,6 @@ DEFHOOK
rtx, (rtx_insn **prep_seq, rtx_insn **gen_seq, rtx prev, int cmp_code, tree op0, tree op1, int bit_code),
NULL)
-DEFHOOK
-(gen_memset_scratch_rtx,
- "This hook should return an rtx for a scratch register in @var{mode} to\n\
-be used when expanding memset calls. The backend can use a hard scratch\n\
-register to avoid stack realignment when expanding memset. The default\n\
-is @code{gen_reg_rtx}.",
- rtx, (machine_mode mode),
- gen_reg_rtx)
-
/* Return a new value for loop unroll size. */
DEFHOOK
(loop_unroll_adjust,
--
2.39.1.388.g2fc9e9ca3c
next reply other threads:[~2023-03-22 2:59 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-22 2:57 liuhongt [this message]
2023-03-22 7:07 ` Uros Bizjak
2023-03-22 10:18 ` Richard Biener
2023-03-22 10:34 ` Jakub Jelinek
2023-03-22 18:23 ` H.J. Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230322025701.3369256-1-hongtao.liu@intel.com \
--to=hongtao.liu@intel.com \
--cc=crazylht@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=hjl.tools@gmail.com \
--cc=ubizjak@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).