llvm/lib
Frederich Munch dbf2bf739f Refactor DynamicLibrary so searching for a symbol will have a defined order and
libraries are properly unloaded when llvm_shutdown is called.

Summary:
This was mostly affecting usage of the JIT, where storing the library handles in
a set made iteration unordered/undefined. This lead to disagreement between the
JIT and native code as to what the address and implementation of particularly on
Windows with stdlib functions:

JIT: putenv_s("TEST", "VALUE") // called msvcrt.dll, putenv_s
JIT: getenv("TEST") -> "VALUE" // called msvcrt.dll, getenv
Native: getenv("TEST") -> NULL // called ucrt.dll, getenv

Also fixed is the issue of DynamicLibrary::getPermanentLibrary(0,0) on Windows
not giving priority to the process' symbols as it did on Unix.

Reviewers: chapuni, v.g.vassilev, lhames

Reviewed By: lhames

Subscribers: danalbert, srhines, mgorny, vsk, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301562 91177308-0d34-0410-b5e6-96231b3b80d8
2017-04-27 16:55:24 +00:00
..
Analysis Kill the old Simplify* APIs, leave SimplifyInstruction for the moment 2017-04-26 20:56:17 +00:00
AsmParser Add support for DW_TAG_thrown_type. 2017-04-26 22:56:44 +00:00
Bitcode Turn DISubprogram into a variable-length node. 2017-04-26 23:59:52 +00:00
CodeGen Rename some PDB classes. 2017-04-27 16:11:19 +00:00
DebugInfo [CodeView] Isolate Debug Info Fragments into standalone classes. 2017-04-27 16:12:16 +00:00
Demangle Add support for demangling C++11 thread_local variables. 2017-01-31 15:56:36 +00:00
ExecutionEngine Revert "[APInt] Fix a few places that use APInt::getRawData to operate within the normal API." 2017-04-23 12:15:30 +00:00
Fuzzer Fixup for r301054: Use an explicit constructor. 2017-04-21 23:28:01 +00:00
IR Use accessors for ValueHandleBase::V; NFC 2017-04-27 06:02:18 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LibDriver Fix some ArgList uses after API change in r300135. 2017-04-12 23:43:58 +00:00
LineEditor
Linker [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
LTO LTO: Mark undefined module asm symbols as used. 2017-04-26 17:53:39 +00:00
MC Rename some PDB classes. 2017-04-27 16:11:19 +00:00
Object LTO: Mark undefined module asm symbols as used. 2017-04-26 17:53:39 +00:00
ObjectYAML [WebAssembly] Allow for signed relocation addends 2017-04-26 00:02:31 +00:00
Option ArgList: cache index ranges containing arguments with each ID 2017-04-12 23:19:51 +00:00
Passes Disable GVN Hoist due to still more bugs being found in it. There is 2017-04-27 00:28:03 +00:00
ProfileData [ProfileData] Unify getInstrProf*SectionName helpers 2017-04-15 00:09:57 +00:00
Support Refactor DynamicLibrary so searching for a symbol will have a defined order and 2017-04-27 16:55:24 +00:00
TableGen Use print() instead of dump() in code 2017-01-28 02:47:46 +00:00
Target [AMDGPU] DPP: add support for GFX9 2017-04-27 15:42:38 +00:00
Transforms [PartialInlining]: Improve partial inlining to handle complex conditions 2017-04-27 16:34:00 +00:00
XRay [XRay] - Fix spelling error to test commit access. 2017-04-06 03:32:01 +00:00
CMakeLists.txt [XRay] Define the library for XRay trace logs 2017-01-11 06:39:09 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00