User manual chapter on MemorySanitizer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170879 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/docs/UsersManual.rst b/docs/UsersManual.rst
index f92eb9c..4d6c4e9 100644
--- a/docs/UsersManual.rst
+++ b/docs/UsersManual.rst
@@ -855,6 +855,11 @@
    -  .. _opt_fsanitize_thread:
 
       ``-fsanitize=thread``: :doc:`ThreadSanitizer`, a data race detector.
+   -  .. _opt_fsanitize_memory:
+
+      ``-fsanitize=memory``: :doc:`MemorySanitizer`,
+      an *experimental* detector of uninitialized reads. Not ready for
+      widespread use.
    -  .. _opt_fsanitize_undefined:
 
       ``-fsanitize=undefined``: Fast and compatible undefined behavior
@@ -917,6 +922,14 @@
    -  ``-fsanitize=use-after-scope``: Check for use-after-scope errors
       (accesing local variable after it went out of scope).
 
+   Extra features of MemorySanitizer (require explicit
+   ``-fsanitize=memory``):
+
+   -  ``-fsanitize-memory-track-origins``: Enables origin tracking in
+      MemorySanitizer. Adds a second stack trace to MemorySanitizer
+      reports pointing to the allocation the uninitialized bits came
+      from. Slows down execution by additional 1.5x-2x.
+
    The ``-fsanitize=`` argument must also be provided when linking, in
    order to link to the appropriate runtime library. It is not possible
    to combine the ``-fsanitize=address`` and ``-fsanitize=thread``