<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="margin:0;">Hi, there,</div><div style="margin:0;">I met a problem when compiling C source files into IR.</div><div style="text-align: justify; margin: 0px;">The C source files are compiled at O3 optimization level by clang into IR. There is a <span class="typoRed" evid="1600586060714.5542" id="1600586060714.5542">functon</span> that I hope to always inline. So I add an always_inline attribute to the <span class="typoRed" evid="1600586060714.3425" id="1600586060714.3425">function. </span></div><div style="text-align: justify; margin: 0px;">But <span class="typoRed" evid="1600586060715.0183" id="1600586060715.0183">except inlining I</span> hope to run no optimization on it for performance reason, because it has been tuned at its best. I don't want clang to optimize it <span class="typoRed" evid="1600586060715.2925" id="1600586060715.2925">except inlining</span> it.</div><div style="text-align: justify; margin: 0px;">I have tried optnone <span class="typoRed" evid="1600586060715.4304" id="1600586060715.4304">attribute</span>. But it is incompatible with <span class="typoRed" evid="1600586060715.9556" id="1600586060715.9556">always_inline. </span></div><div style="text-align: justify; margin: 0px;">I have also tried to add something like this.</div><div style="text-align: justify; margin: 0px;">----------------------------------------------<span class="typoRed" evid="1600586060715.494" id="1600586060715.494">----------</span></div><div style="text-align: justify; margin: 0px;">__attribute__((always_inline)) void conv2d_reduce() {</div><div style="text-align: justify; margin: 0px;">#pragma clang <span class="typoRed" evid="1600586060715.2131" id="1600586060715.2131">optimize</span> off</div><div style="text-align: justify; margin: 0px;"><span class="typoRed" evid="1600586060715.1553" id="1600586060715.1553">/*     function</span> <span class="typoRed" evid="1600586060715.6455" id="1600586060715.6455">body      */</span></div><div style="text-align: justify; margin: 0px;">#pragma clang <span class="typoRed" evid="1600586060715.4492" id="1600586060715.4492">optimize</span> on</div><div style="text-align: justify; margin: 0px;">}</div><div style="text-align: justify; margin: 0px;">----------------------------------------------<span class="typoRed" evid="1600586060715.5234" id="1600586060715.5234">----------</span></div><div style="text-align: justify; margin: 0px;">It seems like<span class="typoRed" evid="1600586060715.5754" id="1600586060715.5754"> that</span> the #pragma directive does not take effect.</div><div style="text-align: justify; margin: 0px;"><br></div><div style="text-align: justify; margin: 0px;">I wonder if there is any solution or suggestion. I am using clang11. Thanks in <span class="typoRed" evid="1600586060715.14" id="1600586060715.14">advance! </span></div><div style="text-align: justify; margin: 0px;"><br></div><div style="text-align: justify; margin: 0px;">Best Regards,</div><div style="text-align: justify; margin: 0px;">Jerry</div></div>