On 10/23/15 09:03, Richard Biener wrote:
It's a hack. I don't like hacks.
One person's hack can be another person's pragmatism :)
I think the requirement "don't duplicate me" but inlining is ok is somewhat broken.
The requirement is that the SESE region formed by the markers remains as an SESE region with those markers as the entry & exit paths. We don't have a way of expressing exactly that in the compiler. What we do have is the ability to say 'don't duplicate this insn'.
The requirement seems to be sth like the "important" paris of such functions need to dominate/post-dominate each other (technically not even in the same function)?
You're correct that the SESE region could be split across a function boundary in the manner you describe, but the complexity of dealing with that in the backend's partitioning code would be high. Let's not try and enable that from the get-go.
nathan