<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 21, 2015 at 1:31 PM, Russell Hadley <span dir="ltr"><<a href="mailto:rhadley@microsoft.com" target="_blank">rhadley@microsoft.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal">Hi,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m trying to do a proof of concept of compiling some code down to a very simple runtime that doesn’t provide support for zeroinitialize.  If I run the below code through llc:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">; ModuleID = '.\t.bc'<u></u><u></u></p>
<p class="MsoNormal">target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"<u></u><u></u></p>
<p class="MsoNormal">target triple = "i686-pc-windows-gnu"<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">@_ZN3Foo11ZeroAndZeroE = global [2 x i32] [i32 0, i32 0], align 4<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">!llvm.ident = !{!0}<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">!0 = !{!"clang version 3.6.0 (tags/RELEASE_360/final)"}<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">It turns into this:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">; ModuleID = '.\t.ll'<u></u><u></u></p>
<p class="MsoNormal">target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"<u></u><u></u></p>
<p class="MsoNormal">target triple = "i686-pc-windows-gnu"<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">@_ZN3Foo11ZeroAndZeroE = global [2 x i32] <span style="background:yellow">
zeroinitializer</span>, align 4<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">!llvm.ident = !{!0}<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">!0 = !{!"clang version 3.6.0 (tags/RELEASE_360/final)"}<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">My question is where is this transform happening – it looks like it’s a byproduct of parsing the ll file which was super surprising to me.</p></div></div></blockquote><div><br></div><div>This is a natural result of the IR constant folder.  It isn't an optimization per-se, it is part of the mechanism which canonicalizes constants.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div lang="EN-US" link="#0563C1" vlink="#954F72"><div><p class="MsoNormal">  And second is there a know what to circumvent this?</p></div></div></blockquote><div><br></div><div>It is impossible to disable it.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div lang="EN-US" link="#0563C1" vlink="#954F72"><div><p class="MsoNormal">  For my app I just want the zero’d space in
 the section so I can copy it into memory.</p></div></div></blockquote><div><br></div><div>I don't quite follow.  @_ZN3Foo11ZeroAndZeroE will be in the .bss section section and will end up in memory.  Do you need it in some other section?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div lang="EN-US" link="#0563C1" vlink="#954F72"><div><p class="MsoNormal"><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks,<span class=""><font color="#888888"><u></u><u></u></font></span></p><span class=""><font color="#888888">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">-R<u></u><u></u></p>
</font></span></div>
</div>

<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div></div>