Hi! On Tue, Mar 03, 2020 at 10:25:32PM +0100, Jan Hubicka wrote: > I think this is bit stronger to what llvm does currently which relies on > outlining SESE regions earlier rather than going through the pain of > implementing support for partitioning.
OTOH outlining can result in improved code, too (it will naturally keep all "cold" variables in the cold outlined function, because of SESE). > 3) function partitioning is enabled only for x86. I never had time to > get it working on other targets and no-one picked up this task What makes this not completely generic in the first place? > 8) Most of non-x86 backends do not implement very well the hot/cold > code models and instruction choice. I'm not sure what this means, could you expand? > 9) Shrink-wrapping and register allocation is not always able to move > spilling to code paths but this is generally very hard problem to > track. Separate shrink-wrapping should handle this quite well. But, currently shrink-wrapping does not move existing code very much, which could improve this further (doing some kind of rematerialisation, essentially). Segher