mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-23 12:45:47 +00:00
[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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235826 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
77456809c4
commit
fb3da5cce1
@ -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.
|
||||
|
@ -10285,6 +10285,8 @@ Semantics:
|
||||
|
||||
This intrinsic is lowered to the ``val``.
|
||||
|
||||
.. _int_assume:
|
||||
|
||||
'``llvm.assume``' Intrinsic
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user