OSDN Git Service
Craig Topper [Mon, 20 Feb 2017 07:00:40 +0000 (07:00 +0000)]
[AVX-512] Add more patterns to fold masked VPTERNLOG with load when the passthru isn't operand 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295640
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 Feb 2017 07:00:37 +0000 (07:00 +0000)]
[AVX-512] Add tests for missed opportunities to fold masked VPTERNLOG with load when the passthru op isn't operand 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295639
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 Feb 2017 07:00:34 +0000 (07:00 +0000)]
[AVX-512] Fix mistake in the immediate swizzle for some of the VPTERNLOG patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295638
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 Feb 2017 07:00:31 +0000 (07:00 +0000)]
[AVX-512] Use a better immediate in the VPTERNLOG commuting tests so its easier to spot bad swizzling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295637
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 20 Feb 2017 05:45:14 +0000 (05:45 +0000)]
[Orc] Rename ObjectLinkingLayer -> RTDyldObjectLinkingLayer.
The current ObjectLinkingLayer (now RTDyldObjectLinkingLayer) links objects
in-process using MCJIT's RuntimeDyld class. In the near future I hope to add new
object linking layers (e.g. a remote linking layer that links objects in the JIT
target process, rather than the client), so I'm renaming this class to be more
descriptive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295636
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 Feb 2017 02:47:42 +0000 (02:47 +0000)]
[AVX-512] Add more VPTERNLOG patterns to enable folding of broadcast loads that aren't in operand 2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295634
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 Feb 2017 00:37:23 +0000 (00:37 +0000)]
[X86] Use memory form of shift right by 1 when the rotl immediate is one less than the operation size.
An earlier commit already did this for the register form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295626
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 Feb 2017 00:37:20 +0000 (00:37 +0000)]
[X86] Add test cases showing missed opportunities to use rotate right by 1 instructions when operation reads/writes memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295625
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 19 Feb 2017 23:26:00 +0000 (23:26 +0000)]
s/REQUIRES: Asserts/REQUIRES: asserts/
Other than this, we consistently use lower case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295623
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 19 Feb 2017 21:44:35 +0000 (21:44 +0000)]
[AVX-512] Remove AddedComplexity from masked operations. The size of the patterns already increases their priority.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295619
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 21:40:51 +0000 (21:40 +0000)]
[X86] Use peekThroughOneUseBitcasts helper. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295618
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sun, 19 Feb 2017 21:35:41 +0000 (21:35 +0000)]
[X86] Prefer static_cast<> to C-style cast. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295617
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 19 Feb 2017 21:32:15 +0000 (21:32 +0000)]
[AVX-512] Disable peephole optimizations on the VPTERNLOG commute test. Add new patterns to enable isel to fold the loads on it own.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295616
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sun, 19 Feb 2017 21:31:14 +0000 (21:31 +0000)]
[AArch64] Prefer static_cast<> to C-style cast. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295615
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 19:40:31 +0000 (19:40 +0000)]
[X86][SSE] Use getTargetConstantBitsFromNode to find zeroable shuffle elements.
Replaces existing approach that could only search BUILD_VECTOR nodes.
Requires getTargetConstantBitsFromNode to discriminate cases with all/partial UNDEF bits in each element - this should also be useful when we get around to supporting getTargetShuffleMaskIndices with UNDEF elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295613
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 19 Feb 2017 19:36:58 +0000 (19:36 +0000)]
[AVX-512] Add patterns to recognize masked vpternlog when the passthrough operand is not operand 0.
This uses a SDNodeXForm to swizzle the appropriate immediate bits to allow this to be matched.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295612
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 19 Feb 2017 19:36:54 +0000 (19:36 +0000)]
[AVX-512] Add test cases that show failure to select masked VPTERNLOG when a select is used to force the passthru operand to be not operand 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295611
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 17:19:38 +0000 (17:19 +0000)]
[X86][SSE] Enable initial support for domain crossing at high shuffle combine depths.
As discussed on D27692, this permits another domain to be used to combine a shuffle at high depths.
We currently set the required depth at 4 or more combined shuffles, this is probably too high for most targets but is a good starting point and already helps avoid a number of costly variable shuffles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295608
91177308-0d34-0410-b5e6-
96231b3b80d8
Artyom Skrobov [Sun, 19 Feb 2017 16:56:18 +0000 (16:56 +0000)]
Remove redundant call to GluedNodes.back() [NFC]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295607
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 15:15:40 +0000 (15:15 +0000)]
[X86][SSE] Generalize INSERTPS/SHUFPS/SHUFPD combines across domains.
Relax the INSERTPS/SHUFPS/SHUFPD combines to support integer inputs if permitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295606
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Kudrin [Sun, 19 Feb 2017 14:26:52 +0000 (14:26 +0000)]
[llvm-cov] Respect Windows line endings when parsing demangled symbols.
Differential Revision: https://reviews.llvm.org/D30096
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295605
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 14:12:25 +0000 (14:12 +0000)]
[X86][SSE] Add domain crossing support for target shuffle combines.
Add the infrastructure to flag whether float and/or int domains are permitable.
A future patch will enable domain crossing based off shuffle depth and the value types of the source vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295604
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 12:32:44 +0000 (12:32 +0000)]
Removed extra ';'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295603
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 19 Feb 2017 08:03:26 +0000 (08:03 +0000)]
[AVX-512] Add broadcast VPTERNLOG instructions to special case commuting switch.
The instructions are marked commutable, but without special handling we don't get the immediate correct.
While here also remove the masked memory forms that aren't commutable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295602
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 19 Feb 2017 08:03:23 +0000 (08:03 +0000)]
[AVX-512] Add patterns to show missed opportunities for folding vpternlog with broadcast loads. Also demonstrates a bug in the commuting of broadcast vpternlog instructions when we are able to select them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295601
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sun, 19 Feb 2017 06:51:46 +0000 (06:51 +0000)]
Untabify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295599
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 19 Feb 2017 06:45:02 +0000 (06:45 +0000)]
Re-add debugcounter.ll with Requires: Asserts so that it only triggers when asserts are on
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295598
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 19 Feb 2017 04:56:07 +0000 (04:56 +0000)]
Which, in turn, causes build bots to fail that have it unexpectedly passing. So remove debugcounter.ll for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295597
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 19 Feb 2017 04:55:02 +0000 (04:55 +0000)]
XFAIL this test until we figure out what to do here, since it will fail if NDEBUG defined
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295596
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 19 Feb 2017 04:29:50 +0000 (04:29 +0000)]
Add two files lost in rebase, causing build break
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295595
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 19 Feb 2017 04:29:01 +0000 (04:29 +0000)]
Add a DebugCounter for PredicateInfo renaming, and an associated test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295594
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 19 Feb 2017 04:28:56 +0000 (04:28 +0000)]
Add initial support for debug counting
Summary:
We have support for bisection, and bugpoint can reduce testcases
often to a single pass. But that doesn't help reduce it to a single
transform by a single pass. Which debug counting lets us do.
Debug counting lets you instrument a pass so that it only executes a
certain thing (rwhatever you want) after skipping it a certain time of
times, and then only does a certain number of executions before saying
"skip" again.
To make it concrete, for predicateinfo, if i instrument use renaming,
i can make it so it skips renaming the first N uses, renames the next
N, and then skips the rest.
This lets you narrow down a miscompilation to, often, a single
transformation, and then also debug it (by using the same command line
parameters).
Reviewers: chandlerc, davide, mehdi_amini
Subscribers: mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D29998
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295593
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sun, 19 Feb 2017 02:31:06 +0000 (02:31 +0000)]
llvm/test/CodeGen/AMDGPU/r600.alu-limits.ll should require +Asserts. This would run into infinite loop anyways with -Asserts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295591
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 19 Feb 2017 02:08:48 +0000 (02:08 +0000)]
[X86] Remove patterns for MOVSD with v4i32 types. We don't appear to really need them and if we do we should just use a bitcast to a 64-bit element type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295589
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 19 Feb 2017 01:54:47 +0000 (01:54 +0000)]
[X86] Tighten up some of the SDNode type constraints.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295588
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 00:33:37 +0000 (00:33 +0000)]
Fix unused variable warning when assertions are disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295587
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 00:04:30 +0000 (00:04 +0000)]
[X86] Fix enumeral/non-enumeral conditional expression warning.
gcc only allows you to mix enums / ints if they have the same signedness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295586
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 19 Feb 2017 00:03:46 +0000 (00:03 +0000)]
Fix 'variable set but not used' warning when assertions are disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295585
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sat, 18 Feb 2017 23:06:50 +0000 (23:06 +0000)]
NewGVN: Start making use of predicateinfo pass.
Summary: This begins using the predicateinfo pass in NewGVN.
Reviewers: davide
Subscribers: llvm-commits, Prazek
Differential Revision: https://reviews.llvm.org/D29682
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295583
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sat, 18 Feb 2017 23:06:47 +0000 (23:06 +0000)]
NewGVN: Make ranking prefer undef to constants. Fix direction of
shouldSwapOperands to be correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295582
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sat, 18 Feb 2017 23:06:38 +0000 (23:06 +0000)]
PredicateInfo: Clean up predicate info a little, using insertion
helpers, and fixing support for the renaming the comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295581
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 18 Feb 2017 22:56:17 +0000 (22:56 +0000)]
Fix signed/unsigned comparison warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295580
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2017 22:53:43 +0000 (22:53 +0000)]
[X86][XOP] Reduce the size of a multiclass by moving more stuff to parameters instead of doing 128-bit and 256-bit simultaneously.
This requires some instructions to be renamed to move the Y earlier in the instruction name. The new names are more consistent with other instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295579
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2017 22:53:38 +0000 (22:53 +0000)]
[TableGen] Make sure EnforceSameSize populates the type sets if necessary.
This was found by another commit I'm working on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295578
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 18 Feb 2017 22:50:28 +0000 (22:50 +0000)]
[AArch64] Fix enumeral/non-enumeral conditional expression warning.
gcc only allows you to mix enums / ints if they have the same signedness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295577
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 18 Feb 2017 22:40:58 +0000 (22:40 +0000)]
[X86] Fix enumeral/non-enumeral comparison warning.
gcc only allows you to mix enums / ints if they have the same signedness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295576
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 18 Feb 2017 22:25:27 +0000 (22:25 +0000)]
[X86][SSE] Avoid repeated calls to SDValue::getValueType.
Added assertion to check input type of X86ISD::VZEXT during target known bits calculation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295575
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 18 Feb 2017 22:20:09 +0000 (22:20 +0000)]
[InstCombine] add nsw/nuw X, signbit --> or X, signbit
Changing to 'or' (rather than 'xor' when no wrapping flags are set)
allows icmp simplifies to happen as expected.
Differential Revision: https://reviews.llvm.org/D29729
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295574
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 18 Feb 2017 21:59:09 +0000 (21:59 +0000)]
[InstSimplify] add nsw/nuw (xor X, signbit), signbit --> X
The change to InstCombine in:
https://reviews.llvm.org/D29729
...exposes this missing fold in InstSimplify, so adding this
first to avoid a regression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295573
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 18 Feb 2017 21:51:14 +0000 (21:51 +0000)]
[InstSimplify] add tests for add nsw/nuw (xor X, signbit), signbit --> X; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295572
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2017 21:50:58 +0000 (21:50 +0000)]
Recommit "[X86] Remove XOP VPCMOV intrinsics and autoupgrade them to native IR."
Clang has now been fixed to not use these intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295571
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 18 Feb 2017 21:07:37 +0000 (21:07 +0000)]
[x86] remove stale comments from tests; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295569
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 18 Feb 2017 21:03:28 +0000 (21:03 +0000)]
[x86] fold sext (xor Bool, -1) --> sub (zext Bool), 1
This is the same transform that is current used for:
select Bool, 0, -1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295568
91177308-0d34-0410-b5e6-
96231b3b80d8
Piotr Padlewski [Sat, 18 Feb 2017 20:34:36 +0000 (20:34 +0000)]
[MemorySSA] NFC small fixes
Summary:
2 small fixes extracted from
https://reviews.llvm.org/D29064
Reviewers: kuhar, davide, dberlin, george.burgess.iv
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D30109
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295566
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2017 20:14:20 +0000 (20:14 +0000)]
Revert "[X86] Remove XOP VPCMOV intrinsics and autoupgrade them to native IR."
This reverts r295564. I missed that clang was still using the intrinsics despite our half implemented autoupgrade support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295565
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2017 19:51:25 +0000 (19:51 +0000)]
[X86] Remove XOP VPCMOV intrinsics and autoupgrade them to native IR.
It seems we were already upgrading 128-bit VPCMOV, but the intrinsic was still defined and being used in isel patterns. While I was here I also simplified the tablegen multiclasses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295564
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2017 19:51:19 +0000 (19:51 +0000)]
[X86][IR] Simplify the XOP vpcmov autoupgrade code. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295563
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2017 19:51:14 +0000 (19:51 +0000)]
[X86][IR] Merge together some very similar AutoUpgrade handling. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295562
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 18 Feb 2017 19:12:26 +0000 (19:12 +0000)]
AMDGPU: Fix assembler subtarget predicate for gfx9
This was accepting GFX9 instructions on VI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295557
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 18 Feb 2017 18:41:41 +0000 (18:41 +0000)]
AMDGPU: Fix disassembly of aperture registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295555
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 18 Feb 2017 18:29:53 +0000 (18:29 +0000)]
AMDGPU: Merge initial gfx9 support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295554
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 18 Feb 2017 18:27:04 +0000 (18:27 +0000)]
[InstCombine] add tests for trunc(insertelement); NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295553
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Sat, 18 Feb 2017 17:22:52 +0000 (17:22 +0000)]
Refactor instruction simplification code in visitors. NFC.
Several visitors check if operands to the instruction are constants,
either as it is or after looking up SimplifiedValues, check if the
result is a constant and update the SimplifiedValues map. This
refactoring splits it into a common function that does the checking of
whether the operands are constants and updating of the SimplifiedValues
table, and an instruction specific part that is implemented by each
instruction visitor as a lambda and passed to the common function.
Differential revision: https://reviews.llvm.org/D30104
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295552
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 18 Feb 2017 15:24:31 +0000 (15:24 +0000)]
[InstCombine] update trunc(shuffle) tests to reflect IR reality; NFC
We're ok shrinking splats, but not shuffles in general.
See https://reviews.llvm.org/D30123 for discussion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295547
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Cain [Sat, 18 Feb 2017 15:13:58 +0000 (15:13 +0000)]
opt-viewer: Fix syntax highlighting
Syntax highlighting has been done line-at-a-time. Done this way, the lexer
resets the context at each line, distorting the formatting.
This change will render the whole file at once and feed the highlighted text
line-at-a-time to be wrapped by the SourceFileRenderer.
Leading/trailing newlines were being ignored by Pygments but since each line
was rendered in its own row, it didn't matter. This bug was masked by the
line-at-a-time algorithm. So now we need to add "stripnl=False" to the
CppLexer to change its behavior to match the expectation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295546
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 18 Feb 2017 07:07:50 +0000 (07:07 +0000)]
[AVX-512] Remove 128/256-bit masked fp max/min intrinsics. Upgrade them to legacy unmasked intrinsics and select instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295543
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Sat, 18 Feb 2017 06:42:16 +0000 (06:42 +0000)]
Add default OptLevel value for createSimpleLoopUnrollPass to fix the build break introduced by r295538. (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295542
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Vesely [Sat, 18 Feb 2017 04:24:10 +0000 (04:24 +0000)]
AMDGPU/R600: Assert on infinite loop in EmitClauseMarkers
Differential Revision: https://reviews.llvm.org/D29792
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295539
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Sat, 18 Feb 2017 03:46:51 +0000 (03:46 +0000)]
Increases full-unroll threshold.
Summary:
The default threshold for fully unroll is too conservative. This patch doubles the full-unroll threshold
This change will affect the following speccpu2006 benchmarks (performance numbers were collected from Intel Sandybridge):
Performance:
403 0.11%
433 0.51%
445 0.48%
447 3.50%
453 1.49%
464 0.75%
Code size:
403 0.56%
433 0.96%
445 2.16%
447 2.96%
453 0.94%
464 8.02%
The compiler time overhead is similar with code size.
Reviewers: davidxl, mkuper, mzolotukhin, hfinkel, chandlerc
Reviewed By: hfinkel, chandlerc
Subscribers: mehdi_amini, zzheng, efriedma, haicheng, hfinkel, llvm-commits
Differential Revision: https://reviews.llvm.org/D28368
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295538
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sat, 18 Feb 2017 03:02:44 +0000 (03:02 +0000)]
[IR/Verifier] Don't visit DISubprograms more than needed.
Before this patch we happened to visit twice, one when scanning
MDNodes and the other one while visiting the function. Remove
the explicit call to visitDISubprogram there, so we don't emit
the same error twice in case the verifier fail and we save some
time when running it.
Thanks to Justin Bogner for the report and Adrian for the quick
review!
PR: 31995
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295537
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan McKay [Sat, 18 Feb 2017 02:26:11 +0000 (02:26 +0000)]
[AVR] Set UseIntegratedAssembler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295535
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sat, 18 Feb 2017 02:00:27 +0000 (02:00 +0000)]
OptDiag: Allow constructing DiagnosticLocation from DISubprograms
This avoids creating a DILocation just to represent a line number,
since creating Metadata is expensive. Creating a DiagnosticLocation
directly is much cheaper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295531
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Sat, 18 Feb 2017 01:51:00 +0000 (01:51 +0000)]
Remove the is_trivially_copyable check entirely.
This is still breaking builds because some compilers think
this type is not trivially copyable even when it should be.
Reverting this static_assert until I have time to investigate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295529
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Sat, 18 Feb 2017 01:46:01 +0000 (01:46 +0000)]
Use llvm workaround for missing is_trivially_copyable.
some versions of GCC don't have this, so LLVM provides a
workaround.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295526
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Sat, 18 Feb 2017 01:35:33 +0000 (01:35 +0000)]
Don't assume little endian in StreamReader / StreamWriter.
In an effort to generalize this so it can be used by more than
just PDB code, we shouldn't assume little endian.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295525
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Sat, 18 Feb 2017 00:48:43 +0000 (00:48 +0000)]
machine-region-info.mir: Slightly simplify test, -mtriple
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295520
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sat, 18 Feb 2017 00:42:23 +0000 (00:42 +0000)]
OptDiag: Decouple backend diagnostics from debug info metadata
This creates and uses a DiagnosticLocation type rather than using
DebugLoc for this purpose in the backend diagnostics. This is NFC for
now, but will allow us to create locations for diagnostics without
having to create new metadata nodes when we don't have a DILocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295519
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Sat, 18 Feb 2017 00:41:16 +0000 (00:41 +0000)]
MachineRegionInfo: Fix pass initialization
- Adapt MachineBasicBlock::getName() to have the same behavior as the IR
BasicBlock (Value::getName()).
- Add it to lib/CodeGen/CodeGen.cpp::initializeCodeGen so that it is linked in
the CodeGen library.
- MachineRegionInfoPass's name conflicts with RegionInfoPass's name ("region").
- MachineRegionInfo should depend on MachineDominatorTree,
MachinePostDominatorTree and MachineDominanceFrontier instead of their
respective IR versions.
- Since there were no tests for this, add a X86 MIR test.
Patch by Francis Visoiu Mistrih<fvisoiumistrih@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295518
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 17 Feb 2017 23:57:42 +0000 (23:57 +0000)]
Verifier: Disallow a line number without a file in DISubprogram
A line number doesn't make much sense if you don't say where it's
from. Add a verifier check for this and update some tests that had
bogus debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295516
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 17 Feb 2017 23:16:54 +0000 (23:16 +0000)]
[InstCombine] add tests for trunc(shuffle X, C, M); NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295513
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 17 Feb 2017 23:15:03 +0000 (23:15 +0000)]
AArch64LoadStoreOptimizer: Correctly clear kill flags
When promoting the Load of a Store-Load pair to a COPY all kill flags
between the store and the load need to be cleared.
rdar://
30402435
Differential Revision: https://reviews.llvm.org/D30110
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295512
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 17 Feb 2017 23:00:21 +0000 (23:00 +0000)]
[X86] Add MOVBE targets to load combine tests
Test folded endian swap tests with MOVBE instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295508
91177308-0d34-0410-b5e6-
96231b3b80d8
Guozhi Wei [Fri, 17 Feb 2017 22:29:39 +0000 (22:29 +0000)]
[PPC] Give unaligned memory access lower cost on processor that supports it
Newer ppc supports unaligned memory access, it reduces the cost of unaligned memory access significantly. This patch handles this case in PPCTTIImpl::getMemoryOpCost.
This patch fixes pr31492.
Differential Revision: https://reviews.llvm.org/D28630
This is resubmit of r292680, which was reverted by r293092. The internal application failures were actually caused by a source code bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295506
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Fri, 17 Feb 2017 22:23:34 +0000 (22:23 +0000)]
[CodeGen] Revert changes in LowLevelType to pre-r295499 to fix broken buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295505
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 17 Feb 2017 22:14:51 +0000 (22:14 +0000)]
[Hexagon] Start using regmasks on calls
Reapply r295371 with a fix for the Windows bot failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295504
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Fri, 17 Feb 2017 22:12:30 +0000 (22:12 +0000)]
[NewGVN] isOnlyReachableViaThisEdge() is dead now. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295503
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 17 Feb 2017 22:10:10 +0000 (22:10 +0000)]
[X86] Simplify by pulling out valuetype. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295502
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Fri, 17 Feb 2017 22:07:26 +0000 (22:07 +0000)]
[CodeGen] Attempt to fix buildbots broken in r295499.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295501
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Fri, 17 Feb 2017 21:55:47 +0000 (21:55 +0000)]
[NewGVN] createVariableOrConstant is not required anymore. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295500
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Fri, 17 Feb 2017 21:43:25 +0000 (21:43 +0000)]
[CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295499
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 17 Feb 2017 21:16:24 +0000 (21:16 +0000)]
[X86] Add subborrow stack folding tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295496
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 17 Feb 2017 21:10:40 +0000 (21:10 +0000)]
[x86] add tests for sext (not bool); NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295495
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Fri, 17 Feb 2017 20:46:52 +0000 (20:46 +0000)]
[LAA] Remove unused code (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295493
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 17 Feb 2017 20:43:32 +0000 (20:43 +0000)]
[X86][SSE] Add (V)MOVD folding pattern with zextloadi64i32 load node.
Fixes PRPR31309
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295492
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Fri, 17 Feb 2017 20:02:26 +0000 (20:02 +0000)]
Fix windows bots by locking down the target triple on this testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295490
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 17 Feb 2017 19:49:10 +0000 (19:49 +0000)]
AMDGPU: Fix crashes on invalid icmp/fcmp intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295489
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 17 Feb 2017 19:43:45 +0000 (19:43 +0000)]
WholeProgramDevirt: For VCP use a 32-bit ConstantInt for the byte offset.
A future change will cause this byte offset to be inttoptr'd and then exported
via an absolute symbol. On the importing end we will expect the symbol to be
in range [0,2^32) so that it will fit into a 32-bit relocation. The problem
is that on 64-bit architectures if the offset is negative it will not be in
the correct range once we inttoptr it.
This change causes us to use a 32-bit integer so that it can be inttoptr'd
(which zero extends) into the correct range.
Differential Revision: https://reviews.llvm.org/D30016
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295487
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Fri, 17 Feb 2017 19:42:32 +0000 (19:42 +0000)]
Debug Info: Sort frame index expressions before emitting them.
This fixes PR31381, which caused an assertion and/or invalid debug info.
This affects debug variables that have multiple fragments in the MMI
side (i.e.: in the stack frame) table.
rdar://problem/
30571676
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295486
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Fri, 17 Feb 2017 19:29:12 +0000 (19:29 +0000)]
[CMake] Support externalizing debug info on non-Darwin platforms
On other platorms, we use objcopy to export the debug info.
Differential Revision: https://reviews.llvm.org/D28575
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295481
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 17 Feb 2017 19:24:55 +0000 (19:24 +0000)]
[X86][SHA] Add SHA stack folding tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295479
91177308-0d34-0410-b5e6-
96231b3b80d8