<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56677>56677</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
optimize for builtin functions
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
BaoshanPang
</td>
</tr>
</table>
<pre>
Is it possible to teach llvm do optimizations on builtin functions?
For such code:
void test_mtspr() {
__builtin_ppc_mtspr(3,5);
__builtin_ppc_mtspr(3,5);
}
With command:
clang -cc1 -internal-isystem ~/mywork/llvm/build/lib/clang/15.0.0/include -nostdsysteminc -triple powerpc-unknown-unknown -S y.c -O2
The generated asm code is like this:
# %bb.0: # %entry
li 3, 5
mtudscr 3
mtudscr 3
blr
Can LLVM remove the second mtudscr?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVU9uK2zAQ_Rr5ZbBx5HWcPPghu9tAYUsLLe1j0GUSqytLRpIT0q_v2MkmC4WWGqMZn7nozMXS63P7MYJJMPgYjbQIyUNCoTqw9tiD9uCHZHrzSyTjXQTvQI7GJuNgPzo1g6zasvKZlZutDxBHilVeI6s2F_TojaacMe36FIfA-IrxNbDm8WLe7a4Jd8Ogbi4V4081-bHq_9xY83xRfpg08eh74fSNirLCHSBXagG5cQmDEzY38RwT9sToA-Pb_nzy4ZWUqX4S0616-jSSzjkByUVdlEVJinHKjhohdz4mfclEGOQpmIHaOfgThkHlo3t1_uTeJORf4VyQ22d-YfatQzigwyASahCxn3sIJoI1rzSVzsRbFYxXwHgtJTGoNvCP5-qNLoXzJX5CrYGpd1DfoT6NOqpA-N8gacOVxbvzSTh4efn-CQL2_jjRRYiovNNvKWhHMt1Wel2tRZZMstheFwthT2vzx1JlY7Btl9Iw18239B5opKMsaKj38UwiH4L_iSpN44hxxEhKvVw2Tda1DYp1vZflqsbVQjdq32DZ1GWzLpe1WvFFZoVEG1tWP7L6OTMtLzkvG84X64fVoimEbPYUtUJconyokD2U2Atji-niwodDFtqZgxwPkYzWxBTvRkF_1cEhvuUXY-p8aB-Fj51wX2iZsplyO_P9DS41G1c">