public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Kyrill  Tkachov <kyrylo.tkachov@foss.arm.com>
To: "sellcey@cavium.com" <sellcey@cavium.com>,
	 Segher Boessenkool <segher@kernel.crashing.org>
Cc: Kyrill Tkachov <kyrylo.tkachov@foss.arm.com>,
	 gcc-patches <gcc-patches@gcc.gnu.org>,
	Wilco Dijkstra <Wilco.Dijkstra@arm.com>,
	 Richard Sandiford <Richard.Sandiford@arm.com>,
	Richard Earnshaw <Richard.Earnshaw@arm.com>,
	 James Greenhalgh <James.Greenhalgh@arm.com>,
	Marcus Shawcroft <Marcus.Shawcroft@arm.com>
Subject: Re: [Patch][Aarch64] Implement Aarch64 SIMD ABI and aarch64_vector_pcs attribute
Date: Tue, 04 Sep 2018 11:38:00 -0000	[thread overview]
Message-ID: <5B8E6EA3.6020704@foss.arm.com> (raw)
In-Reply-To: <1534786623.20144.12.camel@cavium.com>

Hi Steve,

On 20/08/18 18:37, Steve Ellcey wrote:
> On Tue, 2018-08-07 at 12:15 -0500, Segher Boessenkool wrote:
>
> > > +/* { dg-final { scan-assembler-not "\[ \t\]stp\tq\[01234567\]" } }
> > > */
> > That's [0-7] but maybe you find [01234567] more readable here.
>
> Segher,  I fixed all the issues you pointed out except this one.  Since
> there are some uses of non consecutive numbers in one of the tests I
> decided to leave [01234567] instead of using [0-7].  Here is the
> latest version of the patch, there are no semantic changes, just
> syntactical ones to address the issues that you pointed out.
>
> Steve Ellcey
> sellcey@cavium.com
>

One more comment below.
It looks sensible enough to me otherwise, but I haven't done a deep review of the logic.

Thanks,
Kyrill

>
> 2018-08-20  Steve Ellcey  <sellcey@cavium.com>
>
>         * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p):
>         New prototype.
>         (aarch64_epilogue_uses): Ditto.
>         * config/aarch64/aarch64.c (aarch64_attribute_table): New array.
>         (aarch64_simd_decl_p): New function.
>         (aarch64_reg_save_mode): New function.
>         (aarch64_is_simd_call_p): New function.
>         (aarch64_function_ok_for_sibcall): Check for simd calls.
>         (aarch64_layout_frame): Check for simd function.
>         (aarch64_gen_storewb_pair): Handle E_TFmode.
>         (aarch64_push_regs): Use aarch64_reg_save_mode to get mode.
>         (aarch64_gen_loadwb_pair): Handle E_TFmode.
>         (aarch64_pop_regs): Use aarch64_reg_save_mode to get mode.
>         (aarch64_gen_store_pair): Handle E_TFmode.
>         (aarch64_gen_load_pair): Ditto.
>         (aarch64_save_callee_saves): Handle different mode sizes.
>         (aarch64_restore_callee_saves): Ditto.
>         (aarch64_components_for_bb): Check for simd function.
>         (aarch64_epilogue_uses): New function.
>         (aarch64_process_components): Check for simd function.
>         (aarch64_expand_prologue): Ditto.
>         (aarch64_expand_epilogue): Ditto.
>         (aarch64_expand_call): Ditto.
>         (TARGET_ATTRIBUTE_TABLE): New define.
>         * config/aarch64/aarch64.h (EPILOGUE_USES): Redefine.
>         (FP_SIMD_SAVED_REGNUM_P): New macro.
>         * config/aarch64/aarch64.md (V23_REGNUM) New constant.
>         (simple_return): New define_expand.
>         (load_pair_dw_tftf): New instruction.
>         (store_pair_dw_tftf): Ditto.
>         (loadwb_pair<TX:mode>_<P:mode>): Ditto.
>         ("storewb_pair<TX:mode>_<P:mode>): Ditto.
>
> 2018-08-20  Steve Ellcey  <sellcey@cavium.com>
>
>         * gcc.target/aarch64/torture/aarch64-torture.exp: New file.
>         * gcc.target/aarch64/torture/simd-abi-1.c: New test.
>         * gcc.target/aarch64/torture/simd-abi-2.c: Ditto.
>         * gcc.target/aarch64/torture/simd-abi-3.c: Ditto.
>         * gcc.target/aarch64/torture/simd-abi-4.c: Ditto.

@@ -4469,6 +4536,9 @@ aarch64_restore_callee_saves (machine_mode mode,
    unsigned regno;
    unsigned regno2;
    poly_int64 offset;
+  HOST_WIDE_INT mode_size;
+
+  gcc_assert (GET_MODE_SIZE (mode).is_constant(&mode_size));
  
I think you want to use the gcc_unreachable approach here:

   if (!GET_MODE_SIZE (mode).is_constant(&mode_size))
     gcc_unreachable ();

just in case the gcc_assert is compiled out.



  parent reply	other threads:[~2018-09-04 11:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-31 22:25 Steve Ellcey
2018-08-01 12:14 ` Kyrill Tkachov
2018-08-06 22:14   ` Steve Ellcey
2018-08-07 16:01     ` Steve Ellcey
2018-08-07 17:37     ` Segher Boessenkool
2018-08-20 17:37       ` Steve Ellcey
2018-08-31 17:54         ` Steve Ellcey
2018-09-04 11:38         ` Kyrill Tkachov [this message]
     [not found]           ` <DB5PR08MB1030070F731C5909C6FFEC0283030@DB5PR08MB1030.eurprd08.prod.outlook.com>
2018-09-04 17:20             ` Wilco Dijkstra
2018-09-04 20:50               ` Steve Ellcey

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=5B8E6EA3.6020704@foss.arm.com \
    --to=kyrylo.tkachov@foss.arm.com \
    --cc=James.Greenhalgh@arm.com \
    --cc=Marcus.Shawcroft@arm.com \
    --cc=Richard.Earnshaw@arm.com \
    --cc=Richard.Sandiford@arm.com \
    --cc=Wilco.Dijkstra@arm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=segher@kernel.crashing.org \
    --cc=sellcey@cavium.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).