summaryrefslogtreecommitdiff
path: root/docs/tools
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2014-01-07 01:19:08 +0000
committerAdrian Prantl <aprantl@apple.com>2014-01-07 01:19:08 +0000
commitc44757105021d1429f9430d5ff0da45b02b9f741 (patch)
tree08e3dcc79fab125389ef5bfc08e0acbbfdf09390 /docs/tools
parent24b6a6de3562f3808bb0806e8d8df2ffc7766c76 (diff)
downloadclang-c44757105021d1429f9430d5ff0da45b02b9f741.tar.gz
Implement a new -fstandalone-debug option. rdar://problem/15685848
It controls everything that -flimit-debug-info used to, plus the vtable type optimization. The old -fno-limit-debug-info option is now an alias to -fstandalone-debug and vice versa. Standalone is the default on Darwin until dtrace is updated to work with non-standalone debug info (rdar://problem/15758808). Note: I kept the LimitedDebugInfo name in CodeGenOptions::DebugInfoKind because NoStandaloneDebugInfo sounded even more confusing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198655 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/tools')
-rw-r--r--docs/tools/clang.pod19
1 files changed, 13 insertions, 6 deletions
diff --git a/docs/tools/clang.pod b/docs/tools/clang.pod
index c051005c90..1f3a3ec0ac 100644
--- a/docs/tools/clang.pod
+++ b/docs/tools/clang.pod
@@ -312,12 +312,19 @@ Currently equivalent to B<-O3>
Generate debug information. Note that Clang debug information works best at
B<-O0>.
-=item B<-flimit-debug-info> B<-fno-limit-debug-info>
-
-By default Clang does not emit type definitions for types that are not
-needed by the module and could be replaced with a forward
-declaration. By specifying B<-fno-limit-debug-info> this optimization
-can be turned off. Note that Clang will never emit type information
+=item B<-fstandalone-debug> B<-fno-standalone-debug>
+
+Clang supports a number of optimizations to reduce the size of debug
+information in the binary. They work based on the assumption that the
+debug type information can be spread out over multiple compilation
+units. For instance, Clang will not emit type definitions for types
+that are not needed by a module and could be replaced with a forward
+declaration. Further, Clang will only emit type info for a dynamic
+C++ class in the module that contains the vtable for the class.
+
+The B<-fstandalone-debug> option turns off these optimizations. This
+is useful when working with 3rd-party libraries that don't come with
+debug information. Note that Clang will never emit type information
for types that are not referenced at all by the program.
=item B<-fexceptions>