+2016-10-18 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select
+ {SAVE,REST}_MULTIPLE if shrink-wrapping separate components.
+ (rs6000_get_separate_components): Assert we do not have those
+ strategies selected.
+
2016-10-18 Richard Biener <rguenther@suse.de>
* tree-ssa-propagate.h (substitute_and_fold): Adjust prototype.
if (TARGET_MULTIPLE
&& !TARGET_POWERPC64
&& !(TARGET_SPE_ABI && info->spe_64bit_regs_used)
- && info->first_gp_reg_save < 31)
+ && info->first_gp_reg_save < 31
+ && !(flag_shrink_wrap
+ && flag_shrink_wrap_separate
+ && optimize_function_for_speed_p (cfun)))
{
/* Prefer store multiple for saves over out-of-line routines,
since the store-multiple instruction will always be smaller. */
sbitmap components = sbitmap_alloc (32);
bitmap_clear (components);
+ gcc_assert (!(info->savres_strategy & SAVE_MULTIPLE)
+ && !(info->savres_strategy & REST_MULTIPLE));
+
/* The GPRs we need saved to the frame. */
if ((info->savres_strategy & SAVE_INLINE_GPRS)
&& (info->savres_strategy & REST_INLINE_GPRS))