[PATCH] D21405: [PGO] IRPGO pre-cleanup pass changes
Rong Xu via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 15 15:26:52 PDT 2016
xur added a comment.
I did some analysis on the slow down on bzip2: with preinstrumentation inliner we actually are more aggressive on the late simple inline. Here is the related call chain.
BZ2_compressBlock() -> sendMTFValues() --> bsW()
BZ2_compressBlock calls sendMTFValues() one time (1 call site), and
sendMTFValues() has 64 call sites to bsW().
In preinline, we inlines sendMTFValues() to BZ2_compressBlock().
In simple inline, we inlines all 64 calls to bsW() to BZ2_compressBlock().
Without preininline, we inline 2 calls to bsW in sendMTFValues() and then decided to defers the inline to the other calls bsW(). But somehow we do not inline sendMTFValues() to BZ2_compressBlock().
I'm yet to investigate why deferred decision changed in simple inliner. I think this is a rare case that we happen to hit.
More information about the llvm-commits