[LLVMdev] Analysis of polly-detect overhead in oggenc
spop at codeaurora.org
Tue Jul 16 11:42:33 PDT 2013
Star Tan wrote:
> I have found that the extremely expensive compile-time overhead comes from the string buffer operation for "INVALID" MACRO in the polly-detect pass.
> Attached is a hack patch file that simply remove the string buffer operation. This patch file can significantly reduce compile-time overhead when compiling big source code. For example, for oggen*8.ll, the compile time is reduced from 40.5261 ( 51.2%) to 5.8813s (15.9%) with this patch file.
On top of your patch, I have removed from ScopDetection.cpp all printing of LLVM
values, like this:
- INVALID(AffFunc, "Non affine access function: " << *AccessFunction);
+ INVALID(AffFunc, "Non affine access function: ");
there are a good dozen or so of these pretty printing. With these changes the
compile time spent in ScopDetection drops dramatically to almost 0: here is the
longest running one in the compilation of an Android stack:
2.1900 ( 13.7%) 0.0100 ( 7.7%) 2.2000 ( 13.6%) 2.2009 ( 13.4%) Polly - Detect static control parts (SCoPs)
Before these changes, the top most expensive ScopDetection time used to be a few
hundred of seconds.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev