Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Justin Bogner 6484f6de8c InstrProf: Do a better job of reading coverage mapping data.
This code was casting regions of a memory buffer to a couple of
different structs. This is wrong in a few ways:

1. It breaks aliasing rules.
2. If the buffer isn't aligned, it hits undefined behaviour.
3. It completely ignores endianness differences.
4. The structs being defined for this aren't specifying their padding
   properly, so this doesn't even represent the data properly on some
   platforms.

This commit is mostly NFC, except that it fixes reading coverage for
32 bit binaries as a side effect of getting rid of the mispadded
structs. I've included a test for that.

I've also baked in that we only handle little endian more explicitly,
since that was true in practice already. I'll fix this to handle
endianness properly in a followup commit.

llvm-svn: 232346
2015-03-16 06:55:45 +00:00
autoconf [autoconf] Fix the build failure by quoting the strings. 2015-03-12 19:56:25 +00:00
bindings Go bindings: use MDNode::replaceAllUsesWith instead of MDTuple::replaceAllUsesWith. 2015-03-05 22:55:38 +00:00
cmake Refactoring CMake CrossCompile module. 2015-03-12 17:33:34 +00:00
docs Adding commit msg guidelines to dev policy 2015-03-15 21:15:48 +00:00
examples Fix the build of the gold-plugin and examples. 2015-03-04 19:15:29 +00:00
include InstrProf: Do a better job of reading coverage mapping data. 2015-03-16 06:55:45 +00:00
lib InstrProf: Do a better job of reading coverage mapping data. 2015-03-16 06:55:45 +00:00
projects Reverse the order libc++ and libc++abi are added in CMake. 2015-03-04 01:16:43 +00:00
test InstrProf: Do a better job of reading coverage mapping data. 2015-03-16 06:55:45 +00:00
tools [dsymutil] Add support to generate .debug_pubnames and .debug_pubtypes 2015-03-16 02:05:10 +00:00
unittests [opaque pointer type] gep API migration 2015-03-14 21:40:10 +00:00
utils Use the variable names from the TargetInstrInfo source when we 2015-03-13 01:26:39 +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 Add new LLVM_OPTIMIZED_TABLEGEN build setting which configures, builds and uses a release tablegen build when LLVM is configured with assertions enabled. 2015-03-10 20:48:02 +00:00
CODE_OWNERS.TXT [CODE_OWNERS] Change the ownership of register allocators. 2015-03-05 22:15:17 +00:00
configure [autoconf] Fix the build failure by quoting the strings. 2015-03-12 19:56:25 +00:00
CREDITS.TXT Rise from the dead and update personal info 2014-08-25 17:51:04 +00:00
LICENSE.TXT Update for a new year. 2015-03-12 01:25:29 +00:00
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.