1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00

[Docs] [llvm-mca] Point out a caveat for using llvm-mca markers in source code.

Summary: See: https://bugs.llvm.org/show_bug.cgi?id=42173

Reviewers: andreadb, mattd, RKSimon, spatel

Reviewed By: andreadb

Subscribers: tschuett, gbedwell, llvm-commits, andreadb

Tags: #llvm

Patch by Max Marrone (maxpm)! Thanks!

Differential Revision: https://reviews.llvm.org/D63040

llvm-svn: 362979
This commit is contained in:
Matt Davis 2019-06-10 20:38:56 +00:00
parent f47002812b
commit 25329df600

View File

@ -241,8 +241,8 @@ Example of overlapping regions:
Note that multiple anonymous regions cannot overlap. Also, overlapping regions
cannot have the same name.
Inline assembly directives may be used from source code to annotate the
assembly text:
There is no support for marking regions from high-level source code, like C or
C++. As a workaround, inline assembly directives may be used:
.. code-block:: c++
@ -254,6 +254,15 @@ assembly text:
return a;
}
However, this interferes with optimizations like loop vectorization and may have
an impact on the code generated. This is because the ``__asm`` statements are
seen as real code having important side effects, which limits how the code
around them can be transformed. If users want to make use of inline assembly
to emit markers, then the recommendation is to always verify that the output
assembly is equivalent to the assembly generated in the absence of markers.
The `Clang options to emit optimization reports <https://clang.llvm.org/docs/UsersManual.html#options-to-emit-optimization-reports>`_
can also help in detecting missed optimizations.
HOW LLVM-MCA WORKS
------------------