<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Feb 17, 2009, at 9:55 PM, Evan Cheng wrote:</div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div>Evan, this seems like the wrong fix.  What *requires* an empty string  <br>to go into the cstring section?  If there is some semantics that  <br>require it, then whatever produces the llvm global should set the  <br>section of the global to the cstring section explicitly.</div></blockquote><div><br></div>I don't see why this is wrong/ Per revision <span class="Apple-style-span" style="font-family: -webkit-monospace; font-size: 11px; ">63142,<span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; ">target asm info has already decided this particular GV should go into cstring. But the asm printer then decided to put it in BSS (which means it cannot be coalesced) because the initializer is empty. This patch makes sure asm printer doesn't try to out smart itself.</span></span></div><div></div></div></blockquote></div><br><div>Why is this important? </div></div></blockquote><div><br></div><a href="rdar://">rdar://</a>6479858. It's a minor size win, but more importantly it avoids linker warning. That means fewer complaints about llvm-gcc (and it has been reported at least twice so far at Apple).</div><div></div></div></blockquote></div><br><div>Then this is not an optimization, this is a semantic property.  Whatever is creating that literal string should pin it in the section that it requires it to be in.</div><div><br></div><div>-Chris</div></body></html>