This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PR64164] drop copyrename, integrate into expand


On Jun  5, 2015, Alexandre Oliva <aoliva@redhat.com> wrote:

> On Apr 27, 2015, Richard Biener <richard.guenther@gmail.com> wrote:

>>> +/* Return the promoted mode for name.  If it is a named SSA_NAME, it
>>> +   is the same as promote_decl_mode.  Otherwise, it is the promoted
>>> +   mode of a temp decl of same type as the SSA_NAME, if we had created
>>> +   one.  */
>>> +
>>> +machine_mode
>>> +promote_ssa_mode (const_tree name, int *punsignedp)
>>> +{
>>> +  gcc_assert (TREE_CODE (name) == SSA_NAME);
>>> +
>>> +  if (SSA_NAME_VAR (name))
>>> +    return promote_decl_mode (SSA_NAME_VAR (name), punsignedp);

>> As above I'd rather not have different paths for anonymous vs. non-anonymous
>> vars (so just delete the above two lines).

> Check

This caused the sparc regression reported by Eric in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64164#c37

We need to match the mode of the rtl created for the partition and the
promoted mode expected for the parm.  I recall working to make parm and
result decls the partition leaders, so that promote_ssa_mode would DTRT,
but this escaped my mind when revisiting the patch after some time on
another project.

So we either restore promote_ssa_mode's check for an underlying decl, at
least for PARM_ and RESULT_DECLs, or further massage function.c to deal
with the mode difference.  Any preference?


I'm reverting the patch for now, so that we don't have to rush to a fix
on this, and I can have more time to test and fix other arches.  It was
a terrible mistake to not do so before submitting the final version of
the patch, or at least before installing it.  I apologize for that.

-- 
Alexandre Oliva, freedom fighter    http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/   FSF Latin America board member
Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]