]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000: Disable mode promotion for pseudos
authorHaochen Gui <guihaoc@gcc.gnu.org>
Fri, 4 Jun 2021 06:38:53 +0000 (14:38 +0800)
committerHaochen Gui <guihaoc@gcc.gnu.org>
Fri, 4 Jun 2021 06:51:49 +0000 (14:51 +0800)
commit9080a3bf23297885fdc47221da37a71d6dec93c5
tree0cf6e9a10fb45cc7b7df4015608a397618199055
parenta3f6bd7891495a0ed65f7da7a55d36c730328692
rs6000: Disable mode promotion for pseudos

rs6000 has instructions that can do almost everything 32 bit
at least as efficiently as corresponding 64 bit things. The
mode promotion can be defered to when a wide mode is necessary.
So it helps a lot not promote mode for pseudos. SPECint test
shows that the overall performance improvement (by geomean) is
more than 2% with this patch.

testsuite/gcc.target/powerpc/not-promote-mode.c illustrates how
the patch eliminates the redundant extensions and do further
optimization by disabling mode promotion for pseduos.

gcc/ChangeLog

* config/rs6000/rs6000.h (PROMOTE_MODE): Remove.

gcc/testsuite/ChangeLog:

* gcc.target/powerpc/not-promote-mode.c: New.
gcc/config/rs6000/rs6000.h
gcc/testsuite/gcc.target/powerpc/not-promote-mode.c [new file with mode: 0644]