This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
I think that at least you need to introduce a new flag for this. You can not make it by default until you prove that there is a performance improvement on a credible benchmark (better for SPEC95 or SPEC2000) on major platforms (x86, x86-64, ppc). Although the optimization removes move insns, the final result might be worse after the reload because the reload might expel the coalesced pseudo-registers from a hard register and only one pseudo-register when coalescing did not happen.Testing: I tested this patch with bootstrap / make check (all languages except Ada) on x86_64-pc-linux-gnu. I also tested an equivalent patch for arm-none-elf using csl-arm-branch. There were no regressions in either case. Bootstrap got 5.5 seconds faster out of 81 minutes, which is in the noise. On x86_64 there was a size improvement of 269 bytes out 590K in some random files from cc1-i-files; on ARM there was a size improvement of about 0.05% in CSiBE.
OK? Comments?
1. trying hard registers from alternative register class too. 2. trying call used hard registers if it is profitable.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |