1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/lib
Duncan P. N. Exon Smith 0c4233db2f IR: Use an explicit map for debug info type uniquing
Rather than relying on the structural equivalence of DICompositeType to
merge type definitions, use an explicit map on the LLVMContext that
LLParser and BitcodeReader consult when constructing new nodes.
Each non-forward-declaration DICompositeType with a non-empty
'identifier:' field is stored/loaded from the type map, and the first
definiton will "win".

This map is opt-in: clients that expect ODR types from different modules
to be merged must call LLVMContext::ensureDITypeMap.

  - Clients that just happen to load more than one Module in the same
    LLVMContext won't magically merge types.

  - Clients (like LTO) that want to continue to merge types based on ODR
    identifiers should opt-in immediately.

I have updated LTOCodeGenerator.cpp, the two "linking" spots in
gold-plugin.cpp, and llvm-link (unless -disable-debug-info-type-map) to
set this.

With this in place, it will be straightforward to remove the DITypeRef
concept (i.e., referencing types by their 'identifier:' string rather
than pointing at them directly).

llvm-svn: 266549
2016-04-17 03:58:21 +00:00
..
Analysis Add ProfileData to required_libraries 2016-04-15 23:08:52 +00:00
AsmParser IR: Use an explicit map for debug info type uniquing 2016-04-17 03:58:21 +00:00
Bitcode IR: Use an explicit map for debug info type uniquing 2016-04-17 03:58:21 +00:00
CodeGen Remove some unneeded headers and replace some headers with forward class declarations (NFC) 2016-04-16 07:51:28 +00:00
DebugInfo Update and fix LLVM_ENABLE_MODULES: 2016-04-16 00:48:58 +00:00
ExecutionEngine Thread Expected<...> up from createMachOObjectFile() to allow llvm-objdump to produce a real error message 2016-04-06 22:14:09 +00:00
Fuzzer [libFuzzer] add a better warning for command line flags with -- (two dashes) 2016-04-15 21:56:29 +00:00
IR IR: Use an explicit map for debug info type uniquing 2016-04-17 03:58:21 +00:00
IRReader
LibDriver LibDriver: Silently do nothing when provided no inputs. 2016-04-13 19:36:04 +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 Reapply "ValueMapper: Eliminate cross-file co-recursion, NFC" 2016-04-16 02:29:55 +00:00
LTO IR: Use an explicit map for debug info type uniquing 2016-04-17 03:58:21 +00:00
MC AsmParser: record "# line file" context to calculate location for diag 2016-04-13 19:46:54 +00:00
Object Start to add real error messages for malformed Mach-O files. 2016-04-13 21:17:58 +00:00
ObjectYAML [lanai] Add Lanai backend. 2016-03-28 13:09:54 +00:00
Option Option parser: class for consuming a joined arg in addition to all remaining args 2016-04-15 00:23:30 +00:00
Passes
ProfileData Replace the use of MaxFunctionCount module flag 2016-04-15 21:39:58 +00:00
Support Remove some unneeded headers and replace some headers with forward class declarations (NFC) 2016-04-16 07:51:28 +00:00
TableGen Update and fix LLVM_ENABLE_MODULES: 2016-04-16 00:48:58 +00:00
Target [X86] Use ternary operator to reduce code slightly. NFC 2016-04-16 19:09:32 +00:00
Transforms IR: Use an explicit map for debug info type uniquing 2016-04-17 03:58:21 +00:00
CMakeLists.txt
LLVMBuild.txt