* Make more use of GET_MODE_UNIT_BITSIZE
@ 2017-08-23 10:59 Richard Sandiford
2017-09-04 5:58 ` Jeff Law
0 siblings, 1 reply; 2+ messages in thread
From: Richard Sandiford @ 2017-08-23 10:59 UTC (permalink / raw)
To: gcc-patches
This patch is like the previous GET_MODE_UNIT_SIZE one,
but for bit rather than byte sizes.
Tested on aarch64-linux-gnu and x86_64-linux-gnu, and by making sure
that there were no differences in testsuite assembly output for one
target per CPU. OK to install?
Richard
2017-08-23 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
gcc/
* cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
(expand_debug_source_expr): Likewise.
* combine.c (combine_simplify_rtx): Likewise.
* cse.c (fold_rtx): Likewise.
* fwprop.c (canonicalize_address): Likewise.
* targhooks.c (default_shift_truncation_mask): Likewise.
Index: gcc/cfgexpand.c
===================================================================
--- gcc/cfgexpand.c 2017-08-21 12:14:39.685583530 +0100
+++ gcc/cfgexpand.c 2017-08-23 10:48:32.452867722 +0100
@@ -4331,9 +4331,11 @@ expand_debug_expr (tree exp)
if (FLOAT_MODE_P (mode) && FLOAT_MODE_P (inner_mode))
{
- if (GET_MODE_BITSIZE (mode) == GET_MODE_BITSIZE (inner_mode))
+ if (GET_MODE_UNIT_BITSIZE (mode)
+ == GET_MODE_UNIT_BITSIZE (inner_mode))
op0 = simplify_gen_subreg (mode, op0, inner_mode, 0);
- else if (GET_MODE_BITSIZE (mode) < GET_MODE_BITSIZE (inner_mode))
+ else if (GET_MODE_UNIT_BITSIZE (mode)
+ < GET_MODE_UNIT_BITSIZE (inner_mode))
op0 = simplify_gen_unary (FLOAT_TRUNCATE, mode, op0, inner_mode);
else
op0 = simplify_gen_unary (FLOAT_EXTEND, mode, op0, inner_mode);
@@ -5194,9 +5196,11 @@ expand_debug_source_expr (tree exp)
if (FLOAT_MODE_P (mode) && FLOAT_MODE_P (inner_mode))
{
- if (GET_MODE_BITSIZE (mode) == GET_MODE_BITSIZE (inner_mode))
+ if (GET_MODE_UNIT_BITSIZE (mode)
+ == GET_MODE_UNIT_BITSIZE (inner_mode))
op0 = simplify_gen_subreg (mode, op0, inner_mode, 0);
- else if (GET_MODE_BITSIZE (mode) < GET_MODE_BITSIZE (inner_mode))
+ else if (GET_MODE_UNIT_BITSIZE (mode)
+ < GET_MODE_UNIT_BITSIZE (inner_mode))
op0 = simplify_gen_unary (FLOAT_TRUNCATE, mode, op0, inner_mode);
else
op0 = simplify_gen_unary (FLOAT_EXTEND, mode, op0, inner_mode);
Index: gcc/combine.c
===================================================================
--- gcc/combine.c 2017-08-23 10:47:17.537756580 +0100
+++ gcc/combine.c 2017-08-23 10:48:32.453862693 +0100
@@ -6233,7 +6233,8 @@ combine_simplify_rtx (rtx x, machine_mod
SUBST (XEXP (x, 1),
force_to_mode (XEXP (x, 1), GET_MODE (XEXP (x, 1)),
(HOST_WIDE_INT_1U
- << exact_log2 (GET_MODE_BITSIZE (GET_MODE (x))))
+ << exact_log2 (GET_MODE_UNIT_BITSIZE
+ (GET_MODE (x))))
- 1,
0));
break;
Index: gcc/cse.c
===================================================================
--- gcc/cse.c 2017-08-23 10:46:06.552151584 +0100
+++ gcc/cse.c 2017-08-23 10:48:32.454857664 +0100
@@ -3611,7 +3611,7 @@ fold_rtx (rtx x, rtx_insn *insn)
{
if (SHIFT_COUNT_TRUNCATED)
canon_const_arg1 = GEN_INT (INTVAL (const_arg1)
- & (GET_MODE_BITSIZE (mode)
+ & (GET_MODE_UNIT_BITSIZE (mode)
- 1));
else
break;
@@ -3660,7 +3660,8 @@ fold_rtx (rtx x, rtx_insn *insn)
{
if (SHIFT_COUNT_TRUNCATED)
inner_const = GEN_INT (INTVAL (inner_const)
- & (GET_MODE_BITSIZE (mode) - 1));
+ & (GET_MODE_UNIT_BITSIZE (mode)
+ - 1));
else
break;
}
@@ -3690,7 +3691,7 @@ fold_rtx (rtx x, rtx_insn *insn)
/* As an exception, we can turn an ASHIFTRT of this
form into a shift of the number of bits - 1. */
if (code == ASHIFTRT)
- new_const = GEN_INT (GET_MODE_BITSIZE (mode) - 1);
+ new_const = GEN_INT (GET_MODE_UNIT_BITSIZE (mode) - 1);
else if (!side_effects_p (XEXP (y, 0)))
return CONST0_RTX (mode);
else
Index: gcc/fwprop.c
===================================================================
--- gcc/fwprop.c 2017-08-22 17:14:30.336881519 +0100
+++ gcc/fwprop.c 2017-08-23 10:48:32.454857664 +0100
@@ -357,8 +357,8 @@ canonicalize_address (rtx x)
{
case ASHIFT:
if (CONST_INT_P (XEXP (x, 1))
- && INTVAL (XEXP (x, 1)) < GET_MODE_BITSIZE (GET_MODE (x))
- && INTVAL (XEXP (x, 1)) >= 0)
+ && INTVAL (XEXP (x, 1)) < GET_MODE_UNIT_BITSIZE (GET_MODE (x))
+ && INTVAL (XEXP (x, 1)) >= 0)
{
HOST_WIDE_INT shift = INTVAL (XEXP (x, 1));
PUT_CODE (x, MULT);
Index: gcc/targhooks.c
===================================================================
--- gcc/targhooks.c 2017-07-27 10:37:54.553030575 +0100
+++ gcc/targhooks.c 2017-08-23 10:48:32.455852635 +0100
@@ -245,7 +245,7 @@ default_unwind_word_mode (void)
unsigned HOST_WIDE_INT
default_shift_truncation_mask (machine_mode mode)
{
- return SHIFT_COUNT_TRUNCATED ? GET_MODE_BITSIZE (mode) - 1 : 0;
+ return SHIFT_COUNT_TRUNCATED ? GET_MODE_UNIT_BITSIZE (mode) - 1 : 0;
}
/* The default implementation of TARGET_MIN_DIVISIONS_FOR_RECIP_MUL. */
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Make more use of GET_MODE_UNIT_BITSIZE
2017-08-23 10:59 Make more use of GET_MODE_UNIT_BITSIZE Richard Sandiford
@ 2017-09-04 5:58 ` Jeff Law
0 siblings, 0 replies; 2+ messages in thread
From: Jeff Law @ 2017-09-04 5:58 UTC (permalink / raw)
To: gcc-patches, richard.sandiford
On 08/23/2017 04:56 AM, Richard Sandiford wrote:
> This patch is like the previous GET_MODE_UNIT_SIZE one,
> but for bit rather than byte sizes.
>
> Tested on aarch64-linux-gnu and x86_64-linux-gnu, and by making sure
> that there were no differences in testsuite assembly output for one
> target per CPU. OK to install?
>
> Richard
>
>
> 2017-08-23 Richard Sandiford <richard.sandiford@linaro.org>
> Alan Hayward <alan.hayward@arm.com>
> David Sherwood <david.sherwood@arm.com>
>
> gcc/
> * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
> (expand_debug_source_expr): Likewise.
> * combine.c (combine_simplify_rtx): Likewise.
> * cse.c (fold_rtx): Likewise.
> * fwprop.c (canonicalize_address): Likewise.
> * targhooks.c (default_shift_truncation_mask): Likewise.
OK.
jeff
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-09-04 5:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-23 10:59 Make more use of GET_MODE_UNIT_BITSIZE Richard Sandiford
2017-09-04 5:58 ` Jeff Law
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).