summaryrefslogtreecommitdiffstats
path: root/llvm/docs/ProgrammersManual.rst
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2015-10-15 18:17:44 +0000
committerJustin Bogner <mail@justinbogner.com>2015-10-15 18:17:44 +0000
commitc2e54af7d332488056e02b00e0bc71d64dbd4a8b (patch)
tree91ab0629363d9600c87aecf65e3dd568444a43b9 /llvm/docs/ProgrammersManual.rst
parent473a5c3253c7980a1df2a103b51ecaf3c2697614 (diff)
downloadbcm5719-llvm-c2e54af7d332488056e02b00e0bc71d64dbd4a8b.tar.gz
bcm5719-llvm-c2e54af7d332488056e02b00e0bc71d64dbd4a8b.zip
docs: Stop using DEBUG() without DEBUG_TYPE in the ProgrammersManual
The DEBUG() macro has required that a DEBUG_TYPE be set since r206822. Update the programmers manual to reflect that, and also update the wording to point out that DEBUG_TYPE should be defined after #includes. llvm-svn: 250436
Diffstat (limited to 'llvm/docs/ProgrammersManual.rst')
-rw-r--r--llvm/docs/ProgrammersManual.rst28
1 files changed, 10 insertions, 18 deletions
diff --git a/llvm/docs/ProgrammersManual.rst b/llvm/docs/ProgrammersManual.rst
index 08cc61a187b..44f76fef8f1 100644
--- a/llvm/docs/ProgrammersManual.rst
+++ b/llvm/docs/ProgrammersManual.rst
@@ -366,7 +366,7 @@ Then you can run your pass like this:
Using the ``DEBUG()`` macro instead of a home-brewed solution allows you to not
have to create "yet another" command line option for the debug output for your
-pass. Note that ``DEBUG()`` macros are disabled for optimized builds, so they
+pass. Note that ``DEBUG()`` macros are disabled for non-asserts builds, so they
do not cause a performance impact at all (for the same reason, they should also
not contain side-effects!).
@@ -383,21 +383,17 @@ Fine grained debug info with ``DEBUG_TYPE`` and the ``-debug-only`` option
Sometimes you may find yourself in a situation where enabling ``-debug`` just
turns on **too much** information (such as when working on the code generator).
If you want to enable debug information with more fine-grained control, you
-can define the ``DEBUG_TYPE`` macro and use the ``-debug-only`` option as
+should define the ``DEBUG_TYPE`` macro and use the ``-debug-only`` option as
follows:
.. code-block:: c++
- #undef DEBUG_TYPE
- DEBUG(errs() << "No debug type\n");
#define DEBUG_TYPE "foo"
DEBUG(errs() << "'foo' debug type\n");
#undef DEBUG_TYPE
#define DEBUG_TYPE "bar"
DEBUG(errs() << "'bar' debug type\n"));
#undef DEBUG_TYPE
- #define DEBUG_TYPE ""
- DEBUG(errs() << "No debug type (2)\n");
Then you can run your pass like this:
@@ -406,24 +402,22 @@ Then you can run your pass like this:
$ opt < a.bc > /dev/null -mypass
<no output>
$ opt < a.bc > /dev/null -mypass -debug
- No debug type
'foo' debug type
'bar' debug type
- No debug type (2)
$ opt < a.bc > /dev/null -mypass -debug-only=foo
'foo' debug type
$ opt < a.bc > /dev/null -mypass -debug-only=bar
'bar' debug type
Of course, in practice, you should only set ``DEBUG_TYPE`` at the top of a file,
-to specify the debug type for the entire module (if you do this before you
-``#include "llvm/Support/Debug.h"``, you don't have to insert the ugly
-``#undef``'s). Also, you should use names more meaningful than "foo" and "bar",
-because there is no system in place to ensure that names do not conflict. If
-two different modules use the same string, they will all be turned on when the
-name is specified. This allows, for example, all debug information for
-instruction scheduling to be enabled with ``-debug-only=InstrSched``, even if
-the source lives in multiple files.
+to specify the debug type for the entire module. Be careful that you only do
+this after including Debug.h and not around any #include of headers. Also, you
+should use names more meaningful than "foo" and "bar", because there is no
+system in place to ensure that names do not conflict. If two different modules
+use the same string, they will all be turned on when the name is specified.
+This allows, for example, all debug information for instruction scheduling to be
+enabled with ``-debug-only=InstrSched``, even if the source lives in multiple
+files.
For performance reasons, -debug-only is not available in optimized build
(``--enable-optimized``) of LLVM.
@@ -435,10 +429,8 @@ preceding example could be written as:
.. code-block:: c++
- DEBUG_WITH_TYPE("", errs() << "No debug type\n");
DEBUG_WITH_TYPE("foo", errs() << "'foo' debug type\n");
DEBUG_WITH_TYPE("bar", errs() << "'bar' debug type\n"));
- DEBUG_WITH_TYPE("", errs() << "No debug type (2)\n");
.. _Statistic:
OpenPOWER on IntegriCloud