<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Wasn't quite as simple as it first looked, but this should be fixed
in 237985. I think this should be fine, but if you observe problems
with either this change or the original, feel free to revert. I'm
going to be offline for the rest of the evening and won't be able to
respond promptly. <br>
<br>
Philip <br>
<br>
<div class="moz-cite-prefix">On 05/21/2015 05:28 PM, Philip Reames
wrote:<br>
</div>
<blockquote cite="mid:555E7833.2000802@philipreames.com" type="cite">
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
Sanjoy is out on vacation, but I'm going to look into this. I'll
be offline for about an hour, but should be able to start
investigating by around 7pm. On the surface, it looks like it
should be an easy fix. Hopefully, I'll have this resolved within
a couple of hours. Sorry for the breakage. <br>
<br>
Philip<br>
<br>
<div class="moz-cite-prefix">On 05/21/2015 04:38 PM, Nick Lewycky
wrote:<br>
</div>
<blockquote
cite="mid:CADbEz-hgwfD3zFKSdddGZxK1GZbjZod2XrKqcsZQz4K7Es8avA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On 18 May 2015 at 11:07, Sanjoy Das
<span dir="ltr"><<a moz-do-not-send="true"
href="mailto:sanjoy@playingwithpointers.com"
target="_blank">sanjoy@playingwithpointers.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">Author:
sanjoy<br>
Date: Mon May 18 13:07:00 2015<br>
New Revision: 237593<br>
<br>
URL: <a moz-do-not-send="true"
href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D237593-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=EZRvoJai0V1ZEULFLl3UFBFw3GpoHtruFDOok84hYrI&s=4QqYr7GqSrZjVxTSY4zWHbjeCHYmt-2bkaDpOtpbsM8&e="
target="_blank">http://llvm.org/viewvc/llvm-project?rev=237593&view=rev</a><br>
Log:<br>
Exploit dereferenceable_or_null attribute in LICM pass<br>
<br>
Summary:<br>
Allow hoisting of loads from values marked with
dereferenceable_or_null<br>
attribute. For values marked with the attribute perform<br>
context-sensitive analysis to determine whether it's
known-non-null or<br>
not.<br>
</blockquote>
<div><br>
</div>
<div>This commit caused PR23608, see the testcase in that
PR.</div>
<div><br>
</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">-///
Only sink or hoist an instruction if it is not a
trapping instruction<br>
+/// Only sink or hoist an instruction if it is not a
trapping instruction,<br>
+/// or if the instruction is known not to trap when
moved to the preheader.<br>
/// or if it is a trapping instruction and is
guaranteed to execute.<br>
-///<br>
-static bool isSafeToExecuteUnconditionally(const
Instruction &Inst,<br>
+static bool isSafeToExecuteUnconditionally(const
Instruction &Inst,<br>
const
DominatorTree *DT,<br>
+ const
TargetLibraryInfo *TLI,<br>
const Loop
*CurLoop,<br>
const
LICMSafetyInfo *SafetyInfo) {<br>
- // If it is not a trapping instruction, it is always
safe to hoist.<br>
- if (isSafeToSpeculativelyExecute(&Inst))<br>
+ const Instruction *CtxI =
CurLoop->getLoopPreheader()->getTerminator();<br>
</blockquote>
<div><br>
</div>
<div>A Loop* is not guaranteed to have a preheader, in
which case CurLoop->getLoopPreheader() will return
null.</div>
<div><br>
</div>
<div>Nick</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">+
if (isSafeToSpeculativelyExecute(&Inst, CtxI, DT,
TLI))<br>
return true;<br>
<br>
return isGuaranteedToExecute(Inst, DT, CurLoop,
SafetyInfo);<br>
</blockquote>
<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"><br>
</blockquote>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
llvm-commits mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a>
</pre>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
llvm-commits mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a>
</pre>
</blockquote>
<br>
</body>
</html>