Hi Kyrill, > + /* Reduce the maximum size with -Os. */ > + if (optimize_function_for_size_p (cfun)) > + max_set_size = 96; > +
> .... This is a new "magic" number in this code. It looks sensible, but how > did you arrive at it? We need 1 instruction to create the value to store (DUP or MOVI) and 1 STP for every 32 bytes, so the 96 means 4 instructions for typical sizes (sizes not a multiple of 16 can add one extra instruction). I checked codesize on SPECINT2017, and 96 had practically identical size. Using 128 would also be a reasonable Os value with a very slight size increase, and 384 looks good for O2 - however I didn't want to tune these values as this is a cleanup patch. Cheers, Wilco