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

Max Marrone via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 8 15:38:50 PDT 2019


Maxpm updated this revision to Diff 203711.
Maxpm added a comment.

Changed the description to explicitly refer to the inline __asm markers as a workaround, rather than a feature.  Added a link to the `-Rpass` options in the Clang documentation.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63040/new/

https://reviews.llvm.org/D63040

Files:
  llvm/docs/CommandGuide/llvm-mca.rst


Index: llvm/docs/CommandGuide/llvm-mca.rst
===================================================================
--- llvm/docs/CommandGuide/llvm-mca.rst
+++ llvm/docs/CommandGuide/llvm-mca.rst
@@ -241,8 +241,8 @@
 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 @@
     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
 ------------------
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63040.203711.patch
Type: text/x-patch
Size: 1320 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190608/f55551be/attachment.bin>


More information about the llvm-commits mailing list