Although there's no fundamental reason why shrink wrapping and speculation tracking...
authorRichard Earnshaw <rearnsha@arm.com>
Fri, 2 Nov 2018 13:36:31 +0000 (13:36 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Fri, 2 Nov 2018 13:36:31 +0000 (13:36 +0000)
commit5f7dbaa0adbe5148029177b198ae3dc26e1ff257
tree7bc293d3f558b3a1a46af0fbbe90f11082d072ac
parent4c998ca548aa95e48f095604e96732de8d03de1c
Although there's no fundamental reason why shrink wrapping and speculation tracking are incompatible...

Although there's no fundamental reason why shrink wrapping and
speculation tracking are incompatible, a phase-ordering requirement
(we need to do speculation tracking before the final basic block
clean-up) means that the shrink wrapping pass can undo some of the
changes the speculation tracking pass makes.  The result is that the
tracking, while still safe is less comprehensive than we really want.

So to keep things simple, and because the tracking code is quite
expensive anyway, it seems best to just disable that pass when we are
tracking speculative execution.

 * config/aarch64/aarch64.c (aarch64_override_options): Disable
 shrink-wrapping when -mtrack-speculation.

From-SVN: r265747
gcc/ChangeLog
gcc/config/aarch64/aarch64.c