S/390: Remove loc splitter
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Wed, 12 Jul 2017 15:00:58 +0000 (15:00 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Wed, 12 Jul 2017 15:00:58 +0000 (15:00 +0000)
commit561f6312f2fb078dcbe8fa8197a515b7abf339fe
treefa07524700f01f4173f2597baf78d9fcd584d8ec
parente5309d958112d799eae39f67b8660a11698e1328
S/390: Remove loc splitter

The backend splitter splitting a 3 operand load on condition into 2 is
wrong.  The S/390 load on condition instruction might trap on the
memory operand even if the condition is false.  So if the first load
on condition overwrites a register used as part of the memory address
of the second the second might trigger a segfault even if it does not
actually perform the load.

Trying to fix this I noticed that the generated code looks anyway
better without the splitter.  So removing the splitter entirely is the
way to go here.

gcc/ChangeLog:

2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.md: Remove movcc splitter.

From-SVN: r250153
gcc/ChangeLog
gcc/config/s390/s390.md