This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Gcc 3.1 performance regressions with respect to 2.95.3
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: law at redhat dot com
- Cc: Michael Matz <matzmich at cs dot tu-berlin dot de>, gcc at gcc dot gnu dot org
- Date: Mon, 18 Mar 2002 15:58:05 -0500
- Subject: Re: Gcc 3.1 performance regressions with respect to 2.95.3
>>>>> law writes:
law> Ignore libcalls for a minute and investigate why the scheduler decided to
law> move the clobbers away from the use/def sites. Something in the scheduler
law> decided this was a profitable thing to do, when in fact it is a very
law> unprofitable
law> thing to do. If you can find out why, then you have a handle on how to deal
law> with the performance issue.
The LIBCALLs look like:
(clobber (reg:DI X)) [LIBCALL]
(set (subreg:SI (reg:DI X) 0) ...)
(set (subreg:SI (reg:DI X) 4) ...)
(set (reg:DI X) (reg:DI X)) [RETVAL]
(set ... (reg:DI 312))
So, we have DEF-DEF-DEF-DEF-USE chain. Is there anything in the scheduler
attempting to keep DEF-DEF dependencies near each other? In some sense is
the DEF a "USE" of the CLOBBER?
Thanks, David