https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88083
--- Comment #1 from iii at gcc dot gnu.org --- Author: iii Date: Tue Nov 20 09:32:49 2018 New Revision: 266306 URL: https://gcc.gnu.org/viewcvs?rev=266306&root=gcc&view=rev Log: S/390: Skip LT(G) peephole when literal pool is involved By the time peephole optimizations run, we've already made up our mind whether to use base-register or relative addressing for literal pool entries. LT(G) supports only base-register addressing, and so it is too late to convert L(G)RL + compare to LT(G). This change should not make the code worse unless building with e.g. -fno-dce, since comparing literal pool entries to zero should be optimized away during earlier passes. gcc/ChangeLog: 2018-11-20 Ilya Leoshkevich <i...@linux.ibm.com> PR target/88083 * config/s390/s390.md: Skip LT(G) peephole when literal pool is involved. * rtl.h (contains_constant_pool_address_p): New function. * rtlanal.c (contains_constant_pool_address_p): Likewise. gcc/testsuite/ChangeLog: 2018-11-20 Ilya Leoshkevich <i...@linux.ibm.com> PR target/88083 * gcc.target/s390/pr88083.c: New test. Added: trunk/gcc/testsuite/gcc.target/s390/pr88083.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/s390/s390.md trunk/gcc/rtl.h trunk/gcc/rtlanal.c trunk/gcc/testsuite/ChangeLog