llvm-project/llvm
David Blaikie 49cfc8ca8e DebugInfo: Simplify/tidy/correct global variable decl/def emission handling.
This fixes a bug (introduced by fixing the IR emitted from Clang where
the definition of a static member would be scoped within the class,
rather than within its lexical decl context) where the definition of a
static variable would be placed inside a class.

It also improves source fidelity by scoping static class member
definitions inside the lexical decl context in which tehy are written
(eg: namespace n { class foo { static int i; } int foo::i; } - the
definition of 'i' will be within the namespace 'n' in the DWARF output
now).

Lastly, and the original goal, this reduces debug info size slightly
(and makes debug info easier to read, etc) by placing the definitions of
non-member global variables within their namespace, rather than using a
separate namespace-scoped declaration along with a definition at global
scope.

Based on patches and discussion with Frédéric.

llvm-svn: 220497
2014-10-23 19:12:43 +00:00
..
autoconf Initial version of Go bindings. 2014-10-16 22:48:02 +00:00
bindings Add llvm-go tool. 2014-10-23 02:33:23 +00:00
cmake Add llvm-go tool. 2014-10-23 02:33:23 +00:00
docs Fix number of operands in documentation for minnum / maxnum 2014-10-22 18:25:02 +00:00
examples Add doInitialization/doFinalization to DataLayoutPass. 2014-09-10 21:27:43 +00:00
include Modernize doxygen comments in Support/Dwarf.h 2014-10-23 04:08:38 +00:00
lib DebugInfo: Simplify/tidy/correct global variable decl/def emission handling. 2014-10-23 19:12:43 +00:00
projects
test DebugInfo: Simplify/tidy/correct global variable decl/def emission handling. 2014-10-23 19:12:43 +00:00
tools Adding llvm-shlib to CMake build system with a few new bells and whistles 2014-10-23 17:22:14 +00:00
unittests Add unittest for extreme alignments. 2014-10-23 14:45:19 +00:00
utils [lit] Fix Python-3 compatibility, patch by Dan Liew. 2014-10-22 01:26:06 +00:00
.arcconfig
.clang-format
.clang-tidy Add .clang-tidy configuration file to provide LLVM-optimized defaults for 2014-09-08 13:30:00 +00:00
.gitignore Initial version of Go bindings. 2014-10-16 22:48:02 +00:00
CMakeLists.txt Adding llvm-shlib to CMake build system with a few new bells and whistles 2014-10-23 17:22:14 +00:00
CODE_OWNERS.TXT Add Tom Stellard's role as 3.5 release manager. 2014-09-12 08:07:31 +00:00
CREDITS.TXT Rise from the dead and update personal info 2014-08-25 17:51:04 +00:00
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Initial version of Go bindings. 2014-10-16 22:48:02 +00:00
Makefile.rules Revert my earlier change to add "all" as a dependency to check. In 2014-09-19 18:44:27 +00:00
README.txt
configure Initial version of Go bindings. 2014-10-16 22:48:02 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.