summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [AVX-512] Correct memory operand size for VPGATHERQPS and VPGATHERQDCraig Topper2017-01-165-62/+69
| | | | | | | | | with ZMM index. Similar for SCATTER and the prefetch gather and scatter instructions. Fixes PR31618. llvm-svn: 292088
* [AVX-512] Fix register class in one of the gather/scatter memory operands so ↵Craig Topper2017-01-161-1/+1
| | | | | | that all 32 bit registers can be allowed. llvm-svn: 292087
* [InstCombine] add tests to show missed vector folds; NFCSanjay Patel2017-01-152-14/+43
| | | | | | Also, add comments and remove bogus comment. llvm-svn: 292082
* Empty line. NFC.Xin Tong2017-01-151-1/+0
| | | | llvm-svn: 292081
* Use getLoopLatch in place of isLoopSimplifyFormXin Tong2017-01-153-4/+85
| | | | | | | | | | | | | | Summary: Use getLoopLatch in place of isLoopSimplifyForm. we do not need to know whether the loop has a preheader nor dedicated exits. Reviewers: hfinkel, sanjoy, atrick, mkuper Subscribers: mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D28724 llvm-svn: 292078
* [CostModel][X86] Fix AVX512BW vector shift costs for vXi16 typesSimon Pilgrim2017-01-154-10/+28
| | | | | | We already have patterns in place to support 128/256-bit shifts without AVX512VL llvm-svn: 292077
* [CostModel][X86] Drop separate AVX512VL checks - they match existing AVX512 ↵Simon Pilgrim2017-01-153-51/+9
| | | | | | | | costs Keep the tests though. llvm-svn: 292076
* [CostModel][X86] Update vector shift tests to correctly check by ↵Simon Pilgrim2017-01-153-199/+232
| | | | | | | | non-constant uniform values. Use shuffle( scslar_to_vector, zeroinitializer) pattern instead of shuffle( vec, zeroinitializer) llvm-svn: 292075
* Delete a dead argument. NFCXin Tong2017-01-151-6/+5
| | | | llvm-svn: 292074
* [InstCombine] fix formatting; NFCSanjay Patel2017-01-151-24/+22
| | | | llvm-svn: 292073
* [InstCombine][SSE] Tests showing missed opportunities to pass demanded elts ↵Simon Pilgrim2017-01-151-0/+47
| | | | | | through a pshufb shuffle mask llvm-svn: 292072
* [NVPTX] Add fptosi tests to convert-fp.ll.Justin Lebar2017-01-151-48/+67
| | | | | | These seem to have been left off by accident. llvm-svn: 292071
* [NVPTX] Add codegen tests for llvm.fma.Justin Lebar2017-01-151-0/+25
| | | | llvm-svn: 292070
* [NVPTX] Modernize intrinics.ll test.Justin Lebar2017-01-151-13/+12
| | | | llvm-svn: 292069
* [NVPTX] Let there be One True Way to set NVVMReflect params.Justin Lebar2017-01-154-111/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previously there were three ways to inform the NVVMReflect pass whether you wanted to flush denormals to zero: * An LLVM command-line option * Parameters to the NVVMReflect constructor * Metadata on the module itself. This change removes the first two, leaving only the third. The motivation for this change, aside from simplifying things, is that we want LLVM to be aware of whether it's operating in FTZ mode, so other passes can use this information. Ideally we'd have a target-generic piece of metadata on the module. This change moves us in that direction. Reviewers: tra Subscribers: jholewinski, llvm-commits Differential Revision: https://reviews.llvm.org/D28700 llvm-svn: 292068
* Fix blend mask by switch the side of the operand since Blend node uses ↵Michael Zuckerman2017-01-1511-98/+100
| | | | | | opposite mask then Select NODE. llvm-svn: 292066
* Fix un-initialized error introduced by r291959.Daniel Jasper2017-01-151-0/+2
| | | | | | | | This is uncovered when running tools/dsymutil/X86/empty_range.s.test with ASAN. Haven't investigate yet, whether that means there is an ODR violation in that test. llvm-svn: 292065
* [InstCombine] use m_APInt to allow ashr folds for vectors with splat constantsSanjay Patel2017-01-158-34/+20
| | | | llvm-svn: 292064
* [InstCombine] add explanatory comments to tests; NFCSanjay Patel2017-01-151-0/+6
| | | | llvm-svn: 292063
* Reverted: Track validity of pass resultsSerge Pavlov2017-01-1512-68/+17
| | | | | | Commits r291882 and related r291887. llvm-svn: 292062
* Revert "[GlobalISel] track predecessor mapping during switch lowering."Daniel Jasper2017-01-153-110/+18
| | | | | | | | | | This reverts commit r291973. The test fails in a Release build with LLVM_BUILD_GLOBAL_ISEL enabled. AFAICT, llc segfaults. I'll add a few more details to the original commit. llvm-svn: 292061
* [PM] Clean up the testing for IVUsers, especially with the new PM.Chandler Carruth2017-01-154-1/+11
| | | | | | | | | | First, I've moved a test of IVUsers from the LSR tree to a dedicated IVUsers test directory. I've also simplified its RUN line now that the new pass manager's loop PM is providing analyses on their own. No functionality changed, but it makes subsequent changes cleaner. llvm-svn: 292060
* NewGVN: Change a bunch of densemap find_or_creates to lookups, since they ↵Daniel Berlin2017-01-151-8/+8
| | | | | | should not be creating new entries llvm-svn: 292059
* [PM] Teach the optimization remarks emitter to handle invalidationChandler Carruth2017-01-153-0/+96
| | | | | | | | | | events. This pass sometimes has a pointer to BlockFrequencyInfo so it needs custom invalidation logic. It is also otherwise immutable so we can reduce the number of invalidations that happen substantially. llvm-svn: 292058
* These two functions should be const. We often could detect it but this just ↵Daniel Berlin2017-01-151-2/+2
| | | | | | makes it always true. llvm-svn: 292057
* Update update_test_checks so that . is a valid identifier character in ↵Daniel Berlin2017-01-151-1/+1
| | | | | | addition to _ llvm-svn: 292056
* [Orc][RPC] Add an RPCFunctionNotSupported error type and return it fromLang Hames2017-01-153-2/+34
| | | | | | | | | | negotiateFunction where appropriate. Replacing the old ECError with a custom type allows us to attach the name of the function that could not be negotiated, enabling better diagnostics for negotiation failures. llvm-svn: 292055
* [PM] Introduce an analysis set used to preserve all analyses overChandler Carruth2017-01-1540-73/+182
| | | | | | | | | | | | | | | a function's CFG when that CFG is unchanged. This allows transformation passes to simply claim they preserve the CFG and analysis passes to check for the CFG being preserved to remove the fanout of all analyses being listed in all passes. I've gone through and removed or cleaned up as many of the comments reminding us to do this as I could. Differential Revision: https://reviews.llvm.org/D28627 llvm-svn: 292054
* [AVX-512] Remove unnecessary duplicate broadcast patterns. NFCCraig Topper2017-01-151-6/+0
| | | | llvm-svn: 292053
* [AVX-512] Replicate some broadcast patterns to VLX and disable the AVX2 ↵Craig Topper2017-01-152-1/+8
| | | | | | patterns when VLX is available. llvm-svn: 292051
* [X86] Remove untested MOVDDUP patterns.Craig Topper2017-01-151-17/+0
| | | | | | | | These all involve bitcasts around the memory operands. This isn't something we normally do for isel patterns. I suspect DAG combine should convert the load type making this unnecessary. llvm-svn: 292050
* Add a LLVM_USE_LINKER that defines the linker to use when building LLVMMehdi Amini2017-01-152-3/+25
| | | | | | | | | | | | | | | Summary: This string parameter is passed to -fuse-ld when linking. It can be an absolute path to your custom linker, otherwise clang will look for `ld.{name}`. Reviewers: davide, tejohnson, pcc Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D28738 llvm-svn: 292047
* Give comparator const call operatorEric Fiselier2017-01-151-1/+1
| | | | llvm-svn: 292043
* PDB: Add a class to create the /names stream contents.Rui Ueyama2017-01-157-8/+214
| | | | | | | | | | This patch adds a new class NameHashTableBuilder which creates /names streams. This patch contains a test to confirm that a stream created by NameHashTableBuilder can be read by NameHashTable reader class. Differential Revision: https://reviews.llvm.org/D28707 llvm-svn: 292040
* [PM] The assumption cache is fundamentally designed to be self-updating,Chandler Carruth2017-01-157-53/+8
| | | | | | | | | | | | | | mark it as never invalidated in the new PM. The old PM already required this to work, and after a discussion with Hal this seems to really be the only sensible answer. The cache gracefully degrades as the IR is mutated, and most things which do this should already be incrementally updating the cache. This gets rid of a bunch of logic preserving and testing the invalidation of this analysis. llvm-svn: 292039
* [PM] Fix instcombine's analysis preservation in the new pass manager toChandler Carruth2017-01-142-0/+36
| | | | | | | | | | | cover domtree and alias analysis. These are the pretty clear analyses that we would always want to survive this pass. To make these survive, we also need to preserve the assumption cache. Added a test that verifies the important bits of this preservation. llvm-svn: 292037
* [InstCombine] clean up visitAshr(); NFCISanjay Patel2017-01-141-20/+9
| | | | llvm-svn: 292036
* [InstCombine] add test to show missed vector fold; NFCSanjay Patel2017-01-141-0/+13
| | | | llvm-svn: 292035
* Adding const overloads of operator* and operator-> for DenseSet iteratorsDavid Majnemer2017-01-141-2/+4
| | | | | | | | | | This fixes some problems when building ClangDiagnostics.cpp on Visual Studio 2017 RC. As far as I understand, there was a change in the implementation of the constructor for std::vector with two iterator parameters, which in our case causes an attempt to dereference const Iterator objects. Since there was no overload for a const Iterator, the compile would fail. Patch by Hugo Puhlmann! Differential Revision: https://reviews.llvm.org/D28726 llvm-svn: 292034
* [NewGVN] Fix a warning from GCC.Davide Italiano2017-01-141-7/+6
| | | | | | | Patch by Gonsolo. Differential Revision: https://reviews.llvm.org/D28731 llvm-svn: 292031
* [NewGVN] clang-format this file after recent changes.Davide Italiano2017-01-141-6/+7
| | | | llvm-svn: 292026
* [NewGVN] Try to be consistent wit the style used in this file. NFCI.Davide Italiano2017-01-141-1/+1
| | | | llvm-svn: 292025
* [TargetLowering] Simplfiy a bit. NFCI.Davide Italiano2017-01-141-4/+1
| | | | llvm-svn: 292024
* [CostModel][X86] Updated vXi64 ASHR costs on AVX512 targets now that D28604 ↵Simon Pilgrim2017-01-142-8/+16
| | | | | | has landed llvm-svn: 292023
* [X86][XOP] Added support for VPMADCSWD 'extend+hadd' IFMA patternsSimon Pilgrim2017-01-142-2/+4
| | | | | | VPMADCSWD act as VPADDD( VPMADDWD( x, y ), z ) - multiply+extend+hadd and add to v4i32 accumulator llvm-svn: 292021
* [X86][XOP] Added support for VPMACSDQH/VPMACSDQL 'extension' IFMA patternsSimon Pilgrim2017-01-142-17/+18
| | | | | | VPMACSDQH/VPMACSDQL act as VPADDQ( VPMULDQ( x, y ), z ) - multiply+extending either the odd/even 4i32 input elements and adding to v2i64 accumulator llvm-svn: 292020
* [X86][XOP] Added support for VPMACSWW/VPMACSDD 'lossy' IFMA patternsSimon Pilgrim2017-01-142-20/+25
| | | | | | VPMACSWW/VPMACSDD act as add( mul( x, y ), z ) - ignoring any upper bits from both the multiply and add stages llvm-svn: 292019
* [X86][XOP] Add tests for integer fused multiply addSimon Pilgrim2017-01-141-0/+142
| | | | | | | | Tests showing missed opportunities to use XOP's integer fma instructions Some of these are pretty awkward to match as they often have implicit sext/trunc stages but many just ignore overflow bits which makes things pretty straightforward. llvm-svn: 292017
* fix some typos in the docSylvestre Ledru2017-01-148-10/+10
| | | | llvm-svn: 292014
* [utils] Improve extraction of check prefixes from RUN linesNikolai Bozhenov2017-01-142-6/+6
| | | | | | | | | | | | Correct handling of the following FileCheck options is implemented in update_llc_test_checks.py and update_test_checks.py scripts: 1) -check-prefix (with a single dash) 2) -check-prefixes (with multiple prefixes) Differential Revision: https://reviews.llvm.org/D28572 llvm-svn: 292008
OpenPOWER on IntegriCloud