[mid-end][__RTL] Set global epilogue_completed in skip_pass
authorMatthew Malcomson <matthew.malcomson@arm.com>
Fri, 15 Nov 2019 12:10:56 +0000 (12:10 +0000)
committerMatthew Malcomson <matmal01@gcc.gnu.org>
Fri, 15 Nov 2019 12:10:56 +0000 (12:10 +0000)
commit6239665976be7829cb973b4b59f7575d7079058e
tree8dbd3ba7dd436ede97a53b55f801e2307dbcf136
parent8916ba874dae00edc04face497360ce4eb3ea95b
[mid-end][__RTL] Set global epilogue_completed in skip_pass

Set global epilogue_completed when skipping pro_and_epilogue pass

When compiling RTL functions marked to start at a pass after the reload
pass, `skip_pass` is used to mark the reload pass as having completed
since many patterns use the `reload_completed` variable to determine
whether to run or not.

Here we do the same for the `epilogue_completed` variable and the
pro_and_epilogue pass.

Also include a testcase that relies on the availability of a
define_split in the aarch64 backend that is conditioned on this
`epilogue_completed` variable.

regtest done on native aarch64
regtest done on native x64_86

gcc/ChangeLog:

2019-11-15  Matthew Malcomson  <matthew.malcomson@arm.com>

* passes.c (skip_pass): Set epilogue_completed if skipping the
pro_and_epilogue pass.

gcc/testsuite/ChangeLog:

2019-11-15  Matthew Malcomson  <matthew.malcomson@arm.com>

* gcc.dg/rtl/aarch64/test-epilogue-set.c: New test.

From-SVN: r278285
gcc/ChangeLog
gcc/passes.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/rtl/aarch64/test-epilogue-set.c [new file with mode: 0644]