On Fri, Nov 2, 2018 at 3:04 PM Richard Earnshaw (lists) <richard.earns...@arm.com> wrote: > > On 02/11/2018 13:53, Richard Biener wrote: > > On Fri, Nov 2, 2018 at 2:38 PM Richard Earnshaw (lists) > > <richard.earns...@arm.com> wrote: > >> > >> 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. > > > > Shouldn't you be able to do this per function at least? > > > > do what per function? track speculation?
disable shrink-wrapping only when any speculation was there (this is about __bultin_speculation_safe_value, no?) Richard. > R. > > > Richard. > > > >> * config/aarch64/aarch64.c (aarch64_override_options): Disable > >> shrink-wrapping when -mtrack-speculation. > >> > >> Committed. >