<div dir="ltr">Hi, all<div><br></div><div>When I compile the C code containing the next statement to LLVM, </div><div><br></div><div><b>struct A const o = func(...);</b></div><div><br></div><div>I got the next corresponding LLVM bytecode</div><div><br></div><div><b>call void @func(%struct.A* noalias sret %o, ...)</b></div><div><br></div><div>Could you tell me why function "func" with a return value </div><div>is changed to be one with a void return value and another </div><div>more parameter %o. Does "noalias sret" play a special role?</div><div>What is the exact meaning of "noalias sret"?</div><div><br></div><div>Thank you all in advance.</div><div><br></div><div><div><div>--------------------------------------------<br>Qiuping Yi<br>Institute Of Software<br>Chinese Academy of Sciences</div></div>
</div></div>