summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Improve 64-bit shifts on 32-bit targets (PR14593)Simon Pilgrim2016-07-314-127/+72
| | | | | | | | As discussed on PR14593, this patch adds support for lowering to SHLD/SHRD from the patterns generated by DAGTypeLegalizer::ExpandShiftWithKnownAmountBit. Differential Revision: https://reviews.llvm.org/D23000 llvm-svn: 277299
* [COFF] Expose iterators for ImportAddressTableRVADavid Majnemer2016-07-312-2/+21
| | | | | | Patch by Bandzi Michal! llvm-svn: 277298
* [COFF] Remove a duplicate import_directory_table_entry definitionDavid Majnemer2016-07-313-18/+14
| | | | | | | | We had import_directory_table_entry and coff_import_directory_table_entry, remove one. Also, factor out the logic which determins if a descriptor is a terminator. llvm-svn: 277296
* [bugpoint] Add a -Os optionDavid Majnemer2016-07-311-2/+6
| | | | llvm-svn: 277295
* [X86] Add tests for the lowering SHLD/SHRD from manual pattern similar to ↵Simon Pilgrim2016-07-312-0/+136
| | | | | | | | those generated by ExpandShiftWithKnownAmountBit Test for add(v,v) as well as shl(v,1) llvm-svn: 277293
* [AVX-512] Don't let ExeDependencyFix pass convert VPANDD/Q to VPANDPS/PD ↵Craig Topper2016-07-317-35/+77
| | | | | | | | unless DQI instructions are supported. Same for ANDN, OR, and XOR. Thanks to Igor Breger for pointing out my mistake. llvm-svn: 277292
* [X86] Add tests for the lowering SHLD/SHRD from manual patternsSimon Pilgrim2016-07-312-0/+132
| | | | | | As discussed on D23000 llvm-svn: 277291
* Fixed "copy-paste" mistake from revision 255245.Amjad Aboud2016-07-311-1/+1
| | | | llvm-svn: 277290
* AVX-512: Removed AssertZext node before TRUNCATEElena Demikhovsky2016-07-312-42/+38
| | | | | | | | Removed AssertZext node, which was inserted between X86ISD::SETCC and "truncate to i1". Differential Revision: https://reviews.llvm.org/D22850 llvm-svn: 277289
* [ADT] Add 'consume_front' and 'consume_back' methods to StringRef whichChandler Carruth2016-07-312-0/+56
| | | | | | | | | | | are very handy when parsing text. They are essentially a combination of startswith and a self-modifying drop_front, or endswith and drop_back respectively. Differential Revision: https://reviews.llvm.org/D22723 llvm-svn: 277288
* [HexagonConstPropagation] Remove dead code.Davide Italiano2016-07-301-22/+0
| | | | llvm-svn: 277285
* [HexagonBitSimplify] Remove dead code.Davide Italiano2016-07-301-18/+0
| | | | llvm-svn: 277284
* [ARMConstantIslandPass] Remove dead code.Davide Italiano2016-07-301-20/+0
| | | | llvm-svn: 277283
* [Support] Add doxygen @code tags to example code in Error comments.Lang Hames2016-07-301-5/+11
| | | | llvm-svn: 277282
* [SLPVectorizer][X86] Added vXi8/vXi16 sitofp/uitofp testsSimon Pilgrim2016-07-302-38/+484
| | | | | | Dropped useless 2i32-2f32 test llvm-svn: 277281
* Strip trailing whitespaceSimon Pilgrim2016-07-301-6/+5
| | | | llvm-svn: 277280
* [X86] Use peekThroughOneUseBitcasts helper functionSimon Pilgrim2016-07-301-5/+2
| | | | llvm-svn: 277279
* [X86][SSE] Regenerate vshift testsSimon Pilgrim2016-07-306-92/+511
| | | | llvm-svn: 277278
* [SLPVectorizer][X86] Added SITOFP/UITOFP vectorization testsSimon Pilgrim2016-07-302-0/+528
| | | | llvm-svn: 277275
* [X86][AVX] Added signum example test functions from PR13248Simon Pilgrim2016-07-301-0/+379
| | | | | | | These are good examples of missed combine opportunities with zero/all bit vector compare results llvm-svn: 277274
* [X86][X87] Add vector arithmetic tests for targets with sse disabledSimon Pilgrim2016-07-301-0/+351
| | | | | | To make sure the X86_64 target isn't doing anything stupid llvm-svn: 277272
* [X86][SSE] Let 64-bit targets use the fast 2i32-2f32 UINT_TO_FP conversion ↵Simon Pilgrim2016-07-302-13/+11
| | | | | | | | as well as 32-bit The 2i32-2i64 legalization means that we can use the slightly quicker double bits + fptrunc approach for the same results llvm-svn: 277271
* TrailingObjects::FixedSizeStorage constexpr fixes + testsHubert Tong2016-07-304-13/+127
| | | | | | | | | | | | | | | | | | | | | | | Summary: This change fixes issues with `LLVM_CONSTEXPR` functions and `TrailingObjects::FixedSizeStorage`. In particular, some of the functions marked `LLVM_CONSTEXPR` used by `FixedSizeStorage` were not implemented such that they evaluate successfully as part of a constant expression despite constant arguments. This change also implements a more traditional template-meta path to accommodate MSVC, and adds unit tests for `FixedSizeStorage`. Drive-by fix: the access control for members of `TrailingObjectsImpl` is tightened. Reviewers: faisalv, rsmith, aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D22668 llvm-svn: 277270
* MathExtras.h: add LLVM_CONSTEXPR where simpleHubert Tong2016-07-301-23/+27
| | | | | | | | | | | | | | | | | | | | Summary: This change adds `LLVM_CONSTEXPR` to functions selected as follows: - the body is already valid under C++11 for a `constexpr` function, - the evaluation of the function, given constant arguments, will not fail during the evaluation of a constant expression, and - the above properties are easily verifiable at a glance. Note: the evaluation of the function cannot fail if the instantiation triggers a static assertion failure. Reviewers: faisalv, rsmith, aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D22824 llvm-svn: 277269
* [Hexagon] Perform bit arithmetic on unsigned to avoid accidentally shifting ↵Benjamin Kramer2016-07-301-2/+2
| | | | | | | | negative values. Found by ubsan. llvm-svn: 277268
* Update modulemap for Msf -> MSF rename.Benjamin Kramer2016-07-301-3/+3
| | | | llvm-svn: 277267
* [X86] Fix lifetime of SMRange temporaries.Benjamin Kramer2016-07-301-4/+4
| | | | | | Found by asan -fsanitize-address-use-after-scope. llvm-svn: 277266
* [AMDGPU] Fix lifetime of SmallVector temporaries.Benjamin Kramer2016-07-301-6/+4
| | | | | | Found by asan -fsanitize-address-use-after-scope. llvm-svn: 277265
* AMDGPU: Fix shouldConvertConstantLoadToIntImm behaviorMatt Arsenault2016-07-302-3/+48
| | | | | | | This should really be true for any immediate, not just inline ones. llvm-svn: 277260
* AMDGPU: Set s_setpc_b64 as a terminatorMatt Arsenault2016-07-301-0/+3
| | | | llvm-svn: 277259
* AMDGPU: Remove unused patternMatt Arsenault2016-07-301-8/+7
| | | | llvm-svn: 277258
* [Orc] Add support for updating stub targets to CompileOnDemandLayer.Lang Hames2016-07-302-0/+36
| | | | | | | | | | | | | This makes it possible to implement re-optimization on top of the CompileOnDemandLayer. Test case to come in a future patch: This will need an execution test, and execution tests require a full working stack. The best option is to plumb this API up to the C Bindings stack and add a C bindings test for this. Patch by Sean Ogden. Thanks Sean! llvm-svn: 277257
* DAG: avoid duplicated truncating for sign extended operandWeiming Zhao2016-07-296-16/+125
| | | | | | | | | | | | | | | Summary: When performing cmp for EQ/NE and the operand is sign extended, we can avoid the truncaton if the bits to be tested are no less than origianl bits. Reviewers: eli.friedman Subscribers: eli.friedman, aemerson, nemanjai, t.p.northover, llvm-commits Differential Revision: https://reviews.llvm.org/D22933 llvm-svn: 277252
* [Support] Add storage specifier for MachO::NListType.Lang Hames2016-07-291-1/+1
| | | | | | | | This should fix UB warnings from the sanitizer bots: LLD performs bit manipulations on enums of this type, and these are UB if the underlying storage type isn't specified. llvm-svn: 277251
* GlobalISel: translate "unreachable" (into nothing)Tim Northover2016-07-292-0/+13
| | | | | | Easiest instruction ever! llvm-svn: 277225
* GlobalISel: support translation of intrinsic calls.Tim Northover2016-07-299-2/+109
| | | | | | | | These come in two variants for now: G_INTRINSIC and G_INTRINSIC_W_SIDE_EFFECTS. We may decide to split the latter up with finer-grained restrictions later, if necessary. llvm-svn: 277224
* Think this will fix issues with the error messages generated for ↵Kevin Enderby2016-07-292-15/+73
| | | | | | | | | | | | | | | malformed-archives.test in r277177 and added back this test which was deleted in r277196 while I tracked down these problems. Changed from constructing Twine's to std::string's as Twine's don't work across statements. Also removed a few unneeded Twine() constructions. Fix the write_escaped() calls to not pass the unintended second argument fixing the warning on the ld-x86_64-win7 bot. llvm-svn: 277223
* [Hexagon] Referencify MachineInstr in HexagonInstrInfo, NFCKrzysztof Parzyszek2016-07-2915-808/+787
| | | | llvm-svn: 277220
* [X86] Match PSADBW in straight-line codeMichael Kuperstein2016-07-292-3/+443
| | | | | | | | | | | | | Up until now, we only had code to match PSADBW patterns that look like what comes out of the loop vectorizer - a partial reduction inside the loop body that gets fed into a horizontal operation in a different basic block. This adds support for straight-line patterns, like those generated by the SLP vectorizer. Differential Revision: https://reviews.llvm.org/D22889 llvm-svn: 277219
* [Hexagon] Fix test that uses -debug-only to require asserts.Michael Kuperstein2016-07-291-0/+1
| | | | llvm-svn: 277218
* pdbdump: Dump Free Page Map contents.Rui Ueyama2016-07-297-1/+40
| | | | | | Differential Revision: https://reviews.llvm.org/D22974 llvm-svn: 277216
* [X86][AVX] Fix VBROADCASTF128 selection bug (PR28770)Simon Pilgrim2016-07-293-7/+307
| | | | | | Support for lowering to VBROADCASTF128 etc. in D22460 was not correctly ensuring that the only users of the 128-bit vector load were the insertions of the vector into the lower/upper subvectors. llvm-svn: 277214
* [msf] Resubmit "Rename Msf -> MSF".Zachary Turner2016-07-2972-319/+319
| | | | | | | | | | | | | Previously this change was submitted from a Windows machine, so changes made to the case of filenames and directory names did not survive the commit, and as a result the CMake source file names and the on-disk file names did not match on case-sensitive file systems. I'm resubmitting this patch from a Linux system, which hopefully allows the case changes to make it through unfettered. llvm-svn: 277213
* CodeGen: add new "intrinsic" MachineOperand kind.Tim Northover2016-07-2913-13/+148
| | | | | | | This will be used during GlobalISel, where we need a more robust and readable way to write tests than a simple immediate ID. llvm-svn: 277209
* Add a REQUIRES: assert on a Lanai test that uses a -debug-only flagEli Bendersky2016-07-291-1/+2
| | | | llvm-svn: 277204
* [LoopUnroll] Include hotness of region in opt remarkAdam Nemet2016-07-296-36/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LoopUnroll is a loop pass, so the analysis of OptimizationRemarkEmitter is added to the common function analysis passes that loop passes depend on. The BFI and indirectly BPI used in this pass is computed lazily so no overhead should be observed unless -pass-remarks-with-hotness is used. This is how the patch affects the O3 pipeline: Dominator Tree Construction Natural Loop Information Canonicalize natural loops Loop-Closed SSA Form Pass Basic Alias Analysis (stateless AA impl) Function Alias Analysis Results Scalar Evolution Analysis + Lazy Branch Probability Analysis + Lazy Block Frequency Analysis + Optimization Remark Emitter Loop Pass Manager Rotate Loops Loop Invariant Code Motion Unswitch loops Simplify the CFG Dominator Tree Construction Basic Alias Analysis (stateless AA impl) Function Alias Analysis Results Combine redundant instructions Natural Loop Information Canonicalize natural loops Loop-Closed SSA Form Pass Scalar Evolution Analysis + Lazy Branch Probability Analysis + Lazy Block Frequency Analysis + Optimization Remark Emitter Loop Pass Manager Induction Variable Simplification Recognize loop idioms Delete dead loops Unroll loops ... llvm-svn: 277203
* [GlobalISel] Add missing link components to r277160 unittest. NFC.Ahmed Bougacha2016-07-291-0/+2
| | | | | | | It broke a shared builder: http://lab.llvm.org:8011/builders/llvm-mips-linux/builds/17320 llvm-svn: 277201
* Fixed line endingsSimon Pilgrim2016-07-291-94/+94
| | | | llvm-svn: 277199
* Fixed (incorrectly firing) MSVC unused variable warningSimon Pilgrim2016-07-291-2/+1
| | | | llvm-svn: 277198
* [ConstantFolding] Handle bitcasts of undef fp vector elementsDavid Majnemer2016-07-292-1/+8
| | | | | | | | | We used the wrong type for constructing a zero vector element which led to type mismatches. This fixes PR28771. llvm-svn: 277197
OpenPOWER on IntegriCloud