1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/include/llvm
Duncan P. N. Exon Smith a6c2e1e60b Linker: Move distinct MDNodes instead of cloning
Instead of cloning distinct `MDNode`s when linking in a module, just
move them over.  The module linker destroys the source module, so the
old node would otherwise just be leaked on the context.  Create the new
node in place.  This also reduces the number of cloned uniqued nodes
(since it's less likely their operands have changed).

This mapping strategy is only correct when we're discarding the source,
so the linker turns it on via a ValueMapper flag, `RF_MoveDistinctMDs`.

There's nothing observable in terms of `llvm-link` output here: the
linked module should be semantically identical.

I'll be adding more 'distinct' nodes to the debug info metadata graph in
order to break uniquing cycles, so the benefits of this will partly come
in future commits.  However, we should get some gains immediately, since
we have a fair number of 'distinct' `DILocation`s being linked in.

llvm-svn: 243883
2015-08-03 17:09:38 +00:00
..
ADT Add amdopencl environment to triple 2015-07-30 08:16:51 +00:00
Analysis Allow derived DOTViewers to choose the functions to illustrate 2015-08-03 16:37:12 +00:00
AsmParser AsmParser: Add a function to parse a standalone constant value. 2015-07-17 22:07:03 +00:00
Bitcode New EH representation for MSVC compatibility 2015-07-31 17:58:14 +00:00
CodeGen Refactor AtomicExpand::expandAtomicRMWToCmpXchg into a standalone function. 2015-08-03 15:29:47 +00:00
Config [Support] Lazy load of dbghlp.dll on Windows 2015-07-02 14:34:57 +00:00
DebugInfo Fix typos in comments. NFC. 2015-07-29 18:07:48 +00:00
ExecutionEngine Provide move constructor to appease Visual C++. 2015-08-01 15:50:53 +00:00
IR Mark CompositeType::getTypeAtIndex as const. NFC 2015-08-01 22:52:12 +00:00
IRReader Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LibDriver ArrayRef-ify libDriverMain 2015-06-21 06:31:56 +00:00
LineEditor Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Linker Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LTO Teach LTOModule to emit linker flags for dllexported symbols, plus interface cleanup. 2015-06-29 22:04:09 +00:00
MC Workaround some compilers that give a stricter throw spec to = default than implicit dtors 2015-08-01 05:10:37 +00:00
Object [RuntimeDyld] Make LoadedObjectInfo::getLoadedSectionAddress take a SectionRef 2015-07-28 17:52:11 +00:00
Option Add an ArgList::AddAllArgs that accepts a vector of OptSpecifier. 2015-07-29 17:34:41 +00:00
Passes Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ProfileData Re-apply "InstrProf: When reading, copy the data instead of taking a reference. NFC" 2015-06-22 23:58:05 +00:00
Support [Mips] Support DT_MIPS_RLD_MAP_REL dynamic section tag in the llvm-readobj 2015-08-01 12:02:02 +00:00
TableGen [TableGen] Change a couple methods to return an ArrayRef instead of a const std::vector reference. NFC 2015-07-06 06:23:01 +00:00
Target Add a TargetMachine hook that verifies DataLayout compatibility 2015-07-30 20:33:18 +00:00
Transforms Linker: Move distinct MDNodes instead of cloning 2015-08-03 17:09:38 +00:00
CMakeLists.txt Remove llvm_headers_do_not_build for the benefit of XCode and Visual Studio users. 2014-08-14 00:51:47 +00:00
InitializePasses.h Create a wrapper pass for BranchProbabilityInfo. 2015-07-15 22:48:29 +00:00
LinkAllIR.h
LinkAllPasses.h Don't change the visibility when converting a definition to a declaration. 2015-07-13 14:18:22 +00:00
module.modulemap Add Value.def to the list of textual includes, excluding it from the modules build. 2015-06-26 20:16:44 +00:00
module.modulemap.build [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
Pass.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassAnalysisSupport.h Doxygen-ify a few comments. NFC 2015-06-25 15:06:47 +00:00
PassInfo.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassRegistry.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassSupport.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00