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

Reply via email to