diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-08-07 23:02:44 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-08-07 23:02:44 +0000 |
commit | 51ece4aae5857052d224ce52277924c74685714e (patch) | |
tree | ca13cf9e2e8c2499f61f1246e455efd2804abd36 /docs | |
parent | c192b3dcffd5e672a2b2e1730e2440febb4fb192 (diff) | |
download | src-51ece4aae5857052d224ce52277924c74685714e.tar.gz src-51ece4aae5857052d224ce52277924c74685714e.zip |
Vendor import of clang trunk r242221:vendor/clang/clang-trunk-r242221
Notes
Notes:
svn path=/vendor/clang/dist/; revision=286427
svn path=/vendor/clang/clang-trunk-r242221/; revision=286428; tag=vendor/clang/clang-trunk-r242221
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ClangFormatStyleOptions.rst | 9 | ||||
-rw-r--r-- | docs/CrossCompilation.rst | 2 | ||||
-rw-r--r-- | docs/LanguageExtensions.rst | 10 | ||||
-rw-r--r-- | docs/PCHInternals.rst | 26 | ||||
-rw-r--r-- | docs/UsersManual.rst | 39 |
5 files changed, 72 insertions, 14 deletions
diff --git a/docs/ClangFormatStyleOptions.rst b/docs/ClangFormatStyleOptions.rst index ab7bd872ca28..031daeeaa123 100644 --- a/docs/ClangFormatStyleOptions.rst +++ b/docs/ClangFormatStyleOptions.rst @@ -275,6 +275,9 @@ the configuration (without a prefix: ``Auto``). * ``BS_Linux`` (in configuration: ``Linux``) Like ``Attach``, but break before braces on function, namespace and class definitions. + * ``BS_Mozilla`` (in configuration: ``Mozilla``) + Like ``Attach``, but break before braces on enum, function, and record + definitions. * ``BS_Stroustrup`` (in configuration: ``Stroustrup``) Like ``Attach``, but break before function definitions, and 'else'. * ``BS_Allman`` (in configuration: ``Allman``) @@ -394,6 +397,12 @@ the configuration (without a prefix: ``Auto``). (https://developers.google.com/protocol-buffers/). +**MacroBlockBegin** (``std::string``) + A regular expression matching macros that start a block. + +**MacroBlockEnd** (``std::string``) + A regular expression matching macros that end a block. + **MaxEmptyLinesToKeep** (``unsigned``) The maximum number of consecutive empty lines to keep. diff --git a/docs/CrossCompilation.rst b/docs/CrossCompilation.rst index d3a775b4fd44..8a8027117372 100644 --- a/docs/CrossCompilation.rst +++ b/docs/CrossCompilation.rst @@ -92,7 +92,7 @@ will be assumed, which sets the defaults for the specified architecture. The system name is generally the OS (linux, darwin), but could be special like the bare-metal "none". -When a parameter is not important, they can be omitted, or you can +When a parameter is not important, it can be omitted, or you can choose ``unknown`` and the defaults will be used. If you choose a parameter that Clang doesn't know, like ``blerg``, it'll ignore and assume ``unknown``, which is not always desired, so be careful. diff --git a/docs/LanguageExtensions.rst b/docs/LanguageExtensions.rst index 0b4775ba6ad4..6a4dd5ccbf3c 100644 --- a/docs/LanguageExtensions.rst +++ b/docs/LanguageExtensions.rst @@ -1991,10 +1991,10 @@ compile time. Partial unrolling replicates the loop body within the loop and reduces the trip count. If ``unroll(full)`` is specified the unroller will attempt to fully unroll the -loop if the trip count is known at compile time. If the loop count is not known -or the fully unrolled code size is greater than the limit specified by the -`-pragma-unroll-threshold` command line option the loop will be partially -unrolled subject to the same limit. +loop if the trip count is known at compile time. If the fully unrolled code size +is greater than an internal limit the loop will be partially unrolled up to this +limit. If the loop count is not known at compile time the loop will not be +unrolled. .. code-block:: c++ @@ -2006,7 +2006,7 @@ unrolled subject to the same limit. The unroll count can be specified explicitly with ``unroll_count(_value_)`` where _value_ is a positive integer. If this value is greater than the trip count the loop will be fully unrolled. Otherwise the loop is partially unrolled subject -to the `-pragma-unroll-threshold` limit. +to the same code size limit as with ``unroll(full)``. .. code-block:: c++ diff --git a/docs/PCHInternals.rst b/docs/PCHInternals.rst index a36e65c199c6..8f66ddf0e1d8 100644 --- a/docs/PCHInternals.rst +++ b/docs/PCHInternals.rst @@ -124,20 +124,30 @@ section <pchinternals-chained>`. AST File Contents ----------------- -Clang's AST files are organized into several different blocks, each of which -contains the serialized representation of a part of Clang's internal +An AST file produced by clang is an object file container with a ``clangast`` +(COFF) or ``__clangast`` (ELF and Mach-O) section containing the serialized AST. +Other target-specific sections in the object file container are used to hold +debug information for the data types defined in the AST. Tools built on top of +libclang that do not need debug information may also produce raw AST files that +only contain the serialized AST. + +The ``clangast`` section is organized into several different blocks, each of +which contains the serialized representation of a part of Clang's internal representation. Each of the blocks corresponds to either a block or a record within `LLVM's bitstream format <http://llvm.org/docs/BitCodeFormat.html>`_. The contents of each of these logical blocks are described below. .. image:: PCHLayout.png -For a given AST file, the `llvm-bcanalyzer -<http://llvm.org/docs/CommandGuide/llvm-bcanalyzer.html>`_ utility can be used -to examine the actual structure of the bitstream for the AST file. This -information can be used both to help understand the structure of the AST file -and to isolate areas where AST files can still be optimized, e.g., through the -introduction of abbreviations. +The ``llvm-objdump`` utility provides a ``-raw-clang-ast`` option to extract the +binary contents of the AST section from an object file container. + +The `llvm-bcanalyzer <http://llvm.org/docs/CommandGuide/llvm-bcanalyzer.html>`_ +utility can be used to examine the actual structure of the bitstream for the AST +section. This information can be used both to help understand the structure of +the AST section and to isolate areas where the AST representation can still be +optimized, e.g., through the introduction of abbreviations. + Metadata Block ^^^^^^^^^^^^^^ diff --git a/docs/UsersManual.rst b/docs/UsersManual.rst index cd1b2b3c341d..20ee5696e06a 100644 --- a/docs/UsersManual.rst +++ b/docs/UsersManual.rst @@ -1488,6 +1488,45 @@ instrumentation: profile. As you make changes to your code, clang may no longer be able to use the profile data. It will warn you when this happens. +Profile generation and use can also be controlled by the GCC-compatible flags +``-fprofile-generate`` and ``-fprofile-use``. Although these flags are +semantically equivalent to their GCC counterparts, they *do not* handle +GCC-compatible profiles. They are only meant to implement GCC's semantics +with respect to profile creation and use. + +.. option:: -fprofile-generate[=<dirname>] + + Without any other arguments, ``-fprofile-generate`` behaves identically to + ``-fprofile-instr-generate``. When given a directory name, it generates the + profile file ``default.profraw`` in the directory named ``dirname``. If + ``dirname`` does not exist, it will be created at runtime. The environment + variable ``LLVM_PROFILE_FILE`` can be used to override the directory and + filename for the profile file at runtime. For example, + + .. code-block:: console + + $ clang++ -O2 -fprofile-generate=yyy/zzz code.cc -o code + + When ``code`` is executed, the profile will be written to the file + ``yyy/zzz/default.profraw``. This can be altered at runtime via the + ``LLVM_PROFILE_FILE`` environment variable: + + .. code-block:: console + + $ LLVM_PROFILE_FILE=/tmp/myprofile/code.profraw ./code + + The above invocation will produce the profile file + ``/tmp/myprofile/code.profraw`` instead of ``yyy/zzz/default.profraw``. + Notice that ``LLVM_PROFILE_FILE`` overrides the directory *and* the file + name for the profile file. + +.. option:: -fprofile-use[=<pathname>] + + Without any other arguments, ``-fprofile-use`` behaves identically to + ``-fprofile-instr-use``. Otherwise, if ``pathname`` is the full path to a + profile file, it reads from that file. If ``pathname`` is a directory name, + it reads from ``pathname/default.profdata``. + Controlling Size of Debug Information ------------------------------------- |