<div dir="ltr">Thanks!<div><br></div><div>-- Sean Silva</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Apr 26, 2015 at 3:23 PM, Philip Reames <span dir="ltr"><<a href="mailto:listmail@philipreames.com" target="_blank">listmail@philipreames.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: reames<br>
Date: Sun Apr 26 17:23:12 2015<br>
New Revision: 235826<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=235826&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=235826&view=rev</a><br>
Log:<br>
[PerformanceTips] Provide context on the impact of assume(x)<br>
<br>
Sean Silva suggested I add something here a while back.  Sorry it's taken so long to get back to this.<br>
<br>
<br>
Modified:<br>
    llvm/trunk/docs/Frontend/PerformanceTips.rst<br>
    llvm/trunk/docs/LangRef.rst<br>
<br>
Modified: llvm/trunk/docs/Frontend/PerformanceTips.rst<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/Frontend/PerformanceTips.rst?rev=235826&r1=235825&r2=235826&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/Frontend/PerformanceTips.rst?rev=235826&r1=235825&r2=235826&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/docs/Frontend/PerformanceTips.rst (original)<br>
+++ llvm/trunk/docs/Frontend/PerformanceTips.rst Sun Apr 26 17:23:12 2015<br>
@@ -144,7 +144,7 @@ Other things to consider<br>
 #. When checking a value against a constant, emit the check using a consistent<br>
    comparison type.  The GVN pass _will_ optimize redundant equalities even if<br>
    the type of comparison is inverted, but GVN only runs late in the pipeline.<br>
-   As a result, you may miss the oppurtunity to run other important<br>
+   As a result, you may miss the opportunity to run other important<br>
    optimizations.  Improvements to EarlyCSE to remove this issue are tracked in<br>
    Bug 23333.<br>
<br>
@@ -157,6 +157,13 @@ Other things to consider<br>
    profitable to emit these directly in the language frontend.  This item<br>
    explicitly includes the use of the :ref:`overflow intrinsics <int_overflow>`.<br>
<br>
+#. Avoid using the :ref:`assume intrinsic <int_assume>` until you've<br>
+   established that a) there's no other way to express the given fact and b)<br>
+   that fact is critical for optimization purposes.  Assumes are a great<br>
+   prototyping mechanism, but they can have negative effects on both compile<br>
+   time and optimization effectiveness.  The former is fixable with enough<br>
+   effort, but the later is fairly fundamental to their designed purpose.<br>
+<br>
 p.s. If you want to help improve this document, patches expanding any of the<br>
 above items into standalone sections of their own with a more complete<br>
 discussion would be very welcome.<br>
<br>
Modified: llvm/trunk/docs/LangRef.rst<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.rst?rev=235826&r1=235825&r2=235826&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.rst?rev=235826&r1=235825&r2=235826&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/docs/LangRef.rst (original)<br>
+++ llvm/trunk/docs/LangRef.rst Sun Apr 26 17:23:12 2015<br>
@@ -10285,6 +10285,8 @@ Semantics:<br>
<br>
 This intrinsic is lowered to the ``val``.<br>
<br>
+.. _int_assume:<br>
+<br>
 '``llvm.assume``' Intrinsic<br>
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>