[llvm-bugs] [Bug 25280] New: Long compile times, high memory usage for function containing large number of inlined functions

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Oct 21 19:20:17 PDT 2015


https://llvm.org/bugs/show_bug.cgi?id=25280

            Bug ID: 25280
           Summary: Long compile times, high memory usage for function
                    containing large number of inlined functions
           Product: clang
           Version: 3.6
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++11
          Assignee: unassignedclangbugs at nondot.org
          Reporter: chris.schaf at verizon.net
                CC: dgregor at apple.com, llvm-bugs at lists.llvm.org
    Classification: Unclassified

I have a function (obj_scan) containing a large computed goto table that calls
a lot of small functions (obj_scan_helper<...>).  The small functions get
inlined in the larger one and the file takes 25 min and 12G to compile.
If compiled with -fno-inline it takes 30 seconds to compile.

The top time consuming passes are:
                     ... Pass execution timing report ...
===-------------------------------------------------------------------------===
  Total Execution Time: 1261.3373 seconds (1262.7082 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  ---
Name ---
  429.6477 ( 35.0%)   0.0040 (  0.0%)  429.6517 ( 34.1%)  429.8509 ( 34.0%) 
Virtual Register Rewriter
  241.7193 ( 19.7%)   0.5819 (  1.8%)  242.3012 ( 19.2%)  242.6868 ( 19.2%) 
Debug Variable Analysis
  113.4798 (  9.2%)   0.0390 (  0.1%)  113.5187 (  9.0%)  113.7074 (  9.0%) 
Global Value Numbering
  65.2541 (  5.3%)  21.0698 ( 65.1%)  86.3239 (  6.8%)  86.3884 (  6.8%)  X86
Assembly / Object Emitter
  41.2397 (  3.4%)   2.9026 (  9.0%)  44.1423 (  3.5%)  44.2051 (  3.5%)  X86
DAG->DAG Instruction Selection
  41.4487 (  3.4%)   1.4438 (  4.5%)  42.8925 (  3.4%)  42.9269 (  3.4%) 
Combine redundant instructions
  34.6877 (  2.8%)   0.7769 (  2.4%)  35.4646 (  2.8%)  35.4935 (  2.8%) 
Combine redundant instructions
  32.9990 (  2.7%)   0.6099 (  1.9%)  33.6089 (  2.7%)  33.6429 (  2.7%) 
Combine redundant instructions
  21.5297 (  1.8%)   0.7679 (  2.4%)  22.2976 (  1.8%)  22.3165 (  1.8%) 
Combine redundant instructions
  20.9568 (  1.7%)   0.7549 (  2.3%)  21.7117 (  1.7%)  21.7295 (  1.7%) 
Combine redundant instructions
  20.7479 (  1.7%)   0.4879 (  1.5%)  21.2358 (  1.7%)  21.2600 (  1.7%) 
Combine redundant instructions
  12.8680 (  1.0%)   0.0030 (  0.0%)  12.8710 (  1.0%)  12.8740 (  1.0%) 
Module Verifier
  12.8340 (  1.0%)   0.0000 (  0.0%)  12.8340 (  1.0%)  12.8522 (  1.0%) 
CodeGen Prepare
  12.6951 (  1.0%)   0.0040 (  0.0%)  12.6991 (  1.0%)  12.7133 (  1.0%) 
Module Verifier
  10.3014 (  0.8%)   0.0010 (  0.0%)  10.3024 (  0.8%)  10.3096 (  0.8%) 
Eliminate PHI nodes for register allocation

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20151022/a058f90d/attachment.html>


More information about the llvm-bugs mailing list