<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Nov 10, 2013, at 8:01 AM, Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Ping with an explanation -- we have 16 instances of this warning in VS<br>2013 stemming from usage of HUGE_VALF in one header and three cpp<br>files.  So the choices we have for a clean build boil down to:<br><br>1) Blanket disable the warning -- I dislike this approach because it's<br>a useful warning in the vast majority of circumstances.<br>2) Use pragmas to spot-disable the warning -- I dislike this approach<br>because it needs to be disabled in several different places and is<br>messy.<br>3) Use llvm::huge_valf from this patch -- I dislike this approach<br>because it's replacing standard C functionality with something<br>non-standard which affects all backends.<br><br>Short of removing floating-point usage in the backend where HUGE_VALF<br>is a sentinel value (which may be a worthy idea for someday), I don't<br>see other alternatives, and I think that #3 is the least invasive.<br></div></blockquote><div><br></div><div>I’d really like to see us move away from floating point usage in the backend, but that’s far too large a task to be gating VS2013. (3) sounds least invasive to me, and is consistent with how we’ve dealt with analogous things before, for better or worse.</div><div><br></div><div>-Jim</div><div><br></div><br><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">~Aaron<br><br><br>On Mon, Nov 4, 2013 at 7:42 AM, Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>> wrote:<br><blockquote type="cite">Ping?<br><br>~Aaron<br><br>On Tue, Oct 29, 2013 at 7:27 PM, Reid Kleckner <<a href="mailto:rnk@google.com">rnk@google.com</a>> wrote:<br><blockquote type="cite">This seems like a better solution to me, but I'd like to hear from someone<br>who actually uses floating point values in LLVM-land if they think this is<br>OK.<br><br><br>On Tue, Oct 29, 2013 at 4:22 PM, Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>><br>wrote:<br><blockquote type="cite"><br>Here's a patch with an attempt at llvm::huge_valf (I also included<br>vald and vall for consistency).  It compiles cleanly with VS 2013,<br>though it's impossible to tell how it affects tests since there is<br>currently a miscompile that causes most of them to crash.<br><br>~Aaron<br><br>On Tue, Oct 29, 2013 at 6:55 PM, Reid Kleckner <<a href="mailto:rnk@google.com">rnk@google.com</a>> wrote:<br><blockquote type="cite">On Tue, Oct 29, 2013 at 3:48 PM, Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>><br>wrote:<br><blockquote type="cite"><br>There were about 15 warnings in several places from it.<br><br>LiveIntervalAnalysis.cpp<br>RegAllocGreedy.cpp in three places<br>Spiller.cpp<br>LiveInterval.h in two places<br><br>If it was just in a single header file and getting tripped over on<br>include, I would be okay with it, but it's a bit more widely dispersed<br>than that.<br><br>Alternatively, we could make an llvm::huge_valf that does suppress the<br>warning and gets used in place of HUGE_VALF, if that's preferable?<br></blockquote><br><br>llvm::huge_valf does sound preferable, as annoying as it is not to be<br>able<br>to use standard stuff from math.h.<br></blockquote></blockquote><br><br></blockquote></blockquote><span><huge_valf.patch></span></div></blockquote></div><br></body></html>