aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/regexp/regexp.go
diff options
context:
space:
mode:
authorIlya Leoshkevich <iii@linux.ibm.com>2018-09-24 14:21:03 +0000
committerIlya Leoshkevich <iii@gcc.gnu.org>2018-09-24 14:21:03 +0000
commitf80316c5d79c3c12a4e97160fcf17d78c5b99fc4 (patch)
tree11ffbecfac733e0290e4bb15c7e73e4330059707 /libgo/go/regexp/regexp.go
parente595522aa89d0cd427d5251456ff7cf347319a9c (diff)
downloadgcc-f80316c5d79c3c12a4e97160fcf17d78c5b99fc4.zip
gcc-f80316c5d79c3c12a4e97160fcf17d78c5b99fc4.tar.gz
gcc-f80316c5d79c3c12a4e97160fcf17d78c5b99fc4.tar.bz2
S/390: Fix conditional returns on z196+
S/390 epilogue ends with (parallel [(return) (use %r14)]) instead of the more usual (return) or (simple_return). This sequence is not recognized by the conditional return logic in try_optimize_cfg (). This was introduced for processors older than z196, where it is sometimes profitable to use call-clobbered register for returning instead of %r14. On newer processors we always return via %r14, for which the fact that it's used is already reflected by EPILOGUE_USES. In this case a simple (return) suffices. This patch changes return_use () to emit simple (return)s when returning via %r14. The resulting sequences are recognized by the conditional return logic in try_optimize_cfg (). gcc/ChangeLog: 2018-09-24 Ilya Leoshkevich <iii@linux.ibm.com> PR target/80080 * config/s390/s390.c (s390_emit_epilogue): Do not use PARALLEL RETURN+USE when returning via %r14. gcc/testsuite/ChangeLog: 2018-09-24 Ilya Leoshkevich <iii@linux.ibm.com> PR target/80080 * gcc.target/s390/risbg-ll-3.c: Expect conditional returns. * gcc.target/s390/zvector/vec-cmp-2.c: Likewise. From-SVN: r264535
Diffstat (limited to 'libgo/go/regexp/regexp.go')
0 files changed, 0 insertions, 0 deletions