- Aug 13, 2018
-
-
Matt Arsenault authored
Also add some more tests in preparation for a future patch. llvm-svn: 339526
-
Matt Arsenault authored
Addresses fixme, although this should still be checking individual operand flags. llvm-svn: 339525
-
David Bolvansky authored
llvm-svn: 339524
-
David Bolvansky authored
llvm-svn: 339523
-
Shuai Wang authored
Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D50606 llvm-svn: 339522
-
David Bolvansky authored
Summary: The as<T>() method would trigger the following warning on GCC <7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] return *reinterpret_cast<T *>(Union.buffer); ^ Union.buffer is guaranteed to be aligned to whatever types it contains, and json::Value maintains the invariant that it only calls as<T>() for a T it has previously placement-newed into Union.buffer. This should follow the rules for strict aliasing. Using two static_cast via void * instead of reinterpret_cast silences the warning and presumably makes GCC understand that no strict-aliasing violation is happening. No functional change intended. Patch by: kimgr (Kim Gräsman) Reviewers: sammccall, xiangzhai, HaoLiu, llvm-commits, xbolva00 Reviewed By: sammccall, xbolva00 Subscribers: xbolva00 Differential Revision: https://reviews.llvm.org/D50608 llvm-svn: 339521 -
David Bolvansky authored
Summary: Basic version was merged - https://reviews.llvm.org/D49954 This adds support for FP & non-commutative opcodes Precommited tests: https://reviews.llvm.org/rL338727 Reviewers: spatel, lebedev.ri Reviewed By: spatel Subscribers: jfb Differential Revision: https://reviews.llvm.org/D50190 llvm-svn: 339520
-
- Aug 12, 2018
-
-
Sanjay Patel authored
(X * Z) + (Y * Z) --> (X + Y) * Z (X * Z) - (Y * Z) --> (X - Y) * Z (X / Z) + (Y / Z) --> (X + Y) / Z (X / Z) - (Y / Z) --> (X - Y) / Z The existing code that implemented these folds failed to optimize vectors, and it transformed code with multiple uses when it should not have. llvm-svn: 339519
-
Sanjay Patel authored
llvm-svn: 339518
-
Aaron Ballman authored
Adding the readability module to the list of dependencies for the C++ Core Guidelines module. Amends r339516 for a failing bot. llvm-svn: 339517
-
Aaron Ballman authored
Add a new check to the readability module that flags uses of "magic numbers" (both floating-point and integral). Patch by Florin Iucha <florin@signbit.net> llvm-svn: 339516
-
Benjamin Kramer authored
These are always UB, but can happen for large integer inputs. Testing it is very fragile as -simplifycfg will nuke the UB top-down. llvm-svn: 339515
-
George Rimar authored
This adds a coverage for the following early continue: https://github.com/llvm-mirror/lld/blob/master/ELF/CallGraphSort.cpp#L200 llvm-svn: 339514
-
Matt Arsenault authored
I'm not sure the exact nsz flag combination that is OK. I think as long as it's on either, this is OK. For now just check it on the omod multiply. llvm-svn: 339513
-
Matt Arsenault authored
If one of the elements is undef, use the canonicalized constant from the other element instead of 0. Splat vectors are more useful for other optimizations, such as matching vector clamps. This was breaking on clamps of half3 from the undef 4th component. llvm-svn: 339512
-
Matt Arsenault authored
llvm-svn: 339511
-
George Rimar authored
llvm-svn: 339510
-
Craig Topper authored
We were checking for all bits being Known by checking Known.Zero|Known.One, but if all the bits are known then the value should be a Constant and we can just check for that instead. llvm-svn: 339509
-
Craig Topper authored
llvm-svn: 339508
-
Craig Topper authored
The use of the or_is_add predicate already gives enough of a complexity boost to get the patterns ordered properly. llvm-svn: 339507
-
Raphael Isemann authored
Reviewers: a.sidorin, a_sidorin Reviewed By: a_sidorin Subscribers: a_sidorin, martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50550 llvm-svn: 339506
-
Raphael Isemann authored
Reviewers: a.sidorin, a_sidorin Reviewed By: a_sidorin Subscribers: a_sidorin, martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50552 llvm-svn: 339505
-
Raphael Isemann authored
Summary: Instead of iterating over our vector of functions, we might as well use a map here to directly get the function we need. Thanks to Vedant for pointing this out. Reviewers: vsk Reviewed By: vsk Subscribers: mgrang, lldb-commits Differential Revision: https://reviews.llvm.org/D50225 llvm-svn: 339504
-
Martin Storsjo authored
This was missed in SVN r337754. llvm-svn: 339503
-
- Aug 11, 2018
-
-
Chijun Sima authored
Summary: After converting all existing passes to use the new DomTreeUpdater interface, there isn't any usage of the original DeferredDominance class. Thus, we can safely remove it from the codebase. Reviewers: kuhar, brzycki, dmgreen, davide, grosser Reviewed By: kuhar, brzycki Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D49747 llvm-svn: 339502
-
David Green authored
Try to improve the computed counts when it has been explicitly set by a pragma or command line option. This moves the code around, so that first call to computeUnrollCount to get a sensible count and override that if explicit unroll and jam counts are specified. Also added some extra debug messages for when unroll and jamming is disabled. Differential Revision: https://reviews.llvm.org/D50075 llvm-svn: 339501
-
David Green authored
Pulled out a separate function for some code that calculates if an inner loop iteration count is invariant to it's outer loop. Differential Revision: https://reviews.llvm.org/D50063 llvm-svn: 339500
-
Craig Topper authored
[X86] Remove the AL/AX/EAX/RAX short immediate forms from the macro fusion shouldScheduleAdjacent. NFC These instructions are only created by the backend during MCInst lowering. llvm-svn: 339499
-
Craig Topper authored
Unlike the other arithmetic instructions the mem-reg form of compare is just a load and not a RMW operation. According to the Intel optimization manual, this form is also supported by macro fusion. llvm-svn: 339498
-
Craig Topper authored
The are RMW of memory operations. They aren't eligible for macro fusion. llvm-svn: 339497
-
Craig Topper authored
[X86] Change the MOV32ri64 pseudo instruction to def a GR64 directly instead of wrapping it in a SUBREG_TO_REG. Now we switch to the subregister in expandPostRAPseudos where we already switched the opcode. This simplifies a few isel patterns that used the pseudo directly. And magically seems to have improved our ability to CSE it in the undef-label.ll test. llvm-svn: 339496
-
Richard Trieu authored
Treat the stack variants of control instructions the same as regular instructions. Otherwise, the vector ControlFlowStack will be the wrong size and have out-of-bounds access. This was detected by MemorySanitizer. llvm-svn: 339495
-
Douglas Yung authored
Make the section boundary checks on Windows not depend on the order as they are emitted in reverse when the compiler is built by Visual C++. llvm-svn: 339494
-
George Karpenkov authored
Does not go to msgNote's. Differential Revision: https://reviews.llvm.org/D50595 llvm-svn: 339493
-
Tom Stellard authored
Reviewers: tejohnson Reviewed By: tejohnson Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D50583 llvm-svn: 339492
-
Tom Stellard authored
Reviewers: arsenm Reviewed By: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D49625 llvm-svn: 339491
-
Richard Trieu authored
Add flags to llc RUN lines to keep tests passing. llvm-svn: 339490
-
Reka Kovacs authored
Differential Revision: https://reviews.llvm.org/D49570 llvm-svn: 339489
-
George Karpenkov authored
[analyzer] [NFC] [tests] Move plist-based diagnostics tests to separate files, use diff instead of a FileCheck - II Some files were missed by https://reviews.llvm.org/D50545 Differential Revision: https://reviews.llvm.org/D50590 llvm-svn: 339488
-
Sid Manning authored
The registers are tied. llvm-svn: 339487
-