<html>
<head>
<base href="https://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - Long compile times, high memory usage for function containing large number of inlined functions"
href="https://llvm.org/bugs/show_bug.cgi?id=25280">25280</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Long compile times, high memory usage for function containing large number of inlined functions
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>3.6
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>C++11
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>chris.schaf@verizon.net
</td>
</tr>
<tr>
<th>CC</th>
<td>dgregor@apple.com, llvm-bugs@lists.llvm.org
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>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</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>