LLVM backend for 6502
Go to file
Manman Ren 620f436b20 Debug Info: remove duplication of DIEs when a DIE is part of the type system
and it is shared across CUs.

We add a few maps in DwarfDebug to map MDNodes for the type system to the
corresponding DIEs: MDTypeNodeToDieMap, MDSPNodeToDieMap, and
MDStaticMemberNodeToDieMap. These DIEs can be shared across CUs, that is why we
keep the maps in DwarfDebug instead of CompileUnit.

Sometimes, when we try to add an attribute to a DIE, the DIE is not yet added
to its owner yet, so we don't know whether we should use ref_addr or ref4.
We create a worklist that will be processed during finalization to add
attributes with the correct form (ref_addr or ref4).

We add addDIEEntry to DwarfDebug to be a wrapper around DIE->addValue. It checks
whether we know the correct form, if not, we update the worklist
(DIEEntryWorklist).

A testing case is added to show that we only create a single DIE for a type
MDNode and we use ref_addr to refer to the type DIE.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191792 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-01 19:52:23 +00:00
autoconf Remove error output from configure if CFLAGS is set (r174313). 2013-09-24 11:38:45 +00:00
bindings [python-bindings] Added support for getting/setting operands of values and getting the number of operands of a value. 2013-09-11 01:38:12 +00:00
cmake Reverts commit r190808 and r190556. 2013-10-01 17:40:47 +00:00
docs Fix a typo in the documentation. Thanks to Diana Vasile for the patch 2013-10-01 13:17:09 +00:00
examples ExceptionDemo.cpp: Tweak a @param. [-Wdocumentation] 2013-07-29 11:03:50 +00:00
include Add non-blocking Wait() for launched processes 2013-10-01 14:28:18 +00:00
lib Debug Info: remove duplication of DIEs when a DIE is part of the type system 2013-10-01 19:52:23 +00:00
projects Enable libcxx as part of the top level CMake build when it is checked 2013-09-28 18:17:10 +00:00
runtime Bring back the build of libprofile_rt on Sparc. It is now working correctly. See: 2013-09-08 09:15:09 +00:00
test Debug Info: remove duplication of DIEs when a DIE is part of the type system 2013-10-01 19:52:23 +00:00
tools Remove several unused variables. 2013-10-01 13:32:03 +00:00
unittests Add non-blocking Wait() for launched processes 2013-10-01 14:28:18 +00:00
utils Remove several unused variables. 2013-10-01 13:32:03 +00:00
.arcconfig
.clang-format Add a clang-format file so that the tool can automatically detect the 2013-09-02 07:19:04 +00:00
.gitignore
CMakeLists.txt Set the minimal stack size with msvc when using cmake >= 2.8.11. 2013-09-25 14:06:55 +00:00
CODE_OWNERS.TXT
configure Remove error output from configure if CFLAGS is set (r174313). 2013-09-24 11:38:45 +00:00
CREDITS.TXT Update. 2013-09-27 20:40:40 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile Fix regular expression used by 'make update' to only look for 'I' and '?' at the start of svn info results and to check for spaces after 'I' instead of just after '?'. 2013-07-03 14:48:37 +00:00
Makefile.common
Makefile.config.in
Makefile.rules Makefile.rules: Avoid -fomit-frame-pointer also on cygwin due to PR14646. 2013-08-18 03:38:40 +00:00
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.