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