OSDN Git Service
Justin Lebar [Wed, 18 Jan 2017 00:09:19 +0000 (00:09 +0000)]
[NVPTX] Clean up nested !strconcat calls.
!strconcat is a variadic function; it will concatenate an arbitrary
number of strings. There's no need to nest it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292305
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 18 Jan 2017 00:09:01 +0000 (00:09 +0000)]
[NVPTX] Implement min/max in tablegen, rather than with custom DAGComine logic.
Summary:
This change also lets us use max.{s,u}16. There's a vague warning in a
test about this maybe being less efficient, but I could not come up with
a case where the resulting SASS (sm_35 or sm_60) was different with or
without max.{s,u}16. It's true that nvcc seems to emit only
max.{s,u}32, but even ptxas 7.0 seems to have no problem generating
efficient SASS from max.{s,u}16 (the casts up to i32 and back down to
i16 seem to be implicit and nops, happening via register aliasing).
In the absence of evidence, better to have fewer special cases, emit
more straightforward code, etc. In particular, if a new GPU has 16-bit
min/max instructions, we want to be able to use them.
Reviewers: tra
Subscribers: jholewinski, llvm-commits
Differential Revision: https://reviews.llvm.org/D28732
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292304
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 18 Jan 2017 00:08:44 +0000 (00:08 +0000)]
[NVPTX] Lower integer absolute value idiom to abs instruction.
Summary: Previously we lowered it literally, to shifts and xors.
Reviewers: tra
Subscribers: jholewinski, llvm-commits
Differential Revision: https://reviews.llvm.org/D28722
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292303
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 18 Jan 2017 00:08:27 +0000 (00:08 +0000)]
[NVPTX] Improve lowering of llvm.ctpop.
Summary:
Avoid an unnecessary conversion operation when using the result of
ctpop.i32 or ctpop.i16 as an i32, as in both cases the ptx instruction
we run returns an i32.
(Previously if we used the value as an i32, we'd do an unnecessary
zext+trunc.)
Reviewers: tra
Subscribers: jholewinski, llvm-commits
Differential Revision: https://reviews.llvm.org/D28721
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292302
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 18 Jan 2017 00:08:10 +0000 (00:08 +0000)]
[NVPTX] Add lowering for llvm.bitreverse.
Reviewers: tra
Subscribers: llvm-commits, jholewinski
Differential Revision: https://reviews.llvm.org/D28720
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292301
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 18 Jan 2017 00:07:52 +0000 (00:07 +0000)]
[NVPTX] Fix function names in ctlz.ll test. Test-only change.
Looks like a copy/paste mistake, all the functions in ctlz.ll were named
"ctpop".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292300
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 18 Jan 2017 00:07:35 +0000 (00:07 +0000)]
[NVPTX] Improve lowering of llvm.ctlz.
Summary:
* Disable "ctlz speculation", which inserts a branch on every ctlz(x) which
has defined behavior on x == 0 to check whether x is, in fact zero.
* Add DAG patterns that avoid re-truncating or re-expanding the result
of the 16- and 64-bit ctz instructions.
Reviewers: tra
Subscribers: llvm-commits, jholewinski
Differential Revision: https://reviews.llvm.org/D28719
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292299
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 18 Jan 2017 00:07:18 +0000 (00:07 +0000)]
[IR] Grammar police: "intact" is one word. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292298
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 18 Jan 2017 00:03:23 +0000 (00:03 +0000)]
[InstCombine] add tests to show missed shrinkage; NFC
A patch to partially solve this:
https://reviews.llvm.org/D28625
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292296
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 17 Jan 2017 23:50:21 +0000 (23:50 +0000)]
[libFuzzer] add ATTRIBUTE_NO_SANITIZE_MEMORY to sanitizer hooks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292295
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Tue, 17 Jan 2017 23:39:33 +0000 (23:39 +0000)]
Introduce -unroll-partial-threshold to separate PartialThreshold from Threshold in loop unorller.
Summary: Partial unrolling should have separate threshold with full unrolling.
Reviewers: efriedma, mzolotukhin
Reviewed By: efriedma, mzolotukhin
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28831
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292293
91177308-0d34-0410-b5e6-
96231b3b80d8
Wei Mi [Tue, 17 Jan 2017 23:39:07 +0000 (23:39 +0000)]
[RegisterCoalescing] Remove partial redundent copy.
The patch is to solve the performance problem described in PR27827.
Register coalescing sometimes cannot remove a copy because of interference.
But if we can find a reverse copy in one of the predecessor block of the copy,
the copy is partially redundent and we may remove the copy partially by moving
it to the predecessor block without the reverse copy.
Differential Revision: https://reviews.llvm.org/D28585
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292292
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Tue, 17 Jan 2017 23:23:08 +0000 (23:23 +0000)]
Fix GettingStarted doc so that the example build command for cmake LLVM_ENABLE_PROJECTS works on linux
I tested the previous one on macOS, however building libc++ on Linux
requires libcxxabi as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292290
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Tue, 17 Jan 2017 23:11:32 +0000 (23:11 +0000)]
[libfuzzer] fixing collected pc addresses for coverage
Summary: The causes google/ossfuzz#84
Reviewers: kcc
Subscribers: mgorny
Differential Revision: https://reviews.llvm.org/D28827
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292289
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Tue, 17 Jan 2017 23:09:21 +0000 (23:09 +0000)]
[ADT] Add SparseBitVector::find_last().
Differential Revision: https://reviews.llvm.org/D28817
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292288
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 17 Jan 2017 23:09:05 +0000 (23:09 +0000)]
[libFuzzer] use table of recent compares for memcmp/strcmp (to unify the code between cmp and memcmp handling)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292287
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 17 Jan 2017 23:05:07 +0000 (23:05 +0000)]
[libFuzzer] copy the options inside MutationDispatcher to avoid use-after-scope in mutator tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292286
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 17 Jan 2017 23:04:01 +0000 (23:04 +0000)]
GlobalISel: fix comparison order for G_FCMP
As with G_ICMP we'd written the CSET instructions backwards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292285
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 17 Jan 2017 22:43:34 +0000 (22:43 +0000)]
GlobalISel: add callseq instructions to record stack usage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292284
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 17 Jan 2017 22:30:10 +0000 (22:30 +0000)]
GlobalISel: correctly handle varargs
Some platforms (notably iOS) use a different calling convention for unnamed vs
named parameters in varargs functions, so we need to keep track of this
information when translating calls.
Since not many platforms are involved, the guts of the special handling is in
the ValueHandler class (with a generic implementation that should work for most
targets).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292283
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 17 Jan 2017 22:28:52 +0000 (22:28 +0000)]
[LoopDeletion] (cleanup, NFC) Use the dedicated helper to get a single
unique exit block if available rather than rolling it ourselves.
This is a little disappointing because that helper doesn't do anything
clever to short-circuit the (surprisingly expensive) computation of all
exit blocks. What's worse is that the way we compute this is hopelessly,
hilariously inefficient. We're literally computing the same information
two different ways and multiple times each way:
- hasDedicatedExits computes the exit block set and then looks at the
predecessors of each
- getExitingBlocks computes the set of loop blocks which have exiting
successors
- getUniqueExitBlock(s) computes the set of non-loop blocks reached from
loop blocks (sound familiar?)
Anyways, at some point we should clean all of this up in the LoopInfo
API, but for now just simplifying the user I'm about to touch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292282
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Tue, 17 Jan 2017 22:21:33 +0000 (22:21 +0000)]
[LV] Add requires asserts to test case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292280
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 17 Jan 2017 22:19:56 +0000 (22:19 +0000)]
[LoopDeletion] (cleanup, NFC) Fix another variable name to match LLVM
conventions, missed this one in a previous cleanup patch (sorry).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292279
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 17 Jan 2017 22:13:50 +0000 (22:13 +0000)]
[GlobalISel] track predecessor mapping during switch lowering.
Correctly populating Machine PHIs relies on knowing exactly how the IR level
CFG was lowered to MachineIR. This needs to be tracked by any translation
phases that meddle (currently only SwitchInst handling).
This reapplies r291973 which was reverted because of testing failures. Fixes:
+ Don't return an ArrayRef to a local temporary.
+ Incorporate Kristof's suggested comment improvements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292278
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 17 Jan 2017 22:12:25 +0000 (22:12 +0000)]
[X86][SSE] Split UMIN and UMAX known bits tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292277
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 17 Jan 2017 22:09:28 +0000 (22:09 +0000)]
[LoopDeletion] (cleanup, NFC) Remove a pointless comment.
I hope that for any code, it is changed only with good reason and only
when the author knows what they are doing...
There is of course good reason to comment here about the subtlety of the
process, and I've left that comment in tact.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292275
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 17 Jan 2017 22:07:26 +0000 (22:07 +0000)]
[LoopDeletion] (cleanup, NFC) Make simple helper functions static
instead of members.
No state was being provided by the object so this seems strictly
simpler.
I've also tried to improve the name and comments for the functions to
more thoroughly document what they are doing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292274
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 17 Jan 2017 22:00:52 +0000 (22:00 +0000)]
[LoopDeletion] (cleanup, NFC) Stop passing around reference to a vector
that we know has exactly one element when all we are going to do is get
that one element out of it.
Instead, pass around that one element.
There are more simplifications to come in this code...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292273
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 17 Jan 2017 21:51:39 +0000 (21:51 +0000)]
[PM] Clean up variable and parameter names to match modern LLVM naming
conventions more conistently before hacking on this code to integrate
nicely with new PM's loop pass infrastructure. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292272
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 17 Jan 2017 21:48:31 +0000 (21:48 +0000)]
Silence some Sphinx diagnostics in an attempt to get the documentation builder back to green (lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/1895).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292271
91177308-0d34-0410-b5e6-
96231b3b80d8
Xin Tong [Tue, 17 Jan 2017 21:26:36 +0000 (21:26 +0000)]
Add a test case for LICM when promoting locals that may be read after the throw within the loop. NFCI.
Summary: Add a test case for LICM when promoting locals that may be read after the throw within the loop.
Reviewers: eli.friedman, hfinkel, sanjoy
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28822
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292261
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 17 Jan 2017 21:25:16 +0000 (21:25 +0000)]
[InstCombine] refactor foldICmpShlConstant(); NFCI
This reduces the size of and increases the symmetry with the planned functional change in:
https://reviews.llvm.org/D28406
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292260
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexei Starovoitov [Tue, 17 Jan 2017 21:14:00 +0000 (21:14 +0000)]
[bpf] fix stack-use-after-scope
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292258
91177308-0d34-0410-b5e6-
96231b3b80d8
Vitaly Buka [Tue, 17 Jan 2017 21:04:23 +0000 (21:04 +0000)]
Enabled -fsanitize-address-use-after-scope for -DLLVM_USE_SANITIZER=Address
Subscribers: mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D28823
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292256
91177308-0d34-0410-b5e6-
96231b3b80d8
Michal Gorny [Tue, 17 Jan 2017 21:04:19 +0000 (21:04 +0000)]
[cmake] Update SOVERSION for the new versioning scheme
Update SOVERSION to use just the major version number rather than
major+minor, to match the new versioning scheme where only major is used
to indicate API/ABI version.
Since two-digit SOVERSIONs were introduced post 3.9 branching, this
change does not risk any SOVERSION collisions. In the past,
two-component X.Y SOVERSIONs were shortly used but those will not
interfere with the new ones since the new versions start at 4.
Differential Revision: https://reviews.llvm.org/D28730
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292255
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Tue, 17 Jan 2017 20:51:39 +0000 (20:51 +0000)]
[LV] Mark non-consecutive-like pointers non-uniform
If a memory instruction will be vectorized, but it's pointer operand is
non-consecutive-like, the instruction is a gather or scatter operation. Its
pointer operand will be non-uniform. This should fix PR31671.
Reference: https://llvm.org/bugs/show_bug.cgi?id=31671
Differential Revision: https://reviews.llvm.org/D28819
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292254
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 17 Jan 2017 20:34:09 +0000 (20:34 +0000)]
[WebAssembly] Add triple support for the new wasm object format
Differential Revision: https://reviews.llvm.org/D26701
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292252
91177308-0d34-0410-b5e6-
96231b3b80d8
Xin Tong [Tue, 17 Jan 2017 20:28:36 +0000 (20:28 +0000)]
Rename scalar_promote.ll to scalar-promote.ll and scalar_promote-unwind.ll to scalar-promote-unwind.ll. NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292251
91177308-0d34-0410-b5e6-
96231b3b80d8
Xin Tong [Tue, 17 Jan 2017 20:24:39 +0000 (20:24 +0000)]
Refactor out LoopInfo computation so that it can be used by
other test cases.
Summary: Refactor out LoopInfo computation so that it can be
used by other test cases.
So i am changing this test proactively for later commit, which will use
this function.
Reviewers: sanjoy, hfinkel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28778
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292250
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 17 Jan 2017 20:15:47 +0000 (20:15 +0000)]
[EarlyCSE] Don't DSE across readnone functions that may throw
Summary: Depends on D28740
Reviewers: dberlin, chandlerc, hfinkel, majnemer
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D28741
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292249
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 17 Jan 2017 20:15:26 +0000 (20:15 +0000)]
[InstCombine] add tests for shl nsw + icmp sle; NFC
We want to handle these cases similarly to icmp sgt, so add the tests for it.
See: https://reviews.llvm.org/D28406
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292248
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 17 Jan 2017 19:54:18 +0000 (19:54 +0000)]
[TLI] Appease spurious MSVC warning using llvm_unreachable. NFC.
r292188 confused MSVC because of the combined lack of a default
case and return statement.
Move the unreachable outside of the NumLibFuncs case, to make it
obvious that all cases should be handled.
llvm_unreachable is __declspec(noreturn), so I'm assuming this
does appease MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292246
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Tue, 17 Jan 2017 19:29:15 +0000 (19:29 +0000)]
Remove an overeager assert from r288844.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292244
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 17 Jan 2017 19:18:57 +0000 (19:18 +0000)]
Revert r291640 change to fold X86 comparison with atomic_load_add.
Even with the fix from r291630, this still causes problems. I get
widespread assertion failures in the Swift runtime's WeakRefCount::increment()
function. I sent a reduced testcase in reply to the commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292242
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 17 Jan 2017 19:18:12 +0000 (19:18 +0000)]
[PM] Teach the LoopPassManager to automatically canonicalize loops by
runnig LCSSA over them prior to running the loop pipeline.
This also teaches the loop PM to verify that LCSSA form is preserved
throughout the pipeline's run across the loop nest.
Most of the test updates just leverage this new functionality. One has to be
relaxed with the new PM as IVUsers is less powerful when it sees LCSSA input.
Differential Revision: https://reviews.llvm.org/D28743
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292241
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 17 Jan 2017 18:15:49 +0000 (18:15 +0000)]
[ValueTracking] recognize a 'not' of an assumed condition as false
Also, add the corresponding match to the AssumptionCache's 'Affected Values' list.
Differential Revision: https://reviews.llvm.org/D28485
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292239
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 17 Jan 2017 18:08:06 +0000 (18:08 +0000)]
[InstCombine] Fold ((C1 OP zext(X)) & C2) -> zext((C1 OP X) & C2)
This further extends r292179 to support additional binary operators
beyond subtraction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292238
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Tue, 17 Jan 2017 18:06:38 +0000 (18:06 +0000)]
Revert r292231.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292237
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 17 Jan 2017 17:33:18 +0000 (17:33 +0000)]
[X86][AVX512] Add all_of/any_of avx512vl tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292235
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 17 Jan 2017 17:23:51 +0000 (17:23 +0000)]
[ValueTracking] Extend known bits to understand @llvm.bitreverse.
Differential Revision: https://reviews.llvm.org/D28780
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292233
91177308-0d34-0410-b5e6-
96231b3b80d8
Kuba Mracek [Tue, 17 Jan 2017 17:15:02 +0000 (17:15 +0000)]
[lit] Limit parallelism of sanitizer tests on Darwin [llvm part]
Running lit tests and unit tests of ASan and TSan on macOS has very bad performance when running with a high number of threads. This is caused by xnu (the macOS kernel), which currently doesn't handle mapping and unmapping of sanitizer shadow regions (reserved VM which are several terabytes large) very well. The situation is so bad that increasing the number of threads actually makes the total testing time larger. The macOS buildbots are affected by this. Note that we can't easily limit the number of sanitizer testing threads without affecting the rest of the tests.
This patch adds a special "group" into lit, and limits the number of concurrently running tests in this group. This helps solve the contention problem, while still allowing other tests to run in full, that means running lit with -j8 will still with 8 threads, and parallelism is only limited in sanitizer tests.
Differential Revision: https://reviews.llvm.org/D28420
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292231
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 17 Jan 2017 16:59:09 +0000 (16:59 +0000)]
[InstCombine] reduce indent; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292230
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Tue, 17 Jan 2017 15:45:07 +0000 (15:45 +0000)]
Recommit r292214 "[Support/Compression] - Change zlib API to return Error instead of custom status"
No any changes, will follow up with D28807 commit containing APLi change for clang
to fix build issues happened.
Original commit message:
[Support/Compression] - Change zlib API to return Error instead of custom status.
Previously API returned custom enum values.
Patch changes it to return Error with string description.
That should help users to report errors in universal way.
Differential revision: https://reviews.llvm.org/D28684
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292226
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Kolton [Tue, 17 Jan 2017 15:26:02 +0000 (15:26 +0000)]
[AMDGPU] Assembler: fix v_mac_f16 immediates
Reviewers: vpykhtin, artem.tamazov, tstellarAMD
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, tony-tye
Differential Revision: https://reviews.llvm.org/D28802
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292224
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 17 Jan 2017 15:02:01 +0000 (15:02 +0000)]
[X86][SSE] Tests showing horizontal all_of/any_of of vector comparison results
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292223
91177308-0d34-0410-b5e6-
96231b3b80d8
Krasimir Georgiev [Tue, 17 Jan 2017 14:22:29 +0000 (14:22 +0000)]
[llvm-objdump tests] Copy the inputs of tests closer to tests.
Summary:
Tests under tools/llvm-objdump should not use inputs from Object. Copied the
required inputs and aligned the new tests to be more consistent with the existing
tests in this respect.
Reviewers: ioeric
Reviewed By: ioeric
Subscribers: davide, djasper, cfe-commits
Differential Revision: https://reviews.llvm.org/D28799
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292222
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Tue, 17 Jan 2017 13:27:58 +0000 (13:27 +0000)]
Revert r292214 "[Support/Compression] - Change zlib API to return Error instead of custom status."
It broked clang:
http://lab.llvm.org:8080/green//job/clang-stage1-cmake-RA-incremental_build/34218/consoleFull#
46141505449ba4694-19c4-4d7e-bec5-
911270d8a58c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292217
91177308-0d34-0410-b5e6-
96231b3b80d8
Boris Ulasevich [Tue, 17 Jan 2017 13:27:28 +0000 (13:27 +0000)]
BrainF example: fixing output buffering issue
Differential Revision: https://reviews.llvm.org/D27824
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292216
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Tue, 17 Jan 2017 13:20:17 +0000 (13:20 +0000)]
[Support/Compression] - Change zlib API to return Error instead of custom status.
Previously API returned custom enum values.
Patch changes it to return Error with string description.
That should help users to report errors in universal way.
Differential revision: https://reviews.llvm.org/D28684
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292214
91177308-0d34-0410-b5e6-
96231b3b80d8
Serge Rogatch [Tue, 17 Jan 2017 11:52:10 +0000 (11:52 +0000)]
[XRay][Arm] Repair XRay table emission on Arm32 and add tests to identify such problem earlier
Summary:
Emission of XRay table was occasionally disabled for Arm32, but this bug was not then detected because earlier (also by mistake) testing of XRay was occasionally disabled on 32-bit Arm targets. This patch should fix that problem and detect such problems in the future.
This patch is one of a series, see also
- https://reviews.llvm.org/D28623
Reviewers: rengolin, dberris
Reviewed By: dberris
Subscribers: llvm-commits, aemerson, rengolin, dberris, iid_iunknown
Differential Revision: https://reviews.llvm.org/D28624
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292210
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 17 Jan 2017 11:35:03 +0000 (11:35 +0000)]
[InstCombine][X86][AVX] Add DemandedElts support for VPERMILPD/VPERMILPS instructions
Simplify a vpermilvar shuffle mask based on the elements of the mask that are actually demanded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292209
91177308-0d34-0410-b5e6-
96231b3b80d8
Vasileios Kalintiris [Tue, 17 Jan 2017 11:00:28 +0000 (11:00 +0000)]
Update the release tester for MIPS. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292208
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Tue, 17 Jan 2017 09:39:31 +0000 (09:39 +0000)]
Remove pid_t usage from llvm-xray
This type is not available on windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292206
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 17 Jan 2017 07:26:53 +0000 (07:26 +0000)]
AMDGPU: Add replacement export intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292205
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexei Starovoitov [Tue, 17 Jan 2017 07:26:17 +0000 (07:26 +0000)]
[bpf] error when unknown bpf helper is called
Emit error when BPF backend sees a call to a global function or to an external symbol.
The kernel verifier only allows calls to predefined helpers from bpf.h
which are defined in 'enum bpf_func_id'. Such calls in assembler must
look like 'call [1-9]+' where number matches bpf_func_id.
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292204
91177308-0d34-0410-b5e6-
96231b3b80d8
Shoaib Meenai [Tue, 17 Jan 2017 07:10:55 +0000 (07:10 +0000)]
[utils] Add libc++ and libc++abi config to llvm-lit
This allows us to use bin/llvm-lit to run individual libc++ and
libc++abi tests without having to explicitly specify the site config
paths, similar to other projects.
Differential Revision: https://reviews.llvm.org/D28733
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292203
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 17 Jan 2017 06:49:59 +0000 (06:49 +0000)]
[AVX-512] Add support for taking a bitcast between a SUBV_BROADCAST and VSELECT and moving it to the input of the SUBV_BROADCAST if it will help with using a masked operation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292201
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 17 Jan 2017 06:49:54 +0000 (06:49 +0000)]
[AVX-512] Add test cases showing missed opportunities to fold subvector broadcasts with a mask operation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292200
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 17 Jan 2017 05:47:03 +0000 (05:47 +0000)]
llc: Update link components
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292198
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 17 Jan 2017 05:45:09 +0000 (05:45 +0000)]
[InstCombine] Don't DSE across readnone functions that may throw
Summary: Depends on D28740
Reviewers: dberlin, chandlerc, hfinkel, majnemer
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D28742
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292197
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 17 Jan 2017 05:34:08 +0000 (05:34 +0000)]
llc: Update LLVMBuild
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292196
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 17 Jan 2017 05:11:25 +0000 (05:11 +0000)]
llc: Initialize more passes
Targets can add these. Initialize them so -print-before/-print-after
etc. work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292195
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 17 Jan 2017 04:07:48 +0000 (04:07 +0000)]
[Orc][RPC] Return unsupported rpc function errors from the non-retry cases in
negotiateFunction.
These cases were accidentally left out of r292055, resulting in a less
descriptive ECError being returned on these paths.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292193
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 17 Jan 2017 03:31:00 +0000 (03:31 +0000)]
Revert "[TLI] Robustize SDAG proto checking by merging it into TLI."
This reverts commit r292189, as it causes issues on SystemZ bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292191
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 17 Jan 2017 03:10:06 +0000 (03:10 +0000)]
[TLI] Robustize SDAG proto checking by merging it into TLI.
SelectionDAGBuilder recognizes libfuncs using some homegrown
parameter type-checking.
Use TLI instead, removing another heap of redundant code.
This isn't strictly NFC, as the SDAG code was too lax.
Concretely, this means changes are required to two tests:
- calling a non-variadic function via a variadic prototype isn't OK;
it just happens to work on x86_64 (but not on, e.g., aarch64).
- mempcpy has a size_t parameter; the SDAG code accepts any integer
type, which meant using i32 on x86_64 worked.
I don't think it's worth supporting either of these (IMO) broken
testcases. Instead, fix them to be more correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292189
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 17 Jan 2017 03:10:02 +0000 (03:10 +0000)]
[TLI] Add prototype checking for all remaining LibFuncs.
This is another step towards unifying all LibFunc prototype checks.
This work started in r267758 (D19469); add the remaining checks.
Also add a unittest that checks each libfunc declared with a known-valid
and known-invalid prototype. New libfuncs added in the future are
required to have prototype checking in place; the known-valid test will
fail otherwise.
Differential Revision: https://reviews.llvm.org/D28030
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292188
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 17 Jan 2017 03:10:00 +0000 (03:10 +0000)]
[TLI] Alphabetize some of the prototype check switch. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292187
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 17 Jan 2017 03:09:55 +0000 (03:09 +0000)]
[unittests] Alphabetize cmake file list. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292186
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexei Starovoitov [Tue, 17 Jan 2017 01:05:17 +0000 (01:05 +0000)]
[bpf] error when BPF stack size exceeds 512 bytes
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292180
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 17 Jan 2017 00:45:57 +0000 (00:45 +0000)]
[InstCombine] Fold ((C1-zext(X)) & C2) -> zext((C1-X) & C2)
This is valid if C2 fits within the bitwidth of X thanks to two's
complement modulo arithmetic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292179
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 17 Jan 2017 00:35:28 +0000 (00:35 +0000)]
Add comment to test file I forgot to save
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292178
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 17 Jan 2017 00:30:31 +0000 (00:30 +0000)]
SimplifyLibCalls: Remove checks for fabs
Use the intrinsic instead of emitting the libcall which
will be replaced by the intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292176
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 17 Jan 2017 00:10:43 +0000 (00:10 +0000)]
AMDGPU: Remove dead pattern
This is the unsafe conversion pattern, but not guarded by
an unsafe math check. It is also already done in LegalizeDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292173
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 17 Jan 2017 00:10:40 +0000 (00:10 +0000)]
SimplifyLibCalls: Replace fabs libcalls with intrinsics
Add missing fabs(fpext) optimzation that worked with the call,
and also fixes it creating a second fpext when there were multiple
uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292172
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Mon, 16 Jan 2017 23:28:58 +0000 (23:28 +0000)]
[Object] Fixup permissions of input files.
They just need to be read/dumped, so no need to set the exec
bit on any of them. NFCI, I guess.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292171
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Mon, 16 Jan 2017 23:13:46 +0000 (23:13 +0000)]
[llvm-objdump] Dump PT_NOTE as part of -p.
PR: 31641
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292170
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Mon, 16 Jan 2017 22:58:26 +0000 (22:58 +0000)]
[llvm-objdump] Dump PT_GNU_RELRO as part of -p.
PR: 31641
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292169
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Mon, 16 Jan 2017 22:01:41 +0000 (22:01 +0000)]
[llvm-objdump] Dump PT_OPENBSD_{BOOTDATA,RANDOMIZE,WXNEEDED}.
PR: 31641
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292167
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 16 Jan 2017 21:40:08 +0000 (21:40 +0000)]
Add missing header to see if that clears up the build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292166
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 16 Jan 2017 21:34:22 +0000 (21:34 +0000)]
[InstCombine][AVX] Tests showing missed opportunities to pass demanded elts through a permilpd/permilps shuffle mask
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292165
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 16 Jan 2017 21:24:41 +0000 (21:24 +0000)]
[InstCombine] use m_APInt instead of faking it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292164
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 16 Jan 2017 21:20:51 +0000 (21:20 +0000)]
Attempt to fix the MSVC build by using llvm::errc instead of std::errc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292163
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Vesely [Mon, 16 Jan 2017 21:20:13 +0000 (21:20 +0000)]
ADMGPU/EG,CM: Implement _noret global atomics
_RTN versions will be a lot more complicated
Differential Revision: https://reviews.llvm.org/D28067
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292162
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 16 Jan 2017 20:36:26 +0000 (20:36 +0000)]
[XRay] Implement the `llvm-xray graph` subcommand
Here we define the `graph` subcommand which generates a graph from the function
call information and uses it to present the call information graphically with
additional annotations.
Reviewers: dblaikie, dberris
Differential Revision: https://reviews.llvm.org/D27243
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292156
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 16 Jan 2017 20:28:59 +0000 (20:28 +0000)]
Attempt to workaround MSVC build issue where I suspect an enum class constant 0 is considered a possible null pointer
I can't reproduce this so far with web compilers, so throwing this at
the bots to see if it sticks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292155
91177308-0d34-0410-b5e6-
96231b3b80d8
Tony Jiang [Mon, 16 Jan 2017 20:12:26 +0000 (20:12 +0000)]
[PowerPC] Expand ISEL instruction into if-then-else sequence.
Generally, the ISEL is expanded into if-then-else sequence, in some
cases (like when the destination register is the same with the true
or false value register), it may just be expanded into just the if
or else sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292154
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 16 Jan 2017 20:05:26 +0000 (20:05 +0000)]
[InstCombine] fix names in canEvaluateShiftedShift(); NFC
It's not clear what 'First' and 'Second' mean, so use 'Inner' and 'Outer'
to match foldShiftedShift() and add comments with formulas, so it's easier
to see what's going on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292153
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 16 Jan 2017 19:35:45 +0000 (19:35 +0000)]
[InstCombine] use m_APInt to allow shift-shift folds for vectors with splat constants
Some existing 'FIXME' tests are still not folded because of splat holes in value tracking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292151
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 16 Jan 2017 19:23:34 +0000 (19:23 +0000)]
[InstCombine] add tests to show missed vector folds; NFC
The shift-shift possibilities became easier to see after:
https://reviews.llvm.org/rL292145
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292150
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 16 Jan 2017 18:48:52 +0000 (18:48 +0000)]
PR31650: Refer to enum constant when initializing llvm::None constant
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292149
91177308-0d34-0410-b5e6-
96231b3b80d8