llvm-mirror/lib
Mehdi Amini 5a3fd7abf3 [ThinLTO] Fix crash when importing an opaque type
It seems that because ThinLTO does not import the full module,
some invariant of the type mapper are broken.

In Monolithic LTO, we import every globals: when calling
IRLinker::copyFunctionProto() on @foo(), we end-up calling
TypeMapTy::get(FTy) on the type of @foo(), which will map
%0 and record the destination as opaque.

ThinLTO skips this because @foo is not imported and goes directly
to the next stage.

Next we call computeTypeMapping() that map the types for each
globals, and ends up checking for type isomorphism, and may add
type mapping. However it doesn't record if there was an opaque
destination type that was resolved.

Instead of lazily "discovering" opaque type in the destination
module on the go, we change the TypeFinder to eagerly record all
types and not only the named ones.

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

llvm-svn: 287453
2016-11-19 18:44:16 +00:00
..
Analysis [SCEV] limit recursion depth of CompareSCEVComplexity 2016-11-17 16:07:52 +00:00
AsmParser [AsmParser] Avoid recursing when lexing ';'. NFC. 2016-11-16 22:25:05 +00:00
Bitcode [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
CodeGen [SelectionDAG] Add knowbits support for CONCAT_VECTOR opcode 2016-11-18 22:21:22 +00:00
DebugInfo Align Modi and FileInfo substreams on 32-byte offsets. 2016-11-16 00:59:27 +00:00
Demangle Demangle: only demangle mangled symbols 2016-11-14 04:54:47 +00:00
ExecutionEngine [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
Fuzzer [libFuzzer] replace 'auto' with 'auto *' to better follow the LLVM style 2016-11-14 19:21:38 +00:00
IR Change setDiagnosticsOutputFile to take a unique_ptr from a raw pointer (NFC) 2016-11-19 18:19:41 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker [ThinLTO] Fix crash when importing an opaque type 2016-11-19 18:44:16 +00:00
LTO [ThinLTO] Implement -pass-remarks-output in ThinLTOCodeGenerator 2016-11-19 18:20:05 +00:00
MC Fix 24560: assembler does not share constant pool for same constants 2016-11-04 19:17:32 +00:00
Object Object: Simplify; remove unnecessary use of unique_ptr. 2016-11-18 03:20:36 +00:00
ObjectYAML Fix Clang-tidy readability-redundant-string-cstr warnings 2016-11-02 16:43:50 +00:00
Option Generalize ArgList::AddAllArgs more 2016-09-29 19:47:58 +00:00
Passes [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
ProfileData Make the Error class constructor protected 2016-11-11 04:28:40 +00:00
Support Revert "Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch" 2016-11-18 20:02:34 +00:00
TableGen TableGen: Add operator !or 2016-11-15 06:49:28 +00:00
Target [X86] Simplify some code a little by removing a dulicate variable and combinining two if statements. NFCI 2016-11-19 17:33:17 +00:00
Transforms [LoopSimplify] Preserve LCSSA when removing edges from unreachable blocks. 2016-11-18 21:01:12 +00:00
CMakeLists.txt Try to fix a circular dependency in the modules build. 2016-09-06 20:16:19 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00