<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56796>56796</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            help on using of LibCallSimplifier 
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

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

<pre>
    https://github.com/llvm/llvm-project/blob/999514bb9ae1e0125d2a778abaec1b8dac6d3e6f/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h#L97-L100

hello! I am reading the source of a project built on llvm, and there is a use of LibCallSimplifier::optimizeCall(Instruction*), I simply read the annotation of this function and the class it belong to, but I still don't understand what this class and this function do exactly with the instruction.

In short, what exactly does Libcall mean here, or how distinguish between libcalls and other calls, and how does the so-called "optimize" work? I can't understand why transform "printf" to "puts"(in class annotation)...

thanks for your help!

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVU01v2zAM_TX2hahhy4kdH3zoWhQI0Nu2H0BbcqxVlgJ9LMt-_Ui7WTqglwFGFFrke4-P9ODktZ9jPIesfszECz0nHec0FKNbKDDm5-14OHv3Q42RwsG4gY6u6_bVbhg6VJUqK7GXAtv2gAOqsRoOEsdG1qqZ7jjajiZJdX_xzaMNk_NLoOB71IbPr3o5Gz1dX_XwhMaEYs5E_dq1D69VWWblc1Y-br-zMsZlooIj4AJeodT2BHFWEFzyowI3AcK7bhiSNhGchY37CdBKTvYKdKC8FNaCd9Z3EVp5dqZ-dOeoF_1b8V0mDkcbok9j1M5mgpzrGPAIgauuq5RVB1rrInIWQ8eZiKZk17IbPYwGQwBNApVxrN8x1pAi45ElBiSTtBGSlcqHyIWXGeOGt5VvYB_hpQP1C8dIci400pVK31UXH408Wgiz85GJV-RbpXQqsCMjdQ2LQgvsF6c5D7O7gNQk0Z6SDjPpjxelyN8tfxPl2GFY45vnax0Db5N64EslIRPiZjL9hYvzb1n9QiaM-En7V4i33eHKs9c2TlwX3RqnSHyCJqXtX4tus6BxFcU_BsQZ7RuZR11daXWoS3Omxdouc9VXzb4rD3VzqHPZ17KrO8yjjkb1nMlLlQLv3mf7A3ny5v8_Mh1CUvw57Ju2a_KZNGBb13U7SqwFirIbGpyGQewOot5xikHaoNBn-y_UuVUXWCHYhf1zrntRClG2gvvY7UTRiKabyp1EgQqnrsl2pVpQm4J1FM6fct-vkoZ0CnRpaNLhfkmO6pNVaqUjfEyRNqjHMFeHvchX6n6V_gdsFHPq">