Although there's no fundamental reason why shrink wrapping and 76/198476/3
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Nov 2018 13:36:31 +0000 (13:36 +0000)
committerDongkyun Son <dongkyun.s@samsung.com>
Wed, 6 Feb 2019 15:59:32 +0000 (00:59 +0900)
commite98f28299c49093f3100bc77c5174c7f85095f3f
tree1f00e20614ea3484b741ef97dea2f18c4b4424f8
parentf0815b07a172fef498eddc36b5aa0c5047952419
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.

(backported 3024ac6836fa5a0f8ab539a0823bfb609aef0e93)

Change-Id: I894aa3562b8ddfc951e2eb33c15bd9d79c423c0f
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265747 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64.c