<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 27, 2016 at 6:48 AM, Artur Pilipenko <span dir="ltr"><<a href="mailto:apilipenko@azulsystems.com" target="_blank">apilipenko@azulsystems.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">apilipenko added inline comments.<br>
<span class=""><br>
================<br>
Comment at: lib/IR/Value.cpp:556<br>
@@ -555,1 +555,3 @@<br>
<br>
</span><span class="">+bool Value::isPointerDereferenceable(bool &CanBeNull) const {<br>
+  assert(getType()->isPointerTy() && "must be pointer");<br>
</span>----------------<br>
<span class="">majnemer wrote:<br>
> I'd expect this to call isDereferenceableFromAttribute.<br>
</span>Can you elaborate? isDereferenceableFromAttribute is an internal function in Loads.cpp, while this is a public API to get inherent property of the value.<br></blockquote><div><br></div><div>There is no inherent reason why isPointerDereferenceable _must_ be a member of Value, it is quite reasonable for it to be exposed in Loads.h seeing as how it seems quite similar to isSafeToLoadUnconditionally.</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">
<br>
<br>
<a href="http://reviews.llvm.org/D17611" rel="noreferrer" target="_blank">http://reviews.llvm.org/D17611</a><br>
<br>
<br>
<br>
</blockquote></div><br></div></div>