- Apr 07, 2017
-
-
Peter Smith authored
When the target of the TlsOffsetRel is non-preemptible we can write the offset directly into the GOT without needing a dynamic relocation. This is optional for dynamically linked executables but is required for static linking. This change adds the relocation to the GOT entry and a test case for non-0 offsets so that if we miss out the offset the test won't spuriously pass by virtue of the default value being 0. Differential Revision: https://reviews.llvm.org/D31749 llvm-svn: 299751
-
Peter Smith authored
The handleNoRelaxTlsRelocation handled both ARM and Mips as at a high-level the actions of what to do when encountering a local dynamic or global dynamic TLS relocation are the same. However due to Mips using a custom GOT the differences of the implementation are enough that the function became difficult to understand. This change replaces handleNotRelaxTlsRelocation into handleARMTlsRelocation() and handleMipsTlsRelocation() so that the ARM and Mips specific code is isolated. Differential Revision: https://reviews.llvm.org/D31748 llvm-svn: 299750
-
James Henderson authored
lld-x86_64-darwin13. llvm-svn: 299749
-
James Henderson authored
r299635 exposed a latent bug in the Linux implementation of parallel_for, which resulted in it calling the function outside of the range requested, resulting later in a segmentation fault. This change fixes this issue and adds a unit test. llvm-svn: 299748
-
Craig Topper authored
llvm-svn: 299747
-
Craig Topper authored
llvm-svn: 299746
-
Craig Topper authored
[InstSimplify] Use Instruction::BinaryOps instead of unsigned for a few function operands to remove some casts. NFC llvm-svn: 299745
-
Akira Hatanaka authored
Revert "Allow a standard library to implement conditional noexcept for optional and unique_ptr hash functions." This reverts commit r299734. llvm-svn: 299744
-
Shoaib Meenai authored
LLVM dropped support for Visual Studio versions older than 2015 quite some time ago, so I consider it safe to drop libc++'s support for older CRTs. The CRT in Visual Studio 2015 provides a lot of previously missing functions, so targeting it requires less special casing. Differential Revision: https://reviews.llvm.org/D31798 llvm-svn: 299743
-
Rafael Espindola authored
The argument was always casted, so cast it in the caller. llvm-svn: 299742
-
Daniel Berlin authored
Summary: getModRefInfo is meant to answer the question "what impact does this instruction have on a given memory location" (not even another instruction). Long debate on this on IRC comes to the conclusion the answer should be "nothing special". That is, a noalias volatile store does not affect a memory location just by being volatile. Note: DSE and GVN and memdep currently believe this, because memdep just goes behind AA's back after it says "modref" right now. see line 635 of memdep. Prior to this patch we would get modref there, then check aliasing, and if it said noalias, we would continue. getModRefInfo *already* has this same AA check, it just wasn't being used because volatile was lumped in with ordering. (I am separately testing whether this code in memdep is now dead except for the invariant load case) Reviewers: jyknight, chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31726 llvm-svn: 299741
-
Rafael Espindola authored
llvm-svn: 299740
-
Reid Kleckner authored
llvm-svn: 299739
-
Reid Kleckner authored
For a function to be pickle-able, it has to be in the top-level of a real Python module. So, I made one for this code snippet. llvm-svn: 299738
-
Craig Topper authored
llvm-svn: 299737
-
Derek Schuff authored
llvm-svn: 299736
-
Billy Robert O'Neal III authored
llvm-svn: 299735
-
Billy Robert O'Neal III authored
Allow a standard library to implement conditional noexcept for optional and unique_ptr hash functions. These tests were unconditionally asserting that optional and unique_ptr declare throwing hashes, but MSVC++ implements conditional noexcept forwarding that of the underlying hash function. As a result we were failing these tests but there's nothing forbidding strengthening noexcept in that way. Changed the ASSERT_NOT_NOEXCEPT asserts to use types which themselves have non-noexcept hash functions. llvm-svn: 299734
-
Zachary Turner authored
Previously when dumping class definitions, there were only two modes - on or off. But it's useful to sometimes get a little more fine-grained. For example, you might only want to see the record layout (for example to look for extraneous padding). This patch adds a third mode, layout mode, which does exactly that. Only this-relative data members are displayed in this mode. Differential Revision: https://reviews.llvm.org/D31794 llvm-svn: 299733
-
Zachary Turner authored
Previously we just had the -types option, which would dump all classes, typedefs, and enums. But this produces a lot of output if you only want to view classes, for example. This patch breaks this down into 3 additional options, -classes, -enums, and -typedefs, and keeps the -types option around which implies all 3 more specific options. Differential Revision: https://reviews.llvm.org/D31791 llvm-svn: 299732
-
Adrian Prantl authored
llvm-svn: 299731
-
Adrian Prantl authored
llvm-svn: 299730
-
Eugene Zemtsov authored
llvm-svn: 299729
-
Saleem Abdulrasool authored
The /appcontainer flag indicates that the module may only be used inside an application container (for isolation). This has been supported by link.exe since Windows 8.0. It sets an additional bit in the PE DLL Characteristics flag to indicate the behavioural change. llvm-svn: 299728
-
Konstantin Zhuravlyov authored
Differential Revision: https://reviews.llvm.org/D31786 llvm-svn: 299727
-
Eric Christopher authored
llvm-svn: 299726
-
Craig Topper authored
llvm-svn: 299725
-
Yi Kong authored
This reverts commit dc9458d5a747a02a9a8f198b84c2b92a6939a8dd. Added missing case for PreISelOperandLatencyAdjustment. llvm-svn: 299724
-
Eli Friedman authored
The new codepath has been in the tree for years, and there isn't any reason to use two codepaths here. Differential Revision: https://reviews.llvm.org/D30596 llvm-svn: 299723
-
Rui Ueyama authored
This patch addresses a post-commit review comment for r299615. Differential Revision: https://reviews.llvm.org/D31792 llvm-svn: 299722
-
Eugene Zemtsov authored
Current implementation of CPlusPlusLanguage::MethodName::Parse() doesn't get anywhere close to covering full extent of possible function declarations. It causes incorrect behavior in avoid-stepping and sometimes messes printing of thread backtrace. This change implements more methodical parsing logic based on clang lexer and simple recursive parser. Examples: void std::vector<Class, std::allocator<Class>>::_M_emplace_back_aux<Class const&>(Class const&) void (*&std::_Any_data::_M_access<void (*)()>())() Previous version of this change (D31451) was rolled back due to an issue with Objective-C selectors being incorrectly recognized as a C++ identifier. Differential Revision: https://reviews.llvm.org/D31451 llvm-svn: 299721
-
Michael Kuperstein authored
llvm-svn: 299720
-
Zachary Turner authored
llvm-svn: 299719
-
- Apr 06, 2017
-
-
Zachary Turner authored
llvm-svn: 299718
-
Rafael Espindola authored
The alignment expression cannot depend on '.', so we can compute it early. llvm-svn: 299717
-
Rafael Espindola authored
This removes a bit more work from assignAddresses. llvm-svn: 299716
-
Craig Topper authored
llvm-svn: 299715
-
Zachary Turner authored
This adjusts header file includes for headers and source files in Core. In doing so, one dependency cycle is eliminated because all the includes from Core to that project were dead includes anyway. In places where some files in other projects were only compiling due to a transitive include from another header, fixups have been made so that those files also include the header they need. Tested on Windows and Linux, and plan to address failures on OSX and FreeBSD after watching the bots. llvm-svn: 299714
-
Rafael Espindola authored
llvm-svn: 299713
-
Matt Arsenault authored
This is possible in ways that are not compiler bugs, so stop asserting on them. This emits an extra error when emitting objects when it can't encode the new pseudo, but I'm not sure that matters. llvm-svn: 299712
-