[PR64164] drop copyrename, integrate into expand
Alexandre Oliva
aoliva@redhat.com
Wed Jun 10 00:28:00 GMT 2015
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
More information about the Gcc-patches
mailing list