Gcc 3.1 performance regressions with respect to 2.95.3
David Edelsohn
dje@watson.ibm.com
Mon Mar 18 13:03:00 GMT 2002
>>>>> 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
More information about the Gcc
mailing list