Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Kevin Enderby 75f4b470f9 Various crash reporting tools have a problem with the dwarf generated for
assembly source when it generates the TAG_subprogram dwarf debug info for
the labels that have nothing between them as in this bit of assembly source:

% cat ZeroLength.s 
_func1:
_func2:
 nop

One solution would be to not emit the subsequent labels with the same address
and use the next label with a different address or the end of the section for
the AT_high_pc value of the TAG_subprogram.

Turns out in llvm-mc it is not possible in all cases to determine of two
symbols have the same value at the point we put out the TAG_subprogram dwarf
debug info.

So we will have llvm-mc instead of putting out TAG_subprogram's put out
DW_TAG_label's.  And the DW_TAG_label does not have a AT_high_pc value which
avoids the problem.

This commit is only the functional change to make the diffs clear as to what is
really being changed.  The next commit will be to clean up the names of such
things like MCGenDwarfSubprogramEntry to something like MCGenDwarfLabelEntry.

rdar://10666925

llvm-svn: 147860
2012-01-10 17:52:29 +00:00
autoconf revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
bindings Update OCaml bindings for the new half float type. 2011-12-28 18:51:08 +00:00
cmake revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
docs Fix dead link 2012-01-07 04:11:27 +00:00
examples LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
include Remove unnecessary default cases in switches that cover all enum values. 2012-01-10 16:47:17 +00:00
lib Various crash reporting tools have a problem with the dwarf generated for 2012-01-10 17:52:29 +00:00
projects revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
runtime LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
test Various crash reporting tools have a problem with the dwarf generated for 2012-01-10 17:52:29 +00:00
tools Remove unnecessary default cases in switches that cover all enum values. 2012-01-10 16:47:17 +00:00
unittests Undo the hack in r147427 and move this unittest to a better home. This 2012-01-02 09:19:48 +00:00
utils Record asm variant id in MatchEntry and check it while matching instruction. 2012-01-10 17:50:43 +00:00
.gitignore git: Add tools/lldb to the ignore list. 2011-11-10 22:55:50 +00:00
CMakeLists.txt capitalize project name, reference bugzilla 2011-12-18 18:50:16 +00:00
configure revert r147542 after comments from Joerg Sonnenberger 2012-01-05 18:28:46 +00:00
CREDITS.TXT CREDITS.TXT: Add a line. (test commit) 2011-10-29 23:42:14 +00:00
LICENSE.TXT Happy new year 2012! 2012-01-01 08:16:56 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile llvm-config: Replace with C++ version (was llvm-config-2). 2011-12-01 20:18:09 +00:00
Makefile.common Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Makefile.config.in capitalize project name, reference bugzilla 2011-12-18 18:50:16 +00:00
Makefile.rules PR11642 has been fixed, enable -fvisibility-inlines-hidden everywhere. 2011-12-27 21:37:11 +00:00
README.txt Undo test commit 2011-11-22 20:05:48 +00:00

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 HTML documentation provided in docs/index.html for further
assistance with LLVM.

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