LLVM backend for 6502
Go to file
Frederic Riss 14bd47ef85 DwarfAccelTable: Fix handling of hash collisions.
It turns out accelerator tables where totally broken if they contained
entries with colliding hashes. The failure mode is pretty bad, as it not
only impacted the colliding entries, but would basically make all the
entries after the first hash collision pointing in the wrong place.

The testcase uses the symbol names that where found to collide during a
clang build.

From a performance point of view, the patch adds a sort and a linear
walk over each bucket contents. While it has a measurable impact on the
accelerator table emission, it's not showing up significantly in clang
profiles (and I'd argue that correctness is priceless :-)).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231732 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-10 00:46:31 +00:00
autoconf Drop the hacks used for partial C99 math libraries. 2015-03-09 18:35:18 +00:00
bindings Go bindings: use MDNode::replaceAllUsesWith instead of MDTuple::replaceAllUsesWith. 2015-03-05 22:55:38 +00:00
cmake Drop the hacks used for partial C99 math libraries. 2015-03-09 18:35:18 +00:00
docs Introduce runtime unrolling disable matadata and use it to mark the scalar loop from vectorization. 2015-03-09 06:14:18 +00:00
examples Fix the build of the gold-plugin and examples. 2015-03-04 19:15:29 +00:00
include Temporarily revert r231726 and r231724 as they're breaking the build.: 2015-03-10 00:33:27 +00:00
lib DwarfAccelTable: Fix handling of hash collisions. 2015-03-10 00:46:31 +00:00
projects Reverse the order libc++ and libc++abi are added in CMake. 2015-03-04 01:16:43 +00:00
test DwarfAccelTable: Fix handling of hash collisions. 2015-03-10 00:46:31 +00:00
tools Temporarily revert r231726 and r231724 as they're breaking the build.: 2015-03-10 00:33:27 +00:00
unittests Don't treat .foo as two path components in path::iterators 2015-03-10 00:04:29 +00:00
utils TableGen: Use 'enum : uint64_t' for feature flags to fix -Wmicrosoft 2015-03-09 20:23:14 +00:00
.arcconfig
.clang-format
.clang-tidy Enable display of compiler diagnostics in clang-tidy by default. 2014-10-29 17:29:38 +00:00
.gitignore Add one more vim swap file pattern 2015-01-30 21:59:28 +00:00
CMakeLists.txt Teach the LLVM CMake build how to explicitly use libc++abi when using 2015-03-07 10:30:34 +00:00
CODE_OWNERS.TXT [CODE_OWNERS] Change the ownership of register allocators. 2015-03-05 22:15:17 +00:00
configure Drop the hacks used for partial C99 math libraries. 2015-03-09 18:35:18 +00:00
CREDITS.TXT Rise from the dead and update personal info 2014-08-25 17:51:04 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Add a check for misbehaving -Wcomment from gcc-4.7 and add 2014-11-05 00:35:15 +00:00
Makefile.rules Add support for SunOS function/data sections and associated 2015-03-03 20:54:29 +00:00
README.txt Revert test commit 2015-02-04 18:46:00 +00:00

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

This directory and its subdirectories contain source code for LLVM,
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.