This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][AArch64] Improve aarch64_modes_tieable_p
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: James Greenhalgh <James dot Greenhalgh at arm dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, nd <nd at arm dot com>
- Date: Thu, 2 Jun 2016 16:19:51 +0000
- Subject: Re: [PATCH][AArch64] Improve aarch64_modes_tieable_p
- Authentication-results: sourceware.org; auth=none
- Nodisclaimer: True
- References: <AM3PR08MB0088A7DE850BC3BF6579AA4B836F0 at AM3PR08MB0088 dot eurprd08 dot prod dot outlook dot com>,<20160427144829 dot GA1066 at arm dot com>,<AM3PR08MB00885706D9FEF34547BC0D8A83480 at AM3PR08MB0088 dot eurprd08 dot prod dot outlook dot com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:23
ping
________________________________________
From: Wilco Dijkstra
Sent: 17 May 2016 17:08
To: James Greenhalgh
Cc: gcc-patches@gcc.gnu.org; nd
Subject: Re: [PATCH][AArch64] Improve aarch64_modes_tieable_p
James Greenhalgh wrote:
> It would be handy if you could raise something in bugzilla for the
> register allocator deficiency.
The register allocation issues are well known and we have multiple
workarounds for this in place. When you allow modes to be tieable
the workarounds are not as effective.
> - if (TARGET_SIMD
> - && aarch64_vector_mode_p (mode1)
> - && aarch64_vector_mode_p (mode2))
> + if (aarch64_vector_mode_p (mode1) && aarch64_vector_mode_p (mode2))
> + return true;
> This relaxes the TARGET_SIMD check that would have prevented
> OImode/CImode/XImode ties when !TARGET_SIMD. What's the reasoning
> behind that?
There is no need for TARGET_SIMD checks here - in order to create a
vector_struct mode you need to call aarch64_array_mode_supported_p first.
> + /* Also allow any scalar modes with vectors. */
> + if (aarch64_vector_mode_supported_p (mode1)
> + || aarch64_vector_mode_supported_p (mode2))
> return true;
> Does this always hold? It seems like you might need to be more restrictive
> with what we allow to avoid ties with some of the more obscure modes
> (V4DF etc.).
Well it is safe to always return true - this passes regression tests (it's just a bad
idea from a CQ point of view).
Wilco