<html>
<head>
<base href="https://bugs.llvm.org/">
</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 - >20% code size regression on tramp3d-v4 with new PM"
href="https://bugs.llvm.org/show_bug.cgi?id=49044">49044</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>>20% code size regression on tramp3d-v4 with new PM
</td>
</tr>
<tr>
<th>Product</th>
<td>new-bugs
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>enhancement
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>new bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>jpaquette@apple.com
</td>
</tr>
<tr>
<th>CC</th>
<td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>1) Using LNT, compile CTMark at -O3 for AArch64 with + without the new PM. (I
used -C target-arm64-iphoneos-internal.cmake + --cflags -O3 --cxxflags -O3)
2) Use llvm-test-suite/utils/compare.py to compare size.__text
test-suite...ark/tramp3d-v4/tramp3d-v4.test 613236 763796 24.6%
Although this is -O3, and size generally isn't a concern there, this is a
pretty big jump in code size. It might be worth looking into if it is not
expected. I think that a lot of this is due to inlining changes.
The following functions grew a lot in size:
__ZN5Pooma11newRelationIN3EOS5pg_igE5FieldI22UniformRectilinearMeshI10MeshTraitsILi3Ed21UniformRectilinearTag12CartesianTagLi3EEEd10MultiPatchI7GridTag6RemoteI5BrickEEESG_SG_S3_IS9_d16ConstantFunctionEEEvRKT_RKT0_RKT1_RKT2_RKT3_
1080 10036 8956
__Z6assignI22UniformRectilinearMeshI10MeshTraitsILi3Ed21UniformRectilinearTag12CartesianTagLi3EEEd14MultiPatchViewI7GridTag6RemoteI5BrickELi3EES5_d13ExpressionTagI10BinaryNodeI8OpDivideSD_I10OpSubtractSD_ISE_5FieldIS5_dSB_ESH_ESH_ESG_IS5_d16ConstantFunctionEEE8OpAssignERKSG_IT_T0_T1_ESU_RKSG_IT2_T3_T4_ERKT5_
632 10436 9804
__Z6assignI22UniformRectilinearMeshI10MeshTraitsILi3Ed21UniformRectilinearTag12CartesianTagLi3EEEd14MultiPatchViewI7GridTag6RemoteI5BrickELi3EES5_d13ExpressionTagI10BinaryNodeI10OpMultiply6ScalarIdESD_I5OpAdd9ReferenceI5FieldIS5_dSB_EESL_EEE8OpAssignERKSJ_IT_T0_T1_ESV_RKSJ_IT2_T3_T4_ERKT5_
496 15576 15080
__Z6assignI22UniformRectilinearMeshI10MeshTraitsILi3Ed21UniformRectilinearTag12CartesianTagLi3EEEd14MultiPatchViewI7GridTag6RemoteI5BrickELi3EES5_d13ExpressionTagI10BinaryNodeI8OpDivide5FieldIS5_dSB_ESG_EE8OpAssignERKSF_IT_T0_T1_ESP_RKSF_IT2_T3_T4_ERKT5_
488 15608 15120
__Z6assignI22UniformRectilinearMeshI10MeshTraitsILi3Ed21UniformRectilinearTag12CartesianTagLi3EEEd14MultiPatchViewI7GridTag6RemoteI5BrickELi3EES5_d13ExpressionTagI9UnaryNodeI6FnSqrt10BinaryNodeI8OpDivideSF_I10OpMultiply6ScalarIdE5FieldIS5_dSB_EESL_EEE8OpAssignERKSK_IT_T0_T1_ESW_RKSK_IT2_T3_T4_ERKT5_
496 15656 15160
(Format: function_name old_pm_size new_pm_size diff)
Then looking at the remarks:
$ ~/llvm-project/llvm/tools/opt-viewer/opt-stats.py diff0.opt.yaml
Top 10 remarks by pass:
asm-printer 53%
gvn 18%
licm 12%
inline 12%
slp-vectorizer 2%
loop-vectorize 2%
prologepilog 1%
regalloc 1%
loop-delete 0%
early-ifcvt 0%
Top 10 remarks:
asm-printer/InstructionMix 52%
gvn/LoadClobbered 18%
inline/Inlined 7%
licm/InstSunk 6%
licm/Hoisted 5%
inline/TooCostly 4%
licm/LoadWithLoopInvariantAddressInvalidated 1%
slp-vectorizer/NotBeneficial 1%
asm-printer/InstructionCount 1%
prologepilog/StackSize 1%</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>