<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hello Alexander,<div><br></div><div>> Interesting topic. Is any such optimization reachable from C?</div><div>Yes, I think so - both PassBuilder and PassManagerBuilder add MemCpyOpt & IPSCCP in the default pass pipeline.</div><div><br></div><div>Juneyoung </div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 19, 2020 at 8:43 PM Alexander Cherepanov <<a href="mailto:ch3root@openwall.com">ch3root@openwall.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">On 19/08/2020 06.05, Juneyoung Lee via llvm-dev wrote:<br>
> LangRef isn't clear about the value of padding when an aggregate value is<br>
> stored into memory, and I'd like to suggest that storing an aggregate fills<br>
> padding with undef.<br>
> <br>
> Here are a few clues that supports this change:<br>
> <br>
> - According to C17, the value of padding bytes when storing values in<br>
> structures or unions is unspecified.<br>
> <br>
> - IPSCCP ignores padding and directly stores a constant aggregate if<br>
> possible: <a href="https://godbolt.org/z/ddWq9z" rel="noreferrer" target="_blank">https://godbolt.org/z/ddWq9z</a><br>
> Memcpyopt ignores padding when copying an aggregate or storing a constant:<br>
> <a href="https://godbolt.org/z/hY6ndd" rel="noreferrer" target="_blank">https://godbolt.org/z/hY6ndd</a> / <a href="https://godbolt.org/z/3WMP5a" rel="noreferrer" target="_blank">https://godbolt.org/z/3WMP5a</a><br>
<br>
Interesting topic. Is any such optimization reachable from C?<br>
<br>
-- <br>
Alexander Cherepanov<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><br></div><font size="1">Juneyoung Lee</font><div><font size="1">Software Foundation Lab, Seoul National University</font></div></div></div>