On Sun, Apr 25, 2021 at 08:50:15PM -0500, Bill Schmidt wrote: > + /* If we are inserting ROP-protect instructions, disable shrink wrap. */ > + if (rs6000_rop_protect) > + { > + flag_shrink_wrap = 0; > + flag_shrink_wrap_separate = 0; > + }
Separate shrink-wrapping requires flag_shrink_wrap, so remove that second assignment please? === void try_shrink_wrapping (edge *entry_edge, rtx_insn *prologue_seq) { /* If we cannot shrink-wrap, are told not to shrink-wrap, or it makes no sense to shrink-wrap: then do not shrink-wrap! */ if (!SHRINK_WRAPPING_ENABLED) return; === === void try_shrink_wrapping_separate (basic_block first_bb) { if (!(SHRINK_WRAPPING_ENABLED && flag_shrink_wrap_separate && optimize_function_for_speed_p (cfun) && targetm.shrink_wrap.get_separate_components)) return; === and for completeness === #define SHRINK_WRAPPING_ENABLED \ (flag_shrink_wrap && targetm.have_simple_return ()) === > +-mrop-protect -mprivileged} -mprivileged should not be CPU-specific, the concept applies on all CPUs (but of course is only used on p10 so far). So please document it in the right location :-) Okay for trunk and 11 with those changes. Thanks! Segher