1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
Go to file
Peter Collingbourne 5d041bb166 LowerTypeTests: Drop function type metadata only if we're going to replace it.
Previously we were (mis)handling jump table members with a prevailing
definition in a full LTO module and a non-prevailing definition in a
ThinLTO module by dropping type metadata on those functions entirely,
which would cause type tests involving such functions to fail.

This patch causes us to drop metadata only if we are about to replace
it with metadata from cfi.functions.

We also want to replace metadata for available_externally functions,
which can arise in the opposite scenario (prevailing ThinLTO
definition, non-prevailing full LTO definition). The simplest way
to handle that is to remove the definition; there's little value in
keeping it around at this point (i.e. after most optimization passes
have already run) and later code will try to use the function's linkage
to create an alias, which would result in invalid IR if the function
is available_externally.

Fixes PR33832.

Differential Revision: https://reviews.llvm.org/D35604

llvm-svn: 308642
2017-07-20 18:02:05 +00:00
bindings [NFC] Remove multiple semicolons 2017-06-28 23:15:16 +00:00
cmake [cmake] GetSVN.cmake takes a list of arguments 2017-07-19 18:37:02 +00:00
docs [libFuzzer] enable reduce_inputs=1 by default (seems to be a big win usually) 2017-07-19 22:10:30 +00:00
examples Defeat another -Wunused-but-set-variable warning 2017-07-19 15:06:31 +00:00
include [globalisel][tablegen] Fix an unintended fallthrough that is currently unreachable. NFC 2017-07-20 13:10:17 +00:00
lib LowerTypeTests: Drop function type metadata only if we're going to replace it. 2017-07-20 18:02:05 +00:00
projects
resources
runtimes [CMake] Set toolchain tools in cross-target runtimes build 2017-07-18 20:54:02 +00:00
test LowerTypeTests: Drop function type metadata only if we're going to replace it. 2017-07-20 18:02:05 +00:00
tools Revert "[LLVM][llvm-objcopy] Added basic plumbing to get things started" 2017-07-20 00:13:32 +00:00
unittests Remove some leftover DWARFContextInMemory. 2017-07-19 23:34:59 +00:00
utils [globalisel][tablegen] Add control-flow to the MatchTable. 2017-07-20 09:25:44 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Update trunk version to 6.0.0svn 2017-07-19 12:19:01 +00:00
CODE_OWNERS.TXT Remove the BBVectorize pass. 2017-06-30 07:09:08 +00:00
configure
CREDITS.TXT Another test commit 2017-07-01 03:24:06 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT [RelTest] Diana is doing both releases now 2017-07-14 08:33:52 +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 are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.