All tests have been updated.
Now with support for constructors.
Bunch of minor comments, but once those addressed, likely good to go.
Marking to get off my queue.
Addressed most of David's review comments and commented on the ones I didn't address.
- Use typeinfo declarations from vcruntime
I've tested this out on Power with spec2006 and several open-source applications. With spec I saw a pretty similar increase in shrink wrapping opportunities (~11% with -O3 pgo+thinlto, ~7% with just -O3). I've noticed in some instances we do a lot of sinking without enabling new shrink-wrap opportunities though. For example with xalan stats showed we sunk about 4000 copies with this pass, but only enabled 5 new shrink-wrap opportunities and I see a consistent ~2% degradation with ref data. My understanding was enabling more shrink-wrap candidates was the original motivation. Have you considered breaking this up into an analysis that collects what copies are sinkable, and then only sink if doing so is likely to make the block viable for shrink-wrapping?
LGTM w/minor comment applied.
That's the "Add Action..." list-box above the comment box.
Oh well, i guess i covered this in my recent patches anyway (esp. r322787/D41406). Sorry, i just fixed everything differently and it became unclear how to integrate your patch into the whole thing.
This is one of the design options we considered for compression.
But MCPat solution is favored over this one.
This is one design option we considered for Compression but decided not to go with this one.
It only addresses printing instruction, for encoding more code has to be added.
Either InstAlias combo solution or MCPat solution are favored.
Roman asked me to commit this for him off-thread. It's r322805.