> I built cross-compilers for 30 targets, and built Linux with that. > 6 of those failed for unrelated reasons. Of the 24 that do build, > five show a few insns difference between having a cleanup_cfg before > shrink-wrapping or not (CLEANUP_EXPENSIVE made no difference there). > These targets are s390, blackfin, m68k, mn10300, nios2.
Interesting, thanks for experimenting. > It turns out that prepare_shrink_wrap *does* care about block structure: > namely, it only moves insns from the "head" block to a successor. It > then makes a difference when the cleanup_cfg can merge two successor blocks > (say, the first is a forwarder block). This happens quite seldomly. > > So, shall I put a cleanup_cfg back before shrink-wrapping? Yes, I'd only swap CLEANUP_EXPENSIVE with 0, i.e. leave the calls themselves and add a comment on the first one saying that this helps shrink-wrapping too. -- Eric Botcazou