OSDN Git Service
Justin Lebar [Tue, 19 Jul 2016 23:19:16 +0000 (23:19 +0000)]
[LSV] Nix two global (ish) variables in the LoadStoreVectorizer. NFC
Reviewers: asbirlea
Subscribers: mzolotukhin, llvm-commits, arsenm
Differential Revision: https://reviews.llvm.org/D22532
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276054
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Tue, 19 Jul 2016 23:18:59 +0000 (23:18 +0000)]
[LSV] Add detail to correct-order.ll test.
Summary:
This helps keep us honest -- there were a number of ways we could screw
up and still have passed this test.
Reviewers: asbirlea
Subscribers: llvm-commits, arsenm
Differential Revision: https://reviews.llvm.org/D22531
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276053
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 19 Jul 2016 23:18:28 +0000 (23:18 +0000)]
[libFuzzer] extend the messages printed by afl_driver
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276052
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 19 Jul 2016 23:16:53 +0000 (23:16 +0000)]
AMDGPU: Change fdiv lowering based on !fpmath metadata
If 2.5 ulp is acceptable, denormals are not required, and
isn't a reciprocal which will already be handled, replace
with a faster fdiv.
Simplify the lowering tests by using per function
subtarget features.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276051
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Tue, 19 Jul 2016 23:08:08 +0000 (23:08 +0000)]
Fix unused variable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276050
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Tue, 19 Jul 2016 22:57:14 +0000 (22:57 +0000)]
Make GVN Hoisting obey optnone/bisect.
Differential Revision: http://reviews.llvm.org/D22545
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276048
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Tue, 19 Jul 2016 22:49:43 +0000 (22:49 +0000)]
Make MemorySSA::dominates/locallydominates constant time
Summary: Make MemorySSA::dominates/locallydominates constant time
Reviewers: george.burgess.iv, gberry
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D22527
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276046
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 19 Jul 2016 22:46:39 +0000 (22:46 +0000)]
Add AIX support to Path.inc, Host.h, and CMake.
Patch by Andrew Paprocki!
Differential Revision: https://reviews.llvm.org/D18359
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276045
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Tue, 19 Jul 2016 22:37:09 +0000 (22:37 +0000)]
RegScavenging: Add scavengeRegisterBackwards()
This is a variant of scavengeRegister() that works for
enterBasicBlockEnd()/backward(). The benefit of the backward mode is
that it is not affected by incomplete kill flags.
This patch also changes
PrologEpilogInserter::doScavengeFrameVirtualRegs() to use the register
scavenger in backwards mode.
Differential Revision: http://reviews.llvm.org/D21885
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276044
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Tue, 19 Jul 2016 22:37:02 +0000 (22:37 +0000)]
RegisterScavenger: Introduce backward() mode.
This adds two pieces:
- RegisterScavenger:::enterBasicBlockEnd() which behaves similar to
enterBasicBlock() but starts tracking at the end of the basic block.
- A RegisterScavenger::backward() method. It is subtly different
from the existing unprocess() method which only considers uses with
the kill flag set: If a value is dead at the end of a basic block with
a last use inside the basic block, unprocess() will fail to mark it as
live. However we cannot change/fix this behaviour because unprocess()
needs to perform the exact reverse operation of forward().
Differential Revision: http://reviews.llvm.org/D21873
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276043
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 19 Jul 2016 22:32:15 +0000 (22:32 +0000)]
regenerate checks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276042
91177308-0d34-0410-b5e6-
96231b3b80d8
Evandro Menezes [Tue, 19 Jul 2016 22:31:11 +0000 (22:31 +0000)]
[AArch64] Properly validate the reciprocal estimation.
Add check for legal data types when expanding into a Newton series.
Differential Revision: https://reviews.llvm.org/D22267
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276041
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 19 Jul 2016 22:09:34 +0000 (22:09 +0000)]
[InstCombine] fold add(zext(xor X, C), C) --> sext X when C is INT_MIN in the source type
The pattern may look more obviously like a sext if written as:
define i32 @g(i16 %x) {
%zext = zext i16 %x to i32
%xor = xor i32 %zext, 32768
%add = add i32 %xor, -32768
ret i32 %add
}
We already have that fold in visitAdd().
Differential Revision: https://reviews.llvm.org/D22477
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276035
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Tue, 19 Jul 2016 21:35:47 +0000 (21:35 +0000)]
Attempt to appease MSVC buildbots.
Broken by r276026.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276032
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Tue, 19 Jul 2016 21:16:30 +0000 (21:16 +0000)]
[AMDGPU] Remove spurious line (should've been removed in r276029).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276030
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Tue, 19 Jul 2016 21:10:49 +0000 (21:10 +0000)]
[AMDGPU] Remove dead code.
LGTM'd by Matt Arsenault.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276029
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Tue, 19 Jul 2016 20:56:41 +0000 (20:56 +0000)]
[CFLAA] Make a test tell the truth. NFC.
Dishonesty noted by Jia Chen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276028
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Tue, 19 Jul 2016 20:47:15 +0000 (20:47 +0000)]
[CFLAA] Add some interproc. analysis to CFLAnders.
This patch adds function summary support to CFLAnders. It also comes
with a lot of tests! Woohoo!
Patch by Jia Chen.
Differential Revision: https://reviews.llvm.org/D22450
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276026
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Tue, 19 Jul 2016 20:47:07 +0000 (20:47 +0000)]
Next step along the way to getting good error messages for bad archives.
This step builds on Lang Hames work to change Archive::child_iterator
for better interoperation with Error/Expected. Building on that it is now
possible to return an error message when the size field of an archive
contains non-decimal characters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276025
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 19 Jul 2016 20:47:00 +0000 (20:47 +0000)]
add even more missing tests for simplifySelectBitTest()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276024
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Tue, 19 Jul 2016 20:38:21 +0000 (20:38 +0000)]
[CFLAA] Teach CFLAnders to distinguish reads from writes.
This patch adds more specific edges to CFLAndersAliasAnalysis. The goal
of these edges is to give us more information about *how* two values
that MayAlias alias. With this, we can now tell cases like
a = b; // ergo, a may alias b
apart from
a = c;
b = c;
// so, a may alias b, but only because they were both assigned to c.
...And others.
Patch by Jia Chen.
Differential Revision: https://reviews.llvm.org/D22429
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276023
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 19 Jul 2016 20:20:03 +0000 (20:20 +0000)]
This code block breaks the docs build (lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/11921/steps/docs-llvm-html/logs/stdio). Setting the code highlighting to none instead of llvm to hopefully get the bot stumbling back towards green.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276018
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 19 Jul 2016 20:19:56 +0000 (20:19 +0000)]
Use posix_fallocate instead of ftruncate.
This makes sure that space is actually available. With this change
running lld on a full file system causes it to exit with
failed to open foo: No space left on device
instead of crashing with a sigbus.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276017
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Tue, 19 Jul 2016 20:16:08 +0000 (20:16 +0000)]
[tsan] Don't instrument __llvm_gcov_global_state_pred or __llvm_gcda*
r274801 did not go far enough to allow gcov+tsan to cooperate. With this
commit it's possible to run the following code without false positives:
std::thread T1(fib), T2(fib);
T1.join(); T2.join();
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276015
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 19 Jul 2016 19:49:13 +0000 (19:49 +0000)]
ARM: move feature for Thumb2 pkhbt/pkhtb onto architectures.
There's not much functional change, but it really is an architectural feature
(on v6T2, v7A, v7R and v7EM) rather than something each CPU implements
individually.
The main functional change is the default behaviour you get when specifying
only "-triple".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276013
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 19 Jul 2016 19:48:36 +0000 (19:48 +0000)]
[GlobalISel] Mark newly-created gvregs as having a bank.
Also verify that we never try to set the size of a vreg associated
to a register class.
Report an error when we encounter that in MIR. Fix a testcase that
hit that error and had a size for no reason.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276012
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 19 Jul 2016 19:47:06 +0000 (19:47 +0000)]
[GlobalISel] Simplify more RegClassOrRegBank is+get. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276011
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 19 Jul 2016 18:50:26 +0000 (18:50 +0000)]
[FunctionAttrs] Correct the safety analysis for inference of 'returned'
We skipped over ReturnInsts which didn't return an argument which would
lead us to incorrectly conclude that an argument returned by another
ReturnInst was 'returned'.
This reverts commit r275756.
This fixes PR28610.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276008
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Tue, 19 Jul 2016 18:31:07 +0000 (18:31 +0000)]
[SCCP] Improve assert messages. NFCI.
I've been hitting those already while working on SCCP and I think
it's be useful to provide a more explanatory diagnostic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276007
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 19 Jul 2016 18:29:06 +0000 (18:29 +0000)]
[libFuzzer] properly intercept memmem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276006
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 19 Jul 2016 18:11:11 +0000 (18:11 +0000)]
[DSE] Add additional debug output. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276005
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 19 Jul 2016 17:52:41 +0000 (17:52 +0000)]
Add a testcase for r275581
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276002
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 19 Jul 2016 17:50:30 +0000 (17:50 +0000)]
[RegionInfo] Some cleanups
- Use unique_ptr instead of managing a container of new'd pointers.
- Use range based for loops.
No functional change is intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276001
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 19 Jul 2016 17:50:27 +0000 (17:50 +0000)]
[RegionPass] Some minor cleanups
No functional change is intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276000
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 19 Jul 2016 17:50:24 +0000 (17:50 +0000)]
[LoopPass] Some minor cleanups
No functional change is intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275999
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 19 Jul 2016 17:46:55 +0000 (17:46 +0000)]
This code block breaks the docs build (lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/11920/steps/docs-llvm-html/logs/stdio), but I cannot see anything immediately wrong with it and cannot reproduce the diagnostic locally. Setting the code highlighting to none instead of nasm to hopefully get the bot stumbling back towards green.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275998
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 19 Jul 2016 17:07:35 +0000 (17:07 +0000)]
add tests related to PR28466
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275995
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Jul 2016 17:04:28 +0000 (17:04 +0000)]
[X86][AVX512] Added AVX512 subvector broadcast tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275994
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Jul 2016 16:52:05 +0000 (16:52 +0000)]
[X86][AVX] Fixed typo in test names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275992
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 19 Jul 2016 16:50:57 +0000 (16:50 +0000)]
[DSE] Add additional debug output. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275991
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 19 Jul 2016 16:49:55 +0000 (16:49 +0000)]
add missing test for simplifySelectBitTest()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275990
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Tue, 19 Jul 2016 16:39:17 +0000 (16:39 +0000)]
[InstCombine] Enable cast-folding in logic(cast(icmp), cast(icmp))
Summary:
Currently, InstCombine is already able to fold expressions of the form `logic(cast(A), cast(B))` to the simpler form `cast(logic(A, B))`, where logic designates one of `and`/`or`/`xor`. This transformation is implemented in `foldCastedBitwiseLogic()` in InstCombineAndOrXor.cpp. However, this optimization will not be performed if both `A` and `B` are `icmp` instructions. The decision to preclude casts of `icmp` instructions originates in r48715 in combination with r261707, and can be best understood by the title of the former one:
> Transform (zext (or (icmp), (icmp))) to (or (zext (cimp), (zext icmp))) if at least one of the (zext icmp) can be transformed to eliminate an icmp.
Apparently, it introduced a transformation that is a reverse of the transformation that is done in `foldCastedBitwiseLogic()`. Its purpose is to expose pairs of `zext icmp` that would subsequently be optimized by `transformZExtICmp()` in InstCombineCasts.cpp. Therefore, in order to avoid an endless loop of switching back and forth between these two transformations, the one in `foldCastedBitwiseLogic()` has been restricted to exclude `icmp` instructions which is mirrored in the responsible check:
`if ((!isa<ICmpInst>(Cast0Src) || !isa<ICmpInst>(Cast1Src)) && ...`
This check seems to sort out more cases than necessary because:
- the reverse transformation is obviously done for `or` instructions only
- and also not every `zext icmp` pair is necessarily the result of this reverse transformation
Therefore we now remove this check and replace it by a more finegrained one in `shouldOptimizeCast()` that now rejects only those `logic(zext(icmp), zext(icmp))` that would be able to be optimized by `transformZExtICmp()`, which also avoids the mentioned endless loop. That means we are now able to also simplify expressions of the form `logic(cast(icmp), cast(icmp))` to `cast(logic(icmp, icmp))` (`cast` being an arbitrary `CastInst`).
As an example, consider the following IR snippet
```
%1 = icmp sgt i64 %a, %b
%2 = zext i1 %1 to i8
%3 = icmp slt i64 %a, %c
%4 = zext i1 %3 to i8
%5 = and i8 %2, %4
```
which would now be transformed to
```
%1 = icmp sgt i64 %a, %b
%2 = icmp slt i64 %a, %c
%3 = and i1 %1, %2
%4 = zext i1 %3 to i8
```
This issue became apparent when experimenting with the programming language Julia, which makes use of LLVM. Currently, Julia lowers its `Bool` datatype to LLVM's `i8` (also see https://github.com/JuliaLang/julia/pull/17225). In fact, the above IR example is the lowered form of the Julia snippet `(a > b) & (a < c)`. Like shown above, this may introduce `zext` operations, casting between `i1` and `i8`, which could for example hinder ScalarEvolution and Polly on certain code.
Reviewers: grosser, vtjnash, majnemer
Subscribers: majnemer, llvm-commits
Differential Revision: https://reviews.llvm.org/D22511
Contributed-by: Matthias Reisinger
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275989
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 19 Jul 2016 16:27:56 +0000 (16:27 +0000)]
AMDGPU: Only use legal inline immediates with kill pseudo
Only if the value is negative or positive is what matters,
so use a constant that doesn't require an instruction to
materialize.
These should really just emit the write exec directly,
but for stick with the kill pseudo-terminator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275988
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Jul 2016 15:07:43 +0000 (15:07 +0000)]
[X86][SSE] Reimplement SSE fp2si conversion intrinsics instead of using generic IR
D20859 and D20860 attempted to replace the SSE (V)CVTTPS2DQ and VCVTTPD2DQ truncating conversions with generic IR instead.
It turns out that the behaviour of these intrinsics is different enough from generic IR that this will cause problems, INF/NAN/out of range values are guaranteed to result in a 0x80000000 value - which plays havoc with constant folding which converts them to either zero or UNDEF. This is also an issue with the scalar implementations (which were already generic IR and what I was trying to match).
This patch changes both scalar and packed versions back to using x86-specific builtins.
It also deals with the other scalar conversion cases that are runtime rounding mode dependent and can have similar issues with constant folding.
A companion clang patch is at D22105
Differential Revision: https://reviews.llvm.org/D22106
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275981
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Parker [Tue, 19 Jul 2016 14:44:05 +0000 (14:44 +0000)]
[ARM] Refactor Thumb2 Mul and Mla instr descs
Recommitting after r274347 was reverted. This patch introduces some
classes to refactor the 3 and 4 register Thumb2 multiplication
instruction descriptions, plus improved tests for some of those
instructions.
Differential Revision: https://reviews.llvm.org/D21929
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275979
91177308-0d34-0410-b5e6-
96231b3b80d8
Pankaj Gode [Tue, 19 Jul 2016 14:30:21 +0000 (14:30 +0000)]
[AArch64] PredictableSelectIsExpensive for Vulcan.
Adding PredictableSelectIsExpensive for Vulcan
Differential Revision: https://reviews.llvm.org/D22448
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275978
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Smith [Tue, 19 Jul 2016 14:15:33 +0000 (14:15 +0000)]
Add support for tlsldm assembler operator to ARM target
The standard local dynamic model for TLS on ARM systems needs two
relocations:
- R_ARM_TLS_LDM32 (module idx)
- R_ARM_TLS_LDO32 (offset of object from origin of module TLS block)
In GNU style assembler we use symbol(tlsldm) and symbol(tlsldo) to
produce these relocations.
llvm-mc for ARM supports symbol(tlsldo) but does not support symbol(tlsldm).
This patch wires up the existing symbol(tlsldm) to R_ARM_TLS_LDM32.
TLS for ARM is defined in Addenda to, and Errata in, the ABI for the
ARM Architecture
Differential Revision: https://reviews.llvm.org/D22461
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275977
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Jul 2016 14:12:45 +0000 (14:12 +0000)]
[AARCH64] Fix linu triple typo
As promised in D22191
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275976
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Jul 2016 13:35:11 +0000 (13:35 +0000)]
[AARCH64] Enable AARCH64 lit tests on windows dev machines
As discussed on PR27654, this patch fixes the triples of a lot of aarch64 tests and enables lit tests on windows
This will hopefully help stop cases where windows developers break the aarch64 target
Differential Revision: https://reviews.llvm.org/D22191
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275973
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Jul 2016 12:26:51 +0000 (12:26 +0000)]
Get rid of VS2015 operator precedence warning. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275971
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 19 Jul 2016 10:58:06 +0000 (10:58 +0000)]
[mips][ias] R_MIPS_GOT_(PAGE|OFST) do not need symbols
Reviewers: sdardis
Subscribers: dsanders, llvm-commits, sdardis
Differential Revision: https://reviews.llvm.org/D22458
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275968
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 19 Jul 2016 10:49:03 +0000 (10:49 +0000)]
[mips] Correct label prefixes for N32 and N64.
Summary:
N32 and N64 follow the standard ELF conventions (.L) whereas O32 uses its own
($).
This fixes the majority of object differences between -fintegrated-as and
-fno-integrated-as.
Reviewers: sdardis
Subscribers: dsanders, sdardis, llvm-commits
Differential Revision: https://reviews.llvm.org/D22412
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275967
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 19 Jul 2016 10:22:19 +0000 (10:22 +0000)]
[mips] Recognise the triple used by Debian stretch for mips64el.
Summary:
The triple used for this distribution is mips64el-linux-gnuabi64.
Reviewers: sdardis
Subscribers: sdardis, llvm-commits
Differential Revision: https://reviews.llvm.org/D22406
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275966
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Tue, 19 Jul 2016 09:06:08 +0000 (09:06 +0000)]
[InstCombine] Minor cleanup of cast simplification code [NFC]
Summary:
This patch cleans up parts of InstCombine to raise its compliance with the LLVM coding standards and to increase its readability. The changes and according rationale are summarized in the following:
- Rename `ShouldOptimizeCast()` to `shouldOptimizeCast()` since functions should start with a lower case letter.
- Move `shouldOptimizeCast()` from InstCombineCasts.cpp to InstCombineAndOrXor.cpp since it's only used there.
- Simplify interface of `shouldOptimizeCast()`.
- Minor code style adaptions in `shouldOptimizeCast()`.
- Remove the documentation on the function definition of `shouldOptimizeCast()` since it just repeats the documentation on its declaration. Also enhance the documentation on its declaration with more information describing its intended use and make it doxygen-compliant.
- Change a comment in `foldCastedBitwiseLogic()` from `fold (logic (cast A), (cast B)) -> (cast (logic A, B))` to `fold logic(cast(A), cast(B)) -> cast(logic(A, B))` since the surrounding comments use this format.
- Remove comment `Only do this if the casts both really cause code to be generated.` in `foldCastedBitwiseLogic()` since it just repeats parts of the documentation of `shouldOptimizeCast()` and does not help to improve readability.
- Simplify the interface of `isEliminableCastPair()`.
- Removed the documentation on the function definition of `isEliminableCastPair()` which only contained obvious statements about its implementation. Instead added more general doxygen-compliant documentation to its declaration.
- Renamed parameter `DoXform` of `transformZExtIcmp()` to `DoTransform` to make its intention clearer.
- Moved documentation of `transformZExtIcmp()` from its definition to its declaration and made it doxygen-compliant.
Reviewers: vtjnash, grosser
Subscribers: majnemer, llvm-commits
Differential Revision: https://reviews.llvm.org/D22449
Contributed-by: Matthias Reisinger
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275964
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Tue, 19 Jul 2016 09:01:46 +0000 (09:01 +0000)]
Style: drop some unnecessary ';' [NFC]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275963
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Tue, 19 Jul 2016 07:14:21 +0000 (07:14 +0000)]
AVX-512: Fixed BT instruction selection.
The following condition expression ( a >> n) & 1 is converted to "bt a, n" instruction. It works on all intel targets.
But on AVX-512 it was broken because the expression is modified to (truncate (a >>n) to i1).
I added the new sequence (truncate (a >>n) to i1) to the BT pattern.
Differential Revision: https://reviews.llvm.org/D22354
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275950
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Jul 2016 02:00:38 +0000 (02:00 +0000)]
[AVX512] Give priority to EVEX encoded PSHUFB over the VEX versions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275942
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Jul 2016 02:00:35 +0000 (02:00 +0000)]
[X86] Remove superfluous parameter from a multiclass. All instantiations passed the same value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275941
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Tue, 19 Jul 2016 01:29:15 +0000 (01:29 +0000)]
[MemorySSA] Update to the new shiny walker.
This patch updates MemorySSA's use-optimizing walker to be more
accurate and, in some cases, faster.
Essentially, this changed our core walking algorithm from a
cache-as-you-go DFS to an iteratively expanded DFS, with all of the
caching happening at the end. Said expansion happens when we hit a Phi,
P; we'll try to do the smallest amount of work possible to see if
optimizing above that Phi is legal in the first place. If so, we'll
expand the search to see if we can optimize to the next phi, etc.
An iteratively expanded DFS lets us potentially quit earlier (because we
don't assume that we can optimize above all phis) than our old walker.
Additionally, because we don't cache as we go, we can now optimize above
loops.
As an added bonus, this patch adds a ton of verification (if
EXPENSIVE_CHECKS are enabled), so finding bugs is easier.
Differential Revision: https://reviews.llvm.org/D21777
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275940
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Jul 2016 01:26:19 +0000 (01:26 +0000)]
[X86] Rename VINSERTzrr to use a capital Z to match other instructions. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275939
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Tue, 19 Jul 2016 01:17:20 +0000 (01:17 +0000)]
Retry: [llvm-profdata] Speed up merging by using a thread pool
Add a "-j" option to llvm-profdata to control the number of threads used.
Auto-detect NumThreads when it isn't specified, and avoid spawning threads when
they wouldn't be beneficial.
I tested this patch using a raw profile produced by clang (147MB). Here is the
time taken to merge 4 copies together on my laptop:
No thread pool: 112.87s user 5.92s system 97% cpu 2:01.08 total
With 2 threads: 134.99s user 26.54s system 164% cpu 1:33.31 total
Changes since the initial commit:
- When handling odd-length inputs, call ThreadPool::wait() before merging the
last profile. Should fix a race/off-by-one (see r275937).
Differential Revision: https://reviews.llvm.org/D22438
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275938
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Tue, 19 Jul 2016 00:57:09 +0000 (00:57 +0000)]
Revert "[llvm-profdata] Speed up merging by using a thread pool"
This reverts commit r275921. It broke the ppc64be bot:
http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/3537
I'm not sure why it broke, but based on the output, it looks like an
off-by-one (one profile left un-merged).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275937
91177308-0d34-0410-b5e6-
96231b3b80d8
Wei Mi [Tue, 19 Jul 2016 00:50:43 +0000 (00:50 +0000)]
Recommit the patch "Use uniforms set to populate VecValuesToIgnore".
For instructions in uniform set, they will not have vector versions so
add them to VecValuesToIgnore.
For induction vars, those only used in uniform instructions or consecutive
ptrs instructions have already been added to VecValuesToIgnore above. For
those induction vars which are only used in uniform instructions or
non-consecutive/non-gather scatter ptr instructions, the related phi and
update will also be added into VecValuesToIgnore set.
The change will make the vector RegUsages estimation less conservative.
Differential Revision: https://reviews.llvm.org/D20474
The recommit fixed the testcase global_alias.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275936
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 19 Jul 2016 00:35:22 +0000 (00:35 +0000)]
AMDGPU/SI: Fix SI scheduler refcount issue
Without this fix, releaseSuccessors when InOrOutBlock is
false could release SUs outside the schedule BasicBlock.
Patch by Axel Davy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275935
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 19 Jul 2016 00:35:03 +0000 (00:35 +0000)]
AMDGPU: Expand register indexing pseudos in custom inserter
This is to help moveSILowerControlFlow to before regalloc.
There are a couple of tradeoffs with this. The complete CFG
is visible to more passes, the loop body avoids an extra copy of m0,
vcc isn't required, and immediate offsets can be shrunk into s_movk_i32.
The disadvantage is the register allocator doesn't understand that
the single lane's vector is dead within the loop body, so an extra
register is used to outlive the loop block when expanding the
VGPR -> m0 loop. This also now results in worse waitcnt insertion
before the loop instead of after for pending operations at the point
of the indexing, but that should be fixed by future improvements to
cross block waitcnt insertion.
v_movreld_b32's operands are now modeled more correctly since vdst
is not a true output. This is kind of a hack to treat vdst as a
use operand. Extra checking is required in the verifier since
I can't seem to get tablegen to emit an implicit operand for a
virtual register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275934
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 19 Jul 2016 00:25:52 +0000 (00:25 +0000)]
[Kaleidoscope][BuildingAJIT] More work on the text for Chapter 3.
Add an overview of stubs and compile callbacks before the discussion of the
source changes.
-- This line, and those below, will be ignored--
M docs/tutorial/BuildingAJIT3.rst
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275933
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Tue, 19 Jul 2016 00:23:54 +0000 (00:23 +0000)]
[LoopReroll] Reroll loops with unordered atomic memory accesses
Reviewers: hfinkel, jfb, reames
Subscribers: mcrosier, mzolotukhin, llvm-commits
Differential Revision: https://reviews.llvm.org/D22385
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275932
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 18 Jul 2016 23:20:46 +0000 (23:20 +0000)]
TableGen: Allow custom register operand decoder method
This is for a situation where the encoding for a register may be
different depending on the specific operand. For some instructions,
we want to apply additional restrictions beyond the encoding's
constraints.
In AMDGPU some operands are VSrc_32, using the VS_32 pseudo register
class which accept VGPRs, SGPRs, or immediates in the encoding.
Some specific instructions with the same encoding operand do not want
to allow immediates or SGPRs, but the encoding format is different
in this case than a regular VGPR_32 operand.
This allows specifying the encoding should be treated the same
without introducing yet another dummy register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275929
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 18 Jul 2016 23:09:51 +0000 (23:09 +0000)]
AMDGPU: Fix test name and broken CHECK-LABEL
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275928
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Mon, 18 Jul 2016 22:50:10 +0000 (22:50 +0000)]
[utils] Generate html reports with the code coverage utility script
Instead of extracting raw coverage mappings into an artifact directory,
actually generate useful html reports for a given list of binaries with
symbol demangling turned on.
No tests, but this is actively being used to drive the (still nascent)
coverage bot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275927
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 18 Jul 2016 22:12:46 +0000 (22:12 +0000)]
Fix -Wreturn-type with gcc 4.8 and libc++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275922
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Mon, 18 Jul 2016 22:02:39 +0000 (22:02 +0000)]
[llvm-profdata] Speed up merging by using a thread pool
Add a "-j" option to llvm-profdata to control the number of threads
used. Auto-detect NumThreads when it isn't specified, and avoid spawning
threads when they wouldn't be beneficial.
I tested this patch using a raw profile produced by clang (147MB). Here is the
time taken to merge 4 copies together on my laptop:
No thread pool: 112.87s user 5.92s system 97% cpu 2:01.08 total
With 2 threads: 134.99s user 26.54s system 164% cpu 1:33.31 total
Differential Revision: https://reviews.llvm.org/D22438
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275921
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Belevich [Mon, 18 Jul 2016 21:58:48 +0000 (21:58 +0000)]
[NVPTX] Make sure we adjust alignment at all call sites
.. including calls from kernel functions that were
ignored by mistake before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275920
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Mon, 18 Jul 2016 21:41:50 +0000 (21:41 +0000)]
[PM] Convert Loop Strength Reduce pass to new PM
Summary: Convert Loop String Reduce pass to new PM
Reviewers: davidxl, silvas
Subscribers: junbuml, sanjoy, mzolotukhin, llvm-commits
Differential Revision: https://reviews.llvm.org/D22468
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275919
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Mon, 18 Jul 2016 21:29:24 +0000 (21:29 +0000)]
Update doxygen description for `WriteBitcodeToFile()` API (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275917
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Mon, 18 Jul 2016 21:22:24 +0000 (21:22 +0000)]
[PM] Port FunctionImport Pass to new PM
Summary: Port FunctionImport Pass to new PM.
Reviewers: mehdi_amini, davide
Subscribers: davidxl, llvm-commits
Differential Revision: https://reviews.llvm.org/D22475
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275916
91177308-0d34-0410-b5e6-
96231b3b80d8
Wei Mi [Mon, 18 Jul 2016 21:14:43 +0000 (21:14 +0000)]
Revert rL275912.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275915
91177308-0d34-0410-b5e6-
96231b3b80d8
Wei Mi [Mon, 18 Jul 2016 20:59:53 +0000 (20:59 +0000)]
Use uniforms set to populate VecValuesToIgnore.
For instructions in uniform set, they will not have vector versions so
add them to VecValuesToIgnore.
For induction vars, those only used in uniform instructions or consecutive
ptrs instructions have already been added to VecValuesToIgnore above. For
those induction vars which are only used in uniform instructions or
non-consecutive/non-gather scatter ptr instructions, the related phi and
update will also be added into VecValuesToIgnore set.
The change will make the vector RegUsages estimation less conservative.
Differential Revision: https://reviews.llvm.org/D20474
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275912
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 18 Jul 2016 20:56:53 +0000 (20:56 +0000)]
refactor SimplifySelectInst; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275911
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Mon, 18 Jul 2016 20:40:35 +0000 (20:40 +0000)]
Write isUInt using template specializations to work around an incorrect MSVC warning.
Summary:
Per D22441, MSVC warns on our old implementation of isUInt<64>. It sees
uint64_t(1) << 64 and doesn't realize that it's not going to be
executed. Writing as a template specialization is ugly, but prevents
the warning.
Reviewers: RKSimon
Subscribers: majnemer, llvm-commits
Differential Revision: https://reviews.llvm.org/D22472
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275909
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 18 Jul 2016 20:37:51 +0000 (20:37 +0000)]
add tests for missed sext transform
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275908
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 18 Jul 2016 20:26:46 +0000 (20:26 +0000)]
build_llvm_package.bat: update version to 4.0.0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275903
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 18 Jul 2016 20:06:51 +0000 (20:06 +0000)]
auto-generate checks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275899
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 18 Jul 2016 20:06:27 +0000 (20:06 +0000)]
Revert r273099 "If the revision number starts with r, drop it. It will get added back"
This doesn't seem to work with Bash:
$ /work/llvm/utils/release/merge.sh --proj llvm --rev r275870
/work/llvm/utils/release/merge.sh: line 34: ${$1#r}: bad substitution
I get the same error with and without a leading 'r'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275898
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Belevich [Mon, 18 Jul 2016 19:54:56 +0000 (19:54 +0000)]
[NVPTX] Force minimum alignment of 4 for byval arguments of device-side functions.
Taking address of a byval variable in PTX is legal, but currently runs
into miscompilation by ptxas on sm_50+ (NVIDIA issue
1789042).
Work around the issue by enforcing minimum alignment on byval arguments
of device functions.
The change is a no-op on SASS level for sm_3x where ptxas already aligns
local copy by at least 4.
Differential Revision: https://reviews.llvm.org/D22428
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275893
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Mon, 18 Jul 2016 19:44:19 +0000 (19:44 +0000)]
[LoopSimplify] Update LCSSA after separating nested loops.
Summary:
Usually LCSSA survives this transformation, but in some cases (see
attached test) it doesn't: values from the original loop after
separating might be used from the outer loop. Before the transformation
it was the same loop, so LCSSA phis were not required.
This fixes PR28272.
Reviewers: sanjoy, hfinkel, chandlerc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D21665
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275891
91177308-0d34-0410-b5e6-
96231b3b80d8
Vitaly Buka [Mon, 18 Jul 2016 19:44:01 +0000 (19:44 +0000)]
Revert "[ARM] Skip inline asm memory operands in DAGToDAGISel"
Breaks asan, see https://reviews.llvm.org/D22103
This reverts commit r275776.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275890
91177308-0d34-0410-b5e6-
96231b3b80d8
Vitaly Buka [Mon, 18 Jul 2016 19:43:58 +0000 (19:43 +0000)]
Revert "[ARM] Update test to use CHECK-LABEL. NFCI."
Breaks asan, see https://reviews.llvm.org/D22103
This reverts commit r275777.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275889
91177308-0d34-0410-b5e6-
96231b3b80d8
Nirav Dave [Mon, 18 Jul 2016 19:35:21 +0000 (19:35 +0000)]
[MC] Separate non-parsing operations from conditional chains. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275888
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Mon, 18 Jul 2016 19:14:14 +0000 (19:14 +0000)]
[GVNHoist] Remove a home-grown version of replaceUsesOfWith
replaceUsesOfWith will, on average, consider fewer values when trying
to do the replacement.
No functional change is intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275884
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Mon, 18 Jul 2016 19:05:08 +0000 (19:05 +0000)]
[LCSSA] Post-process PHI-nodes created by SSAUpdate when constructing LCSSA form.
Summary:
SSAUpdate might insert PHI-nodes inside loops, which can break LCSSA
form unless we fix it up.
This fixes PR28424.
Reviewers: sanjoy, chandlerc, hfinkel
Subscribers: uabelho, llvm-commits
Differential Revision: http://reviews.llvm.org/D21997
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275883
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 18 Jul 2016 19:00:07 +0000 (19:00 +0000)]
AMDGPU: Remove pointless dyn_cast_or_null
This is already casted above so non-null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275881
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 18 Jul 2016 18:53:50 +0000 (18:53 +0000)]
Fix -Wmicrosoft-enum-value in GVNHoist.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275879
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 18 Jul 2016 18:53:15 +0000 (18:53 +0000)]
[X86][SSE] Regenerate extraction from promotion test
Added tests for SSE2 as well as SSE41
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275878
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 18 Jul 2016 18:44:01 +0000 (18:44 +0000)]
[X86][SSE] Regenerate extraction+store memop tests
Added tests for SSE2 as well as SSE41+AVX
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275876
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 18 Jul 2016 18:42:33 +0000 (18:42 +0000)]
[X86][SSE] Regenerate truncate+extension memop tests
Added tests for SSE2 as well as SSE41
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275875
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 18 Jul 2016 18:40:51 +0000 (18:40 +0000)]
AMDGPU: Fix missing switch case warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275873
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 18 Jul 2016 18:38:51 +0000 (18:38 +0000)]
Regenerate test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275872
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 18 Jul 2016 18:35:05 +0000 (18:35 +0000)]
AMDGPU: Add intrinsic for s_flbit_i32/v_ffbh_i32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275871
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 18 Jul 2016 18:34:59 +0000 (18:34 +0000)]
AMDGPU/R600: Replace barrier intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275870
91177308-0d34-0410-b5e6-
96231b3b80d8