summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [SLP] Remove unused initial value from the variable, NFC.Alexey Bataev2017-02-221-1/+1
| | | | llvm-svn: 295826
* [X86][GlobalISel] Initial implementation , select G_ADD gpr, gprIgor Breger2017-02-2210-6/+407
| | | | | | | | | | | | | | Summary: Initial implementation for X86InstructionSelector. Handle selection COPY and G_ADD/G_SUB gpr, gpr . Reviewers: qcolombet, rovka, zvi, ab Reviewed By: rovka Subscribers: mgorny, dberris, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D29816 llvm-svn: 295824
* Switch "lldb" log channel to the new registration mechanismPavel Labath2017-02-225-301/+45
| | | | llvm-svn: 295823
* Replace WINLOG_*** macros with LLDB_LOGPavel Labath2017-02-226-374/+244
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The main difference here is that in the WINLOG macros you can specify log categories per call, whereas here you have to go the usual lldb route of getting a Log* variable first. While this means you have to write at least two statements, it usually means that each statement will fit on a single line, whereas fitting the WINLOG invocation on a single line was almost impossible. So the total size of code does not increase even in functions with a single log statement, and functions with more logging get shorter. The downside here is reduced flexibility in specifying the log categories, which a couple of functions used quite heavily (e.g. RefreshStateAfterStop). For these I chose a single category used most prominently and put everything into that, although a solution with multiple log variables is definitely possible. Reviewers: zturner, amccarth Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D30172 llvm-svn: 295822
* Add format_provider for the MemoryRegionInfo::OptionalBool enumPavel Labath2017-02-223-0/+42
| | | | llvm-svn: 295821
* [ODRHash] Avoid dereferencing end() of a SmallVector.Benjamin Kramer2017-02-221-1/+2
| | | | | | Found by MSAN. llvm-svn: 295820
* [X86] Regenerate CSE test with codegen instead of just the instruction countSimon Pilgrim2017-02-221-2/+37
| | | | llvm-svn: 295819
* Completion related fixes for clang-include-fixer.el.Manuel Klimek2017-02-221-21/+24
| | | | | | | | | | | | | | | | 1. Quitting inside a process sentinel is not allowed, but the sentinel invokes completion, where the user is free to hit C-g. By wrapping the call in with-local-quit, the process sentinel invocation can finish without triggering an error 2. Invoke completing-read instead of ido-completing-read, since this may interfere with user customizations to completing-read-function. The user should use something like ido-ubiquitous if ido completion is wanted 3. Compare the string returned from completion with string=, since it may be a copy of the original string in the collection Patch by Torsten Marek. llvm-svn: 295818
* [ELF] - Addressed post commit review comments for D30187George Rimar2017-02-221-3/+3
| | | | | | | * Added comment. * Pass std::string copy instead using move semantic. llvm-svn: 295817
* [ARM] Fix constant islands pass.Roger Ferrer Ibanez2017-02-222-0/+1059
| | | | | | | | | | | | The pass tries to fix a spill of LR that turns out to be unnecessary. So it removes the tPOP but forgets to remove tPUSH. This causes the stack be misaligned upon returning the function. Thus, remove the tPUSH as well in this case. Differential Revision: https://reviews.llvm.org/D30207 llvm-svn: 295816
* Write to a temporary file in test instead of random file in the test directory.Benjamin Kramer2017-02-221-6/+6
| | | | llvm-svn: 295815
* Adds a hook clang-include-fixer-add-include-hook that is invoked with the ↵Manuel Klimek2017-02-221-3/+20
| | | | | | | | | | path and type of the added include. This patch also adds a new function clang-include-fixer-from-symbol, which prompts the user for a symbol to resolve and include. Patch by Torsten Marek. llvm-svn: 295814
* [X86] Fix memory operands definition for some instructions.Ayman Musa2017-02-221-10/+14
| | | | | | | | Change integer memory operands to FP memory operands to some FP instructions. Differential Revision: https://reviews.llvm.org/D30201 llvm-svn: 295813
* OptDiag: Add const to some interfaces that don't modify anything. NFCJustin Bogner2017-02-224-11/+11
| | | | | | | | This needed a const_cast for the dominator tree recalculation in OptimizationRemarkEmitter, but we do that all over the place already and it's safe. llvm-svn: 295812
* [ARM] Classification Improvements to ARM Sched-Models. NFCI.Javed Absar2017-02-226-69/+286
| | | | | | | | | | | | | | This patch adds missing sched classes for Thumb2 instructions. This has been missing so far, and as a consequence, machine scheduler models for individual sub-targets have tended to be larger than they needed to be. These patches should help write schedulers better and faster in the future for ARM sub-targets. Reviewer: Diana Picus Differential Revision: https://reviews.llvm.org/D29953 llvm-svn: 295811
* [AVX-512] Allow legacy scalar min/max intrinsics to select EVEX instructions ↵Craig Topper2017-02-229-61/+121
| | | | | | | | | | | | when available This patch introduces new X86ISD::FMAXS and X86ISD::FMINS opcodes. The legacy intrinsics now lower to this node. As do the AVX-512 masked intrinsics when the rounding mode is CUR_DIRECTION. I've merged a copy of the tablegen multiclass avx512_fp_scalar into avx512_fp_scalar_sae. avx512_fp_scalar still needs to support CUR_DIRECTION appearing as a rounding mode for X86ISD::FADD_ROUND and others. Differential revision: https://reviews.llvm.org/D30186 llvm-svn: 295810
* [ValueTracking] Make poison propagation more aggressiveSanjoy Das2017-02-224-66/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Motivation: fix PR31181 without regression (the actual fix is still in progress). However, the actual content of PR31181 is not relevant here. This change makes poison propagation more aggressive in the following cases: 1. poision * Val == poison, for any Val. In particular, this changes existing intentional and documented behavior in these two cases: a. Val is 0 b. Val is 2^k * N 2. poison << Val == poison, for any Val 3. getelementptr is poison if any input is poison I think all of these are justified (and are axiomatically true in the new poison / undef model): 1a: we need poison * 0 to be poison to allow transforms like these: A * (B + C) ==> A * B + A * C If poison * 0 were 0 then the above transform could not be allowed since e.g. we could have A = poison, B = 1, C = -1, making the LHS poison * (1 + -1) = poison * 0 = 0 and the RHS poison * 1 + poison * -1 = poison + poison = poison 1b: we need e.g. poison * 4 to be poison since we want to allow A * 4 ==> A + A + A + A If poison * 4 were a value with all of their bits poison except the last four; then we'd not be able to do this transform since then if A were poison the LHS would only be "partially" poison while the RHS would be "full" poison. 2: Same reasoning as (1b), we'd like have the following kinds transforms be legal: A << 1 ==> A + A Reviewers: majnemer, efriedma Subscribers: mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D30185 llvm-svn: 295809
* [OpenMP] Generate better diagnostics for cancel and cancellation pointJonas Hahnfeld2017-02-223-14/+36
| | | | | | | | | | | | | | | checkNestingOfRegions uses CancelRegion to determine whether cancel and cancellation point are valid in the given nesting. This leads to unuseful diagnostics if CancelRegion is invalid. The given test case has produced: region cannot be closely nested inside 'parallel' region As a solution, introduce checkCancelRegion and call it first to get the expected error: one of 'for', 'parallel', 'sections' or 'taskgroup' is expected Differential Revision: https://reviews.llvm.org/D30135 llvm-svn: 295808
* Use const-ref in range-loop for to avoid copying pairs of std::stringSean Silva2017-02-222-2/+2
| | | | | | | | | | No reason to create temporaries. Differential Revision: https://reviews.llvm.org/D29871 Patch by sergio.martins! llvm-svn: 295807
* Call the correct @llvm.objectsize.George Burgess IV2017-02-222-6/+33
| | | | | | | | | | | | | | | | | | The following code would crash clang: void foo(unsigned *const __attribute__((pass_object_size(0)))); void bar(unsigned *i) { foo(i); } This is because we were always selecting the version of `@llvm.objectsize` that takes an i8* in CodeGen. Passing an i32* as an i8* makes LLVM very unhappy. (Yes, I'm surprised that this remained uncaught for so long, too. :) ) As an added bonus, we'll now also use the appropriate address space when emitting @llvm.objectsize calls. llvm-svn: 295805
* Mark TestDarwinLogBasic.py as an xfail because the logging isJason Molenda2017-02-221-0/+1
| | | | | | | not being picked up; filed <rdar://problem/30645203> to track the work to investigate this. llvm-svn: 295804
* [WebAssembly] Add skeleton MC support for the Wasm container formatDan Gohman2017-02-2235-22/+1307
| | | | | | | | | This just adds the basic skeleton for supporting a new object file format. All of the actual encoding will be implemented in followup patches. Differential Revision: https://reviews.llvm.org/D26722 llvm-svn: 295803
* Re-commit of r295318, which was reverted due to AArch64 flakiness. Moving ↵Kuba Mracek2017-02-223-0/+75
| | | | | | the test to Darwin only. llvm-svn: 295801
* Add more ODR checking.Richard Trieu2017-02-227-13/+800
| | | | | | | | | | Add the basics for the ODRHash class, which will only process Decl's from a whitelist, which currently only has AccessSpecDecl. Different access specifiers in merged classes can now be detected. Differential Revision: https://reviews.llvm.org/D21675 llvm-svn: 295800
* Fix -Wcovered-switch-default.Rui Ueyama2017-02-221-3/+1
| | | | llvm-svn: 295799
* Attempt to placate MSVC buildbot.Rui Ueyama2017-02-221-1/+1
| | | | | | | | | I really do not understand what is going on on some Windows buildbots, but FileCheck command on some buildbot behaves like long lines were truncated. I'll try to find a cause of the issue, but let me relax the test so that they'll succeed on all buildbots. llvm-svn: 295798
* AMDGPU: Add cvt.pkrtz intrinsicMatt Arsenault2017-02-2218-51/+351
| | | | | | Convert llvm.SI.packf16 test uses llvm-svn: 295797
* [LoopUnroll] Enable PGO-based loop peeling by default.Michael Kuperstein2017-02-222-3/+3
| | | | | | | | | This enables peeling of loops with low dynamic iteration count by default, when profile information is available. Differential Revision: https://reviews.llvm.org/D27734 llvm-svn: 295796
* [XRay] Change the ppc trampoline asm file into a different name, to not ↵Tim Shen2017-02-222-1/+1
| | | | | | collide with the cc file. NFC. llvm-svn: 295795
* Fix assertion failure when generating debug information for a variableRichard Smith2017-02-222-2/+20
| | | | | | | | | | declaration declared using class template argument deduction. Patch by Eric Fiselier (who is busy and asked me to commit this on his behalf)! Differential Revision: https://reviews.llvm.org/D30082 llvm-svn: 295794
* Attempt to fix buildbot.Rui Ueyama2017-02-221-2/+0
| | | | | | | | I added this log message to test the /msvclto option, but this output might confuse FileCheck. This patch attempts to fix it by removing it. llvm-svn: 295793
* AMDGPU: Remove some uses of llvm.SI.export in testsMatt Arsenault2017-02-2233-1065/+952
| | | | | | Merge some of the old, smaller tests into more complete versions. llvm-svn: 295792
* [c++1z] Mark constexpr lambdas as done on status page and start advertisingRichard Smith2017-02-213-3/+4
| | | | | | | | them via feature test macro __cpp_constexpr. Thanks to Faisal for implementing this feature! llvm-svn: 295791
* Fix deduction of type of pack-expanded non-type template parameter.Richard Smith2017-02-213-57/+112
| | | | | | | | | We need to look through the PackExpansionType in the parameter type when deducing, and we need to consider the possibility of deducing arguments for packs that are not lexically mentioned in the pattern (but are nonetheless deducible) when figuring out which packs are covered by a pack deduction scope. llvm-svn: 295790
* AMDGPU: Remove llvm.AMDGPU.clamp intrinsicMatt Arsenault2017-02-2111-825/+776
| | | | llvm-svn: 295789
* AMDGPU: Redefine clamp node as clamp 0.0-1.0Matt Arsenault2017-02-2115-33/+713
| | | | | | | | | | | Change implementation to use max instead of add. min/max/med3 do not flush denormals regardless of the mode, so it is OK to use it whether or not they are enabled. Also allow using clamp with f16, and use knowledge of dx10_clamp. llvm-svn: 295788
* Do not use errs() or outs() directly. Instead use message(), log() or error()Rui Ueyama2017-02-2114-65/+73
| | | | | | | | | LLD is a multi-threaded program. errs() or outs() are not guaranteed to be thread-safe (they are actually not). LLD's message(), log() or error() are thread-safe. We should use them. llvm-svn: 295787
* Hook up OpenBSD AArch64 supportBrad Smith2017-02-213-2/+198
| | | | llvm-svn: 295786
* [NVPTX] Unify vectorization of load/stores of aggregate arguments and return ↵Artem Belevich2017-02-219-746/+1384
| | | | | | | | | | | | | | | | | | | | | | | | | | | | values. Original code only used vector loads/stores for explicit vector arguments. It could also do more loads/stores than necessary (e.g v5f32 would touch 8 f32 values). Aggregate types were loaded one element at a time, even the vectors contained within. This change attempts to generalize (and simplify) parameter space loads/stores so that vector loads/stores can be used more broadly. Functionality of the patch has been verified by compiling thrust test suite and manually checking the differences between PTX generated by llvm with and without the patch. General algorithm: * ComputePTXValueVTs() flattens input/output argument into a flat list of scalars to load/store and returns their types and offsets. * VectorizePTXValueVTs() uses that data to create vectorization plan which returns an array of flags marking boundaries of vectorized load/stores. Scalars are represented as 1-element vectors. * Code that generates loads/stores implements a simple state machine that constructs a vector according to the plan. Differential Revision: https://reviews.llvm.org/D30011 llvm-svn: 295784
* AMDGPU: Formatting fixesMatt Arsenault2017-02-211-4/+5
| | | | llvm-svn: 295783
* DAG: Check if extract_vector_elt is legal or customMatt Arsenault2017-02-211-1/+1
| | | | | | | Avoids test regressions in future AMDGPU commits when more vector types are custom lowered. llvm-svn: 295782
* Declare lgamma library builtins as never being constJacob Gravelle2017-02-212-6/+17
| | | | | | | | | | | | | | | Summary: POSIX requires lgamma writes to an external global variable, signgam. This prevents annotating lgamma with readnone, which is incorrect on targets that write to signgam. Reviewers: efriedma, rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D29778 llvm-svn: 295781
* [ELF] Insert linkerscript symbols directly into symbol tablePetr Hosek2017-02-214-15/+30
| | | | | | | | | | This change exposes the symbol table insert method and uses it to insert the linkerscript defined symbols directly into the symbol table to avoid unnecessarily pulling the object out of an archive. Differential Revision: https://reviews.llvm.org/D30224 llvm-svn: 295780
* Fix for pr31836 - pp_nonportable_path on absolute paths: broken delimitersTaewook Oh2017-02-212-1/+14
| | | | | | | | | | | | | | Summary: This is a patch for PR31836. As the bug replaces the path separators in the included file name with the characters following them, the test script makes sure that there's no "Ccase-insensitive-include-pr31836.h" in the warning message. Reviewers: rsmith, eric_niebler Reviewed By: eric_niebler Subscribers: karies, cfe-commits Differential Revision: https://reviews.llvm.org/D30000 llvm-svn: 295779
* [XRay] Merge xray clang flag tests, and add powerpc64le.Tim Shen2017-02-213-29/+6
| | | | | | | | | | | | Summary: I'm not sure why they were in different files, but it's kind of harder to maintain. I create this patch partially for initiate a discussion. Reviewers: dberris Subscribers: nemanjai, cfe-commits Differential Revision: https://reviews.llvm.org/D30118 llvm-svn: 295778
* [AArch64, X86] Add statistics for the MacroFusion passEvandro Menezes2017-02-212-0/+8
| | | | llvm-svn: 295777
* [AArch64, X86] Guard against both instrs being wild cardsEvandro Menezes2017-02-212-10/+12
| | | | | | If both instrs are wild cards, the result can be a crash. llvm-svn: 295776
* [AArch64] Add test case for fusion of literal generationEvandro Menezes2017-02-211-0/+46
| | | | | | | Add test case from https://reviews.llvm.org/D28698 that was somehow lost in transit. llvm-svn: 295775
* [AArch64] Add test case for fusion of AES crypto operationsEvandro Menezes2017-02-211-0/+207
| | | | | | | Add test case from https://reviews.llvm.org/D28491 that was somehow lost in transit. llvm-svn: 295774
* [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2017-02-2110-182/+296
| | | | | | other minor fixes (NFC). llvm-svn: 295773
OpenPOWER on IntegriCloud