This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: Don't create pseudos after no_new_pseudos on SH
- From: Joern Rennecke <joern dot rennecke at superh dot com>
- To: From: Alexandre Oliva <aoliva at redhat dot com>
- Cc: Daniel Jacobowitz <drow at mvista dot com>, gcc-patches at gcc dot gnu dot org, echristo at redhat dot com
- Date: Mon, 18 Nov 2002 20:51:30 +0000
- Subject: Re: PATCH: Don't create pseudos after no_new_pseudos on SH
- Organization: SuperH UK Ltd.
It is not good practice to unnecessarily duplicate the test in
zero_extendqisi2 in gen_shl_and . Rather, zero_extendqisi2 and
zero_extendhisi2 should FAIL; when they would need a new pseudo
but can't have one, and this could be tested in gen_shl_and.
However, it doesn't seem right to feed gen_shl_and with this
stuff in the first place. The problem does actually occur before
reload; if it was after reload, the "=r" / "0" constraints would
have straigtened the operand 0 /1 of ashrdi3+3 out. The problem
actually occurs in the (relatively new) pre-register-allocation
splitting pass.
I don't think it buys us anything to run ashrdi3+[12] before
register allocation; the pattern is such that a spill register
will do just as well as a normally allocated hard register, yet
when we split the pattern, we suddenly see the register pressure
on the input / output increased.
So, I think it is best to predicate ashrdi3+[12] on
reload_completed.
--
--------------------------
SuperH (UK) Ltd.
2410 Aztec West / Almondsbury / BRISTOL / BS32 4QX
T:+44 1454 465658