1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/include/llvm
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
..
ADT Remove some unneeded headers and replace some headers with forward class declarations (NFC) 2016-04-16 07:51:28 +00:00
Analysis [TTI] Add getInliningThresholdMultiplier. 2016-04-15 01:38:48 +00:00
AsmParser [AsmParser] Expose an API to parse a string starting with a type. 2016-03-08 00:37:07 +00:00
Bitcode ThinLTO: Make aliases explicit in the summary 2016-04-16 06:56:44 +00:00
CodeGen Don't skip splitSeparateComponents in eliminateDeadDefs for HoistSpillHelper::hoistAllSpills. 2016-04-15 23:16:44 +00:00
Config [CMake] Add PACKAGE_VENDOR for customizing version output 2016-03-15 18:07:46 +00:00
DebugInfo [codeview] Dump char16_t and char32_t simple types 2016-04-15 18:26:45 +00:00
ExecutionEngine Add missing #include to fix build 2016-04-16 17:39:40 +00:00
IR IR: Use an explicit map for debug info type uniquing 2016-04-17 03:58:21 +00:00
IRReader [ThinLTO] Metadata linking for imported functions 2015-12-17 17:14:09 +00:00
LibDriver LibDriver: Replace references to lld-link2 with lld-link. 2015-08-06 19:00:42 +00:00
LineEditor Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Linker [ThinLTO] Remove post-pass metadata linking support 2016-03-29 18:24:19 +00:00
LTO Refactor the Internalize stage of libLTO in a separate file (NFC) 2016-04-12 06:34:10 +00:00
MC Remove some unneeded headers and replace some headers with forward class declarations (NFC) 2016-04-16 07:51:28 +00:00
Object Thread Expected<...> up from createMachOObjectFile() to allow llvm-objdump to produce a real error message 2016-04-06 22:14:09 +00:00
ObjectYAML [msan fix] unitalized variable 2016-03-17 19:16: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 [PM] Wire up optimization levels and default pipeline construction APIs 2016-02-28 22:16:03 +00:00
ProfileData Replace the use of MaxFunctionCount module flag 2016-04-15 21:39:58 +00:00
Support Add some missing #includes, found by C++ modules selfhost. 2016-04-16 00:42:37 +00:00
TableGen Reverting r263474; it turns out there are uses of the public interface, but MSVC wasn't caring about them. 2016-03-14 20:03:15 +00:00
Target [Target] Reduce size of the LoadExtActions array in TargetLoweringBase by half. Saving ~18K bytes from the array. 2016-04-17 01:34:37 +00:00
Transforms ThinLTO: Move the ODR resolution to be based purely on the summary. 2016-04-16 07:02:16 +00:00
CMakeLists.txt
InitializePasses.h Add a pass to name anonymous/nameless function 2016-04-12 21:35:28 +00:00
LinkAllIR.h Remove every uses of getGlobalContext() in LLVM (but the C API) 2016-04-14 21:59:01 +00:00
LinkAllPasses.h [Speculation] Add a SpeculativeExecution mode where the pass does nothing unless TTI::hasBranchDivergence() is true. 2016-04-15 00:32:09 +00:00
module.modulemap Add Lanai.def to the module map. 2016-03-12 01:31:53 +00:00
module.modulemap.build
Pass.h Recommit r256952 "Filtering IR printing for print-after-all/print-before-all" 2016-01-06 22:55:03 +00:00
PassAnalysisSupport.h [PassManager] Tuning Memory Usage of AnalysisUsage 2015-12-08 00:10:56 +00:00
PassInfo.h Reformat partially. 2015-10-05 04:46:30 +00:00
PassRegistry.h Reorganize the C API headers to improve build times. 2015-12-18 01:46:52 +00:00
PassSupport.h Support: Clean up TSan annotations. 2015-08-18 22:31:24 +00:00