summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Restore correct x86_64 EH encodings in kernel code modelLei Liu2018-08-132-9/+93
| | | | | | | | | | | | | Fixes PR37524. The exception handling encodings for x86_64 in kernel code model has been changed with r309884. Restore it to correct ones. These encodings include PersonalityEncoding, LSDAEncoding and TTypeEncoding. Differential Revision: https://reviews.llvm.org/D50490 llvm-svn: 339534
* [SelectionDAG] In PromoteFloatRes_BITCAST, insert a bitcast before the ↵Craig Topper2018-08-132-2/+15
| | | | | | | | | | fp16_to_fp in case the input type isn't an i16. The bitcast can be further legalized as needed. Fixes PR38533. llvm-svn: 339533
* [InstCombine] Fix typo in comment. NFCCraig Topper2018-08-131-1/+1
| | | | llvm-svn: 339532
* [InstCombine] Replace call to haveNoCommonBitsSet in visitXor with just the ↵Craig Topper2018-08-131-2/+8
| | | | | | | | | | | | | | | | special case that doesn't use computeKnownBits. Summary: computeKnownBits is expensive. The cases that would be detected by the computeKnownBits portion of haveNoCommonBitsSet were already handled by the earlier call to SimplifyDemandedInstructionBits. Reviewers: spatel, lebedev.ri Reviewed By: lebedev.ri Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D50604 llvm-svn: 339531
* [ASTMatchers] Let hasAnyArgument also support CXXUnresolvedConstructExprShuai Wang2018-08-124-5/+49
| | | | | | | | Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D50605 llvm-svn: 339530
* [X86] Add constant folding for AVX512 versions of scalar floating point to ↵Craig Topper2018-08-122-5/+566
| | | | | | | | | | | | | | | | | | | integer conversion intrinsics. Summary: We've supported constant folding for sse versions for many years. This patch adds support for the avx512 versions including unsigned with the default rounding mode. We could probably do more with other roundings modes and SAE in the future. The test cases are largely based on the sse.ll test cases. But I did add some test cases to ensure the unsigned versions don't accept negative values. Also checked the bounds of f64->i32 conversions to make sure unsigned has a larger positive range than signed. Reviewers: RKSimon, spatel, chandlerc Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D50553 llvm-svn: 339529
* [globalisel] Remove dead code from GlobalISelEmitterDaniel Sanders2018-08-121-17/+0
| | | | | | | | | | | | | | | | Summary: Found by GCC's -Wunused-function. Patch by Kim Gräsman Reviewers: ab, dsanders, llvm-commits Reviewed By: dsanders Subscribers: rovka, kristof.beyls Differential Revision: https://reviews.llvm.org/D50611 llvm-svn: 339528
* Renaming arg_const_range to const_arg_range; NFC.Aaron Ballman2018-08-123-9/+9
| | | | | | This form makes more sense (it is a range over constant arguments) and is most consistent with const_arg_iterator (there are zero instances of arg_const_iterator). llvm-svn: 339527
* AMDGPU: Cleanup min/max legacy testsMatt Arsenault2018-08-124-124/+664
| | | | | | | Also add some more tests in preparation for a future patch. llvm-svn: 339526
* DAG: Check no-signed-zeros instead of unsafe-fp-mathMatt Arsenault2018-08-125-13/+7
| | | | | | | Addresses fixme, although this should still be checking individual operand flags. llvm-svn: 339525
* [NFC] Fixed build, updated testsDavid Bolvansky2018-08-121-2/+1
| | | | llvm-svn: 339524
* [NFC] Renamed test fileDavid Bolvansky2018-08-121-0/+0
| | | | llvm-svn: 339523
* [ASTMatchers] Add matchers unresolvedMemberExpr, cxxDependentScopeMemberExprShuai Wang2018-08-126-7/+74
| | | | | | | | Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D50606 llvm-svn: 339522
* [Support][JSON][NFC] Silence GCC warning about broken strict aliasing rulesDavid Bolvansky2018-08-121-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [InstCombine] Fold Select with binary op - non-commutative opcodesDavid Bolvansky2018-08-122-20/+12
| | | | | | | | | | | | | | | | | | | 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
* [InstCombine] fix/enhance fadd/fsub factorizationSanjay Patel2018-08-122-164/+98
| | | | | | | | | | | | | (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
* [InstCombine] move/add tests for fadd/fsub factorization; NFCSanjay Patel2018-08-122-373/+497
| | | | llvm-svn: 339518
* Adding the readability module to the list of dependencies for the C++ Core ↵Aaron Ballman2018-08-121-0/+1
| | | | | | Guidelines module. Amends r339516 for a failing bot. llvm-svn: 339517
* Add a new check to the readability module that flags uses of "magic numbers" ↵Aaron Ballman2018-08-1210-0/+605
| | | | | | | | (both floating-point and integral). Patch by Florin Iucha <florin@signbit.net> llvm-svn: 339516
* [InstSimplify] Guard against large shift amounts.Benjamin Kramer2018-08-121-3/+3
| | | | | | | 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
* [LLD][ELF] - Add one more test case for CallGraphSort.George Rimar2018-08-121-0/+38
| | | | | | | This adds a coverage for the following early continue: https://github.com/llvm-mirror/lld/blob/master/ELF/CallGraphSort.cpp#L200 llvm-svn: 339514
* AMDGPU: Check NSZ MI flag when folding omodMatt Arsenault2018-08-122-4/+77
| | | | | | | | 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
* AMDGPU: Use splat vectors for undefs when folding canonicalizeMatt Arsenault2018-08-123-13/+111
| | | | | | | | | | | 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
* AMDGPU: Fix packing undef parts of build_vectorMatt Arsenault2018-08-125-10/+420
| | | | llvm-svn: 339511
* [LLF][ELF] - Simplify. NFC.George Rimar2018-08-121-3/+3
| | | | llvm-svn: 339510
* [TargetLowering] Simplify one of the special cases in SimplifyDemandedBits ↵Craig Topper2018-08-121-21/+21
| | | | | | | | for XOR. NFCI 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
* [TargetLowering] Use APInt::isSubsetOf to simplify some code. NFCCraig Topper2018-08-121-1/+1
| | | | llvm-svn: 339508
* [X86] Remove unnecessary AddedComplexity line. NFCCraig Topper2018-08-121-1/+1
| | | | | | The use of the or_is_add predicate already gives enough of a complexity boost to get the patterns ordered properly. llvm-svn: 339507
* [ASTImporter] Added test case for opaque enumsRaphael Isemann2018-08-112-1/+7
| | | | | | | | | | | | 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
* [ASTImporter] Added test case for CXXConversionDecl importingRaphael Isemann2018-08-112-0/+15
| | | | | | | | | | | | 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
* Use a DenseMap for looking up functions by UID in CompileUnit::FindFunctionByUIDRaphael Isemann2018-08-113-49/+46
| | | | | | | | | | | | | | | | | | 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
* Add missing _LIBCXXABI_FUNC_VIS to __gxx_personality_seh0Martin Storsjo2018-08-111-1/+1
| | | | | | This was missed in SVN r337754. llvm-svn: 339503
* [Dominators] Remove the DeferredDominance classChijun Sima2018-08-114-623/+0
| | | | | | | | | | | | | | 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
* [UnJ] Improve explicit loop count checksDavid Green2018-08-112-52/+211
| | | | | | | | | | | | | 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
* [UnJ] Create a hasInvariantIterationCount function. NFCDavid Green2018-08-113-14/+27
| | | | | | | | | | 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
* [X86] Remove the AL/AX/EAX/RAX short immediate forms from the macro fusion ↵Craig Topper2018-08-111-18/+0
| | | | | | | | shouldScheduleAdjacent. NFC These instructions are only created by the backend during MCInst lowering. llvm-svn: 339499
* [X86] Add the mem-reg form of CMP to the macro fusion shouldScheduleAdjacent.Craig Topper2018-08-111-0/+4
| | | | | | 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
* [X86] Remove ADD8mi and ADDmr from the macro fusion shouldScheduleAdjacent.Craig Topper2018-08-111-2/+0
| | | | | | The are RMW of memory operations. They aren't eligible for macro fusion. llvm-svn: 339497
* [X86] Change the MOV32ri64 pseudo instruction to def a GR64 directly instead ↵Craig Topper2018-08-1112-48/+42
| | | | | | | | | | 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
* Fix WebAssembly instruction printer after r339474Richard Trieu2018-08-111-1/+5
| | | | | | | | 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
* Make the section boundary checks on Windows not depend on the order as they ↵Douglas Yung2018-08-111-16/+16
| | | | | | are emitted in reverse when the compiler is built by Visual C++. llvm-svn: 339494
* [analyzer] Fix keyboard navigation for .msgNote eventsGeorge Karpenkov2018-08-111-1/+2
| | | | | | | | Does not go to msgNote's. Differential Revision: https://reviews.llvm.org/D50595 llvm-svn: 339493
* [gold] Fix Tests cases on i686Tom Stellard2018-08-113-9/+9
| | | | | | | | | | | | Reviewers: tejohnson Reviewed By: tejohnson Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D50583 llvm-svn: 339492
* AMDGPU/GlobalISel: Define instruction mapping for G_INSERTTom Stellard2018-08-112-0/+97
| | | | | | | | | | | | 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
* Fix WebAssembly tests after r339474Richard Trieu2018-08-102-4/+4
| | | | | | Add flags to llc RUN lines to keep tests passing. llvm-svn: 339490
* [analyzer] InnerPointerChecker: improve warning messages and notes.Reka Kovacs2018-08-104-135/+202
| | | | | | Differential Revision: https://reviews.llvm.org/D49570 llvm-svn: 339489
* [analyzer] [NFC] [tests] Move plist-based diagnostics tests to separate ↵George Karpenkov2018-08-109-4313/+4330
| | | | | | | | | | 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
* [ELF][HEXAGON] Put test back in.Sid Manning2018-08-101-3/+2
| | | | | | The registers are tied. llvm-svn: 339487
* [ELF][HEXAGON] Remove test that breaks assembler.Sid Manning2018-08-101-2/+3
| | | | | | | Remove testcase the breaks the assembler parser. Will fix llvm-mc and put this back afterward. llvm-svn: 339486
* Re-commit "[NFC] More ConstantMerge refactoring"JF Bastien2018-08-101-18/+23
| | | | | | | My previous change moved some code upwards which caused an assert in debug mode because the global value didn't necessarily have an initializer. Don't do that. llvm-svn: 339485
OpenPOWER on IntegriCloud