This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] MIPS: remove comparison modes in branches + combiner fix
- From: Adam Nemet <anemet at caviumnetworks dot com>
- To: Jim Wilson <wilson at specifix dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 15 Dec 2005 11:15:04 -0800
- Subject: Re: [PATCH] MIPS: remove comparison modes in branches + combiner fix
- References: <17299.59498.920492.969027@localhost.localdomain> <4394DC47.4030002@specifix.com> <17313.11077.189892.519643@localhost.localdomain>
I write:
> Index: gcc/combine.c
> ===================================================================
> --- gcc/combine.c (revision 108488)
> +++ gcc/combine.c (working copy)
> @@ -6356,7 +6356,9 @@ make_extraction (enum machine_mode mode,
> }
> else if (REG_P (inner))
> {
> - if (tmode != inner_mode)
> + if (tmode != inner_mode
> + && TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (tmode),
> + GET_MODE_BITSIZE (inner_mode)))
> {
> /* We can't call gen_lowpart in a DEST since we
> always want a SUBREG (see below) and it would sometimes
This part is incorrect of course because now we unconditionally run
the else arm even if tmode != inner_mode. I don't know what I was
thinking. I withdraw the patch.
Adam