<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzFVdtu20YQ_RrpZSCBJkVJftCD4wvgwkWMJkGBvhjL5VLcaMll92LV-fqeWUmW5LhAgxQoQInkXmbPnDlzWNn6ZVXb5ilYa_y0kjTKl9KIfk26H2IY5Zej4mqU3Yyyq1H54bgyCDddfxuVN1jfhjB4Xpbf4Vrr0MZqKm2HF2OeD7fJ4OxXJRHyrtFGedwXy8Uym2d4-i4wzt0dmv5v_xqU053qgzA0iCBbCpZE_TX6AKBG98pRaJ3yrTU1ddEEPRiNwWct6PrhNIf7tPyRg_yXWeR4eif0P-dhXoBcOiW8BtuhVe8kYnsSVKletp1wm_0Cj7Em9jJoTCOUdgqxti0Q6x5bFDEyHsC_D9oYkjhO1dQ425HoLQ5zGIsesRBxw2daaoQ2tEUUaGAR-1o1OKwmpxrlAEFhdHqazD0Fp7EAW2vLOLVPxFxTFVGVQF6pziMb7akVHnmoPh3C-QJQynkrXqgScpPqGciAjkB5drFgITaLZbUoGyYRUb2le1DggxI18hIu7A7X3hoRVAqH6lRGdW9wtuJZkRhYETXyJ_WunCqsweYTZXHEVFMg_nwoyq9HcQGiCEHIVtXAOKWPPX16Ab7uj13WuKoXApECe5jVgjlEFo0Fv1iDjAeBuIEgtIH1REw6xYFRYHGJ34FR1O21PPN9IGmj4UBgVsgQk6r2oRLFSaNnuziawOEpQRbLYbI8mfRRSuV9EzkeK-SM0M-g5VVmKYktyhucjaDP205x4seOlnJKv_MhqUCJ7UMtmECg3AnyPawn7pP-kzWN8g-4aCJpYqGK6FibbCH-zEks0eRjQRO0jmxHxc23ixlNtjQ9WwTHm3Tc2DTZdddk130T9hBsKl99g2k4EMOO8X-imp-juru6f_jy2-0bVFymV5-AM_wZITR-3vdlUjxY5mOho4H70j-xRzyxhFDhPhwndoILXFqnOvt8sJMj6O91xqpNjVBb5XsMQikWPga16BTp1Je69dNpLKzZKmPedDK6o07WEv2gpbbR7wQYznL1qVcY8drYShg8JSw8slViw-9b7pmdO6pOB_YScHSCYEoP1m6SV-3iX6fP4t0t2RiGFG3JhWLZ7h3q3zHJ-NjO2Yt8KoC3T8bKhPO02fGq-6Bcn2bOmBjXq6K-LC7FWMTQWrf6xfaP3tt-HJ1Z_fCnTHsf07esLPJiPm5XeVUs1axYZlmWN1VWFeVyNiuXZa3KRV40amxEpYxfQYFQ3fjnj9SrPMvh-xfzPC_Kcj69KBYqv5SLXDTzurxsRrNMdfh4TDnO1Lr12K1SyCpCnLPMaB_8cVJ4r9e9Uglhnvd6oyXuTC9ucav0GkZ3HBEqVqLf-OPIgVEeQYpBB6NWnx5vry9QpLu9bW9ZP1yrKmoYcWqA_Vc9CerNB32csl6llP8GAbohlQ>53236</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            SPEC17/parest will not build with increased inliner threshold
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            nikic,
            uweigand,
            aeubanks,
            JonPsson
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          JonPsson
      </td>
    </tr>
</table>

<pre>
    dof_tools.bc (clang input):
[dof_tools.tar.gz](https://github.com/llvm/llvm-project/files/7878060/dof_tools.tar.gz)

Experimental patch to adjust inliner threshold multiplier via CL:
[InlinePatch.tar.gz](https://github.com/llvm/llvm-project/files/7878062/InlinePatch.tar.gz)

Experimentally increasing the inliner threshold on a benchmark inlines a function entirely whithin one file while still called from another causes linker to fail with 'undefined reference'.

I tried to do a bisect, but it seems this has been failing all the way back to at least 2017 (f78b75f), so I instead started to isolate the problem.

I have applied an experimental patch to be able to adjust the InliningThresholdMultiplier (attached). On SystemZ this is by default '3'. I found that parest compiles fine up to '5', but not with '6'. I could then actually compile all files with '6', and just one with '5', and successfully link.

The one file that was troublesome is dof_tools.cc. With the patch applied (all other files with '6'):

clang++ -c -o source/dofs/dof_tools.o  -O3 -march=z14 -w ./dof_tools.bc -mllvm -inline-thresh-mult=5
[link success]

clang++ -c -o source/dofs/dof_tools.o  -O3 -march=z14 -w ./dof_tools.bc -mllvm -inline-thresh-mult=6
[link FAILURE]

The function in question seems to be 'dof_couplings_from_component_couplings'. It is removed from dof_tools.s with '6', but this doesn't work as it is called from mg_dof_tools.s as well.

I find it suspicious that the function is not '.global' but '.weak' when still emitted in dof_tools.s. Looking at the Clang FE output (.bc file), dof_couplings_from_component_couplings is marked as 'dso_local', but not 'internal'.


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFVdtu4zYQ_Rr7hbBgS5HtPPghmwuQIsUG3S0K9MWgqJHFNSWqvMTNfn3P0HZsZ1OgBQoUkC2Jl-GZM2eOKlu_rmrbrIO1xmeVEqN8qYzsN0L3Qwyj_HpU3Iymd6Ppzaj8dFoZpMs230flHda3IQyel-UPuDY6tLHKlO3wYszL8TYZnP1GCiEfGm3I475YLpbT-RRPPwTGuftD0__9nwM53VEfpBGDDKoVwQpZf4s-AKjRPTkRWke-taYWXTRBD0Zj8EVLcft0nsNjWv7MQf7LLHI8fRD67_Mwr0CuHEmvwXZo6YNEbC-kqKhXbSfd9rDAY6yJvQoa0wilHSHWrgVi3WMLCUbGA_j3QRsjFI6jWjTOdkL2Foc5jEWPWIi45TOtaKQ2Yoco0MAi9jU1OKwWjhpygEAYzc6TeRTBaSzA1toyTu0TMbeiiqhKEJ6o88hGe9FKjzyoT4dwvgCUct7JV1FJtU31DMKAjiDy6WzBQmwWy2pRNkwionorHkGBDyRr5CVd2B-uvTUyUAqH6lSGunc4W_lCQg6siBr5C_pQThXWYPOZsjhiqikQfz0W5eeTuABRhiBVSzUwZuJzL768Al_3-z5rXNWrAJESe5jVgjlEFo0Fv1iDjAeJuEFAaAPrSTDpIg6MAotL_I6Mom5v5ZkfAikbDQcCs1KFmFR1CJUoThq92MXRJA5PCbJYjpPl2aSPSpH3TeR4rJALQr-CljeZpSR2KG9wNoI-bzvixE8drVQmfuNDUoES28daMIFAuRfkR1jP3Cf9J2sa5Z9wiYkSEwtVRMfaZAvxF05ihZh8LsQEraPaUXH3fXYlJjuRXSyC4006bmwx2XfXZN99E_YQbCrffINpOBLDjvF_oppfonq4eXz69Zf7d6i4TG8-AWf4I0Jo_Hzoy6R4sMzHQkcD96Vfs0esWUKocB9OE3vBBS6to86-HO3kBPpHnbFqUyPUlnyPQSjFwsegFp0inftSt1mfx8KaHRnzrpPRHXWylugHrbSNfi_AcJGrT73CiDfGVtLgKWHhkR3JLb_vuGf27kidDuwl4OgMQSaerN0mr9rHv02fxYd7YWMYUrQlF4ple3Cof8Yk42M7Zy_yqQDero1VCed5s-NV94Fcn2YumBjXq6K-Lq7lOOhgaPXl-f52hs0PBzvZcV4co4oaBpEKc_japETffWjG0ZnVv_4Aau9j-gKWRV7Mx-3qSsm8mZW5uqJFSQu1nFXT6awuqKxymtXTsZEVGb-CbqHVsV7l0xxeP5vneVGW82xWLCi_VotcNvO6vG5GV1Pq8MHI-ODMus3YrRKGKkKQV1OjffCnSem93vREKX6e93qrFe5MKW5xR3oDczuNSIqV7Lf-NPKT7Z-9tz2PAKCMobVudRwdp4RXKdu_ALd7DM8">