[PATCH] Inliner Enhancement
Renato Golin
renato.golin at linaro.org
Wed Mar 18 04:09:44 PDT 2015
Hi Jiangning,
AFAICT, your design considerations are sound and relevant.
The "ABC problem" seems nasty. Without much thinking, could you use a lazy evaluation by annotating code with metadata stating the current threshold for that particular BB/Loop? If instead of passing through the code multiple times (for ABC and ABD, etc), you could memoize the info in a graph-like metadata, so that you could re-use partial calculations in future inlinings. It may not be worth it, but if reading from this metadata is quicker than re-calculating, that it'd at least be faster. Also, such metadata could (should?) be quickly discarded anyway, as after inlining, the costs will change.
About your benchmarks, they're very promising numbers. Taking 3% code-size for 1.5% performance is not a bad choice. Have you tested/benchmarked in other arches? Would be good to know at least on x86_64 and ARM how that goes.
I'll see if I can run those same tests on ARM, at least.
cheers,
--renato
REPOSITORY
rL LLVM
http://reviews.llvm.org/D8408
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list