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