Hi Richard, On Mon, Nov 05, 2018 at 10:09:30AM +0000, Richard Earnshaw (lists) wrote: > >>> 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?) > > Only indirectly. This is about the tracking code that tracks > conditional branches and propagates that information through call/return > sequences. Shrink wrapping messes with the prologue/epilogue sequences > after the speculation tracking pass has run and unknowingly deletes some > of the additional code that was previously inserted by the tracking pass.
Do you have an example of this? Shrink-wrapping does not generally delete any code. Segher