<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>