- 09 Feb, 2017 1 commit
-
-
Hans Wennborg authored
llvm-svn: 294535
-
- 08 Feb, 2017 13 commits
-
-
Hans Wennborg authored
llvm-svn: 294486
-
Hans Wennborg authored
llvm-svn: 294485
-
Hans Wennborg authored
llvm-svn: 294484
-
Hans Wennborg authored
llvm-svn: 294483
-
Hans Wennborg authored
llvm-svn: 294482
-
Hans Wennborg authored
llvm-svn: 294481
-
Hans Wennborg authored
llvm-svn: 294480
-
Hans Wennborg authored
```--------------------------------------------------------------------- r292949 | rnk | 2017-01-24 08:57:55 -0800 (Tue, 24 Jan 2017) | 6 lines [CodeView] Fix off-by-one error in def range gap emission Also fixes a much worse bug where we emitted the wrong gap size for the def range uncovered by the test for this issue. Fixes PR31726. ``` --------------------------------------------------------------------- llvm-svn: 294479
-
Hans Wennborg authored
llvm-svn: 294478
-
Hans Wennborg authored
```--------------------------------------------------------------------- r294349 | dexonsmith | 2017-02-07 13:03:50 -0800 (Tue, 07 Feb 2017) | 12 lines ADT: Add explicit conversions for reverse ilist iterators Add explicit conversions between forward and reverse ilist iterators. These follow the conversion conventions of std::reverse_iterator, which are off-by-one: the newly-constructed "reverse" iterator dereferences to the previous node of the one sent in. This has the benefit of converting reverse ranges in place: - If [I, E) is a valid range, - then [reverse(E), reverse(I)) gives the same range in reverse order. ilist_iterator::getReverse() is unchanged: it returns a reverse iterator to the *same* node. ``` --------------------------------------------------------------------- ------------------------------------------------------------------------ r294357 | dblaikie | 2017-02-07 13:31:03 -0800 (Tue, 07 Feb 2017) | 1 line Fix some missing negations in the traits checking from r294349 ------------------------------------------------------------------------ llvm-svn: 294477
-
Hans Wennborg authored
```--------------------------------------------------------------------- r294348 | hans | 2017-02-07 12:37:45 -0800 (Tue, 07 Feb 2017) | 6 lines [X86] Disable conditional tail calls (PR31257) They are currently modelled incorrectly (as calls, which clobber registers, confusing e.g. Machine Copy Propagation). Reverting until we figure out the proper solution. ``` --------------------------------------------------------------------- llvm-svn: 294476
-
Hans Wennborg authored
llvm-svn: 294474
-
Hans Wennborg authored
Cherry pick llvm r294088 to 4.0 branch with slight changes to the way undef operands are handled. llvm-svn: 294473
-
- 07 Feb, 2017 2 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r294318 | adrian | 2017-02-07 09:35:41 -0800 (Tue, 07 Feb 2017) | 12 lines Fix the bitcode upgrade for DIGlobalVariable in a DIImportedEntity context. The bitcode upgrade for DIGlobalVariable unconditionally wrapped DIGlobalVariables in a DIGlobalVariableExpression. When a DIGlobalVariable is referenced by a DIImportedEntity, however, this is wrong. This patch fixes the bitcode upgrade by deferring the creation of DIGlobalVariableExpressions until we know the context of the DIGlobalVariable. <rdar://problem/30134279> Differential Revision: https://reviews.llvm.org/D29349 ``` --------------------------------------------------------------------- llvm-svn: 294352
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293017 | chapuni | 2017-01-24 20:26:29 -0800 (Tue, 24 Jan 2017) | 5 lines Rewind instantiations of OuterAnalysisManagerProxy in r289317, r291651, and r291662. I found root class should be instantiated for variadic tempate to instantiate static member explicitly. This will fix failures in mingw DLL build. ``` --------------------------------------------------------------------- ------------------------------------------------------------------------ r294267 | chandlerc | 2017-02-06 17:50:48 -0800 (Mon, 06 Feb 2017) | 18 lines Revert r293017 and fix the actual underlying issue. The patch committed in r293017, as discussed on the list, doesn't really make sense but was causing an actual issue to go away. The issue turns out to be that in one place the extra template arguments were dropped from the OuterAnalysisManagerProxy. This in turn caused the types used in one set of places to access the key to be completely different from the types used in another set of places for both Loop and CGSCC cases where there are extra arguments. I have literally no idea how anything seemed to work with this bug in place. It blows my mind. But it did except for mingw64 in a DLL build. I've added a really handy static assert that helps ensure we don't break this in the future. It immediately diagnoses the issue with a compile failure and a very clear error message. Much better that staring at backtraces on a build bot. =] ------------------------------------------------------------------------ llvm-svn: 294335
-
- 06 Feb, 2017 2 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r294133 | marshall | 2017-02-05 12:06:38 -0800 (Sun, 05 Feb 2017) | 1 line Change the base class of std::bad_optional_access. This is a (subtle) ABI change, and is in response to http://http://wg21.link/LWG2806, which I *expect* to be adopted in Kona. I am making this change now in anticipation, and will get it into 4.0, because (a) 4.0 is the first release with std::optional, and (b) I don't want to make an ABI-change later, when the user base should be significantly larger. Note that I didn't change std::experimental::bad_optional_access, because that's still specified to derive from std::logic_error. ``` --------------------------------------------------------------------- ------------------------------------------------------------------------ r294142 | marshall | 2017-02-05 12:52:32 -0800 (Sun, 05 Feb 2017) | 1 line Restore the _NOEXCEPT on the dtor of bad_optional_access. Destructors are noexcept by default, so it's not really needed, but the other exception classes have the _NOEXCEPT, and gcc complains if these are missing. I think we should remove them all - but not today. ------------------------------------------------------------------------ llvm-svn: 294249
-
Hans Wennborg authored
```--------------------------------------------------------------------- r294203 | john.brawn | 2017-02-06 10:07:20 -0800 (Mon, 06 Feb 2017) | 9 lines [AArch64] Fix incorrect MachinePointerInfo in splitStoreSplat When splitting up one store into several in splitStoreSplat we have to make sure we get the MachinePointerInfo right, otherwise alias analysis thinks they all store to the same location. This can then cause invalid scheduling later on. Differential Revision: https://reviews.llvm.org/D29446 ``` --------------------------------------------------------------------- llvm-svn: 294242
-
- 05 Feb, 2017 1 commit
-
-
Dimitry Andric authored
```--------------------------------------------------------------------- r294102 | dim | 2017-02-04 23:24:55 +0100 (Sat, 04 Feb 2017) | 13 lines Add lld to the test-release.sh script Building lld is enabled by default, but it can be disabled using the -no-lld option. Reviewers: tstellarAMD, rengolin, hans Reviewed By: hans Subscribers: grosser, wdng, emaste, llvm-commits Differential Revision: https://reviews.llvm.org/D29539 ``` --------------------------------------------------------------------- llvm-svn: 294123
-
- 04 Feb, 2017 1 commit
-
-
Eric Fiselier authored
llvm-svn: 294103
-
- 03 Feb, 2017 2 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r294008 | arphaman | 2017-02-03 06:22:33 -0800 (Fri, 03 Feb 2017) | 14 lines [Sema][ObjC++] Typo correction should handle ivars and properties After r260016 and r260017 disabled typo correction for ivars and properties clang didn't report errors about unresolved identifier in the base of ivar and property ref expressions. This meant that clang invoked CodeGen on invalid AST which then caused a crash. This commit re-enables typo correction for ivars and properites, and fixes the PR25113 & PR26486 (that were originally fixed in r260017 and r260016) in a different manner by transforming the Objective-C ivar reference expression with 'IsFreeIvar' preserved. rdar://30310772 ``` --------------------------------------------------------------------- llvm-svn: 294059
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293043 | dergachev | 2017-01-25 02:21:45 -0800 (Wed, 25 Jan 2017) | 12 lines [analyzer] Fix MacOSXAPIChecker fp with static locals seen from nested blocks. This is an attempt to avoid new false positives caused by the reverted r292800, however the scope of the fix is significantly reduced - some variables are still in incorrect memory spaces. Relevant test cases added. rdar://problem/30105546 rdar://problem/30156693 Differential revision: https://reviews.llvm.org/D28946 ``` --------------------------------------------------------------------- llvm-svn: 294050
-
- 02 Feb, 2017 5 commits
-
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293345 | spatel | 2017-01-27 15:26:27 -0800 (Fri, 27 Jan 2017) | 19 lines [InstCombine] move icmp transforms that might be recognized as min/max and inf-loop (PR31751) This is a minimal patch to avoid the infinite loop in: https://llvm.org/bugs/show_bug.cgi?id=31751 But the general problem is bigger: we're not canonicalizing all of the min/max forms reported by value tracking's matchSelectPattern(), and we don't define min/max consistently. Some code uses matchSelectPattern(), other code uses matchers like m_Umax, and others have their own inline definitions which may be subtly different from any of the above. The reason that the test cases in this patch need a cast op to trigger is because we don't (yet) canonicalize all min/max forms based on matchSelectPattern() in canonicalizeMinMaxWithConstant(), but we do make min/max+cast transforms based on matchSelectPattern() in visitSelectInst(). The location of the icmp transforms that trigger the inf-loop seems arbitrary at best, so I'm moving those behind the min/max fence in visitICmpInst() as the quick fix. ``` --------------------------------------------------------------------- llvm-svn: 293947
-
Hans Wennborg authored
```--------------------------------------------------------------------- r292167 | davide | 2017-01-16 14:01:41 -0800 (Mon, 16 Jan 2017) | 3 lines [llvm-objdump] Dump PT_OPENBSD_{BOOTDATA,RANDOMIZE,WXNEEDED}. PR: 31641 ``` --------------------------------------------------------------------- Merging r292169: ------------------------------------------------------------------------ r292169 | davide | 2017-01-16 14:58:26 -0800 (Mon, 16 Jan 2017) | 3 lines [llvm-objdump] Dump PT_GNU_RELRO as part of -p. PR: 31641 ------------------------------------------------------------------------ Merging r292170: ------------------------------------------------------------------------ r292170 | davide | 2017-01-16 15:13:46 -0800 (Mon, 16 Jan 2017) | 3 lines [llvm-objdump] Dump PT_NOTE as part of -p. PR: 31641 ------------------------------------------------------------------------ llvm-svn: 293942 -
Hans Wennborg authored
```--------------------------------------------------------------------- r293635 | nha | 2017-01-31 06:35:37 -0800 (Tue, 31 Jan 2017) | 16 lines [DAGCombine] require UnsafeFPMath for re-association of addition Summary: The affected transforms all implicitly use associativity of addition, for which we usually require unsafe math to be enabled. The "Aggressive" flag is only meant to convey information about the performance of the fused ops relative to a fmul+fadd sequence. Fixes Bug 31626. Reviewers: spatel, hfinkel, mehdi_amini, arsenm, tstellarAMD Subscribers: jholewinski, nemanjai, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D28675 ``` --------------------------------------------------------------------- llvm-svn: 293940
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293536 | dim | 2017-01-30 11:06:13 -0800 (Mon, 30 Jan 2017) | 27 lines Recommit: Stop intercepting some malloc-related functions on FreeBSD and macOS Summary: In https://bugs.freebsd.org/215125 I was notified that some configure scripts attempt to test for the Linux-specific `mallinfo` and `mallopt` functions by compiling and linking small programs which references the functions, and observing whether that results in errors. FreeBSD and macOS do not have the `mallinfo` and `mallopt` functions, so normally these tests would fail, but when sanitizers are enabled, they incorrectly succeed, because the sanitizers define interceptors for these functions. This also applies to some other malloc-related functions, such as `memalign`, `pvalloc` and `cfree`. Fix this by not intercepting `mallinfo`, `mallopt`, `memalign`, `pvalloc` and `cfree` for FreeBSD and macOS, in all sanitizers. Also delete the non-functional `cfree` wrapper for Windows, to fix the test cases on that platform. Reviewers: emaste, kcc, rnk Subscribers: timurrrr, eugenis, hans, joerg, llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D27654 ``` --------------------------------------------------------------------- llvm-svn: 293917
-
Simon Atanasyan authored
r292161: [ELF][MIPS] Exclude mips .got from PT_GNU_RELRO segment On MIPS .got section cannot be included into the PT_GNU_RELRO segment. Sometimes it might work, but in general it is unsupported. One of the problem is that all sections marked by SHF_MIPS_GPREL should be grouped together because data in these sections is addressable with a gp relative address, but such sections might be writable. This patch exclude mips .got from PT_GNU_RELRO segment and group SHF_MIPS_GPREL sections. r292160: [ELF][MIPS] Remove redundant checkings from test cases. NFC This change is a prerequisite for the r292161. llvm-svn: 293879
-
- 01 Feb, 2017 13 commits
-
-
Peter Collingbourne authored
llvm-svn: 293838
-
Hans Wennborg authored
```--------------------------------------------------------------------- r292878 | ruiu | 2017-01-23 19:41:20 -0800 (Mon, 23 Jan 2017) | 12 lines Do not allocate space for common symbols with -r Currently ld.lld -r allocates space for common symbols, whereas ld.bfd -r doesn't. As a result the OpenBSD makefile bits for creating libraries fail as they use ld -X -r to strip local symbols, which results in duplicate symbol errors because space for the common symbols has been allocated. The diff also implements the --define-commons option such that allocation of commons can be forced even if -r is used. Patch by Mark Kettenis. ``` --------------------------------------------------------------------- llvm-svn: 293835
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293542 | arsenm | 2017-01-30 11:50:17 -0800 (Mon, 30 Jan 2017) | 7 lines LSR: Don't drop address space when type doesn't match For targets with different addressing modes in each address space, if this is dropped querying isLegalAddressingMode later with this will give a nonsense result, breaking the isLegalUse assertions. This is a candidate for the 4.0 release branch. ``` --------------------------------------------------------------------- llvm-svn: 293819
-
Hans Wennborg authored
```--------------------------------------------------------------------- r292638 | ericwf | 2017-01-20 11:34:19 -0800 (Fri, 20 Jan 2017) | 9 lines Fix catch_reference_nullptr.pass.cpp test for GCC. This test contained an implicit conversion from nullptr to bool. Clang warns about this but the test had supressed that warning. However GCC diagnoses the same code as an error and requires -fpermissive to accept it. This patch fixes both the warning and the error by explicitly converting the pointer to bool. ``` --------------------------------------------------------------------- llvm-svn: 293813
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293730 | matze | 2017-01-31 17:31:36 -0800 (Tue, 31 Jan 2017) | 3 lines MCMacho: Allow __thread_ptr section after dwarf sections Differential Revision: https://reviews.llvm.org/D29315 ``` --------------------------------------------------------------------- llvm-svn: 293807
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293673 | matze | 2017-01-31 10:37:53 -0800 (Tue, 31 Jan 2017) | 6 lines InterleaveAccessPass: Avoid constructing invalid shuffle masks Fix a bug where we would construct shufflevector instructions addressing invalid elements. Differential Revision: https://reviews.llvm.org/D29313 ``` --------------------------------------------------------------------- llvm-svn: 293805
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293309 | mssimpso | 2017-01-27 09:33:16 -0800 (Fri, 27 Jan 2017) | 20 lines [ARM/AArch64] Relocate and update InterleavedAccessPass tests (NFC) The interleaved access pass is an IR-to-IR transformation that runs before code generation. It matches interleaved memory operations to target-specific intrinsics (that are later lowered to load and store multiple instructions on ARM/AArch64). We place tests for similar passes (e.g., GlobalMergePass) under test/Transforms. This patch moves the InterleavedAccessPass tests out of test/CodeGen and into target-specific directories under test/Transforms/InterleavedAccess. Although the pass is an IR pass, many of the existing tests were llc tests rather opt tests. For example, the tests would check for ldN/stN instructions generated by llc rather than the intrinsic calls the pass actually inserts. Thus, this patch updates all tests to be opt tests that check for the inserted intrinsics. We already have separate CodeGen tests that ensure we lower the interleaved access intrinsics to their corresponding ldN/stN instructions. In addition to migrating the tests to opt, this patch also performs some minor clean-up (to ensure consistent naming, etc.). Differential Revision: https://reviews.llvm.org/D29184 ``` --------------------------------------------------------------------- llvm-svn: 293804
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293787 | arphaman | 2017-02-01 09:37:28 -0800 (Wed, 01 Feb 2017) | 5 lines [CodeGen][ObjC] Avoid asserting on block pointer types in isPointerZeroInitializable rdar://30111891 ``` --------------------------------------------------------------------- llvm-svn: 293797
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293727 | davide | 2017-01-31 17:01:22 -0800 (Tue, 31 Jan 2017) | 3 lines [IPSCCP] Teach how to not propagate return values of naked functions. Differential Revision: https://reviews.llvm.org/D29360 ``` --------------------------------------------------------------------- llvm-svn: 293796
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293360 | gbiv | 2017-01-27 18:19:40 -0800 (Fri, 27 Jan 2017) | 11 lines Change how we handle diagnose_if attributes. This patch changes how we handle argument-dependent `diagnose_if` attributes. In particular, we now check them in the same place that we check for things like passing NULL to Nonnull args, etc. This is basically better in every way than how we were handling them before. :) This fixes PR31638, PR31639, and PR31640. Differential Revision: https://reviews.llvm.org/D28889 ``` --------------------------------------------------------------------- Merging r293369: ------------------------------------------------------------------------ r293369 | gbiv | 2017-01-27 20:16:32 -0800 (Fri, 27 Jan 2017) | 7 lines Attempt to unbreak buildbots. r293360 broke some ARM bots, because size_t on those targets is apparently `unsigned int`, not `unsigned long`. `sizeof(whatever)` should to give us a `size_t`, so we can just use the type of that instead. ------------------------------------------------------------------------ llvm-svn: 293784
-
Hans Wennborg authored
```--------------------------------------------------------------------- r291963 | ericwf | 2017-01-13 14:11:40 -0800 (Fri, 13 Jan 2017) | 9 lines [clang] Emit `diagnose_if` warnings from system headers Summary: In order for libc++ to meaningfully use `diagnose_if` warnings they need to be emitted from system headers by default. This patch changes the `diagnose_if` warning diagnostic to be shown in system headers. Reviewers: george.burgess.iv, rsmith, aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28703 ``` --------------------------------------------------------------------- llvm-svn: 293783
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293678 | ahatanak | 2017-01-31 11:53:32 -0800 (Tue, 31 Jan 2017) | 9 lines [Sema] Transform a templated name before looking it up in FindInstantiatedDecl or passing it to RebuildMemberExpr. This fixes PR30361. rdar://problem/17341274 Differential Revision: https://reviews.llvm.org/D24969 ``` --------------------------------------------------------------------- llvm-svn: 293782
-
Hans Wennborg authored
```--------------------------------------------------------------------- r293658 | arnolds | 2017-01-31 09:53:49 -0800 (Tue, 31 Jan 2017) | 1 line Don't combine stores to a swifterror pointer operand to a different type ``` --------------------------------------------------------------------- llvm-svn: 293781
-