OSDN Git Service
Lang Hames [Sun, 1 May 2016 00:14:45 +0000 (00:14 +0000)]
[ORC] Save AArch64 NEON state in the JIT reentry block.
The earlier version of the resolver code did not save NEON state, so it would
have broken any callees that used floating point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268173
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Sat, 30 Apr 2016 21:32:12 +0000 (21:32 +0000)]
[lit] Add %:[STpst] to represent paths without colons on Windows.
Summary:
We need these variables to concatenate two absolute paths to construct
a valid path. Currently, %t\%t is, for example, expanded to C:\foo\C:\foo,
which is not a valid path because ":" is not a valid path character
on Windows. With this patch, %t will be expanded to C\foo.
Differential Revision: http://reviews.llvm.org/D19757
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268168
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 30 Apr 2016 20:41:52 +0000 (20:41 +0000)]
[InstCombine][AVX2] Added VPERMD/VPERMPS shuffle combining placeholder tests.
For future support for VPERMD/VPERMPS to generic shuffles combines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268166
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sat, 30 Apr 2016 18:15:34 +0000 (18:15 +0000)]
CodeGen: convert to range based loops
Convert to using some range based loops, avoid unnecessary variables for
unchecked casts. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268165
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 30 Apr 2016 17:59:49 +0000 (17:59 +0000)]
[X86] Reduce memory usage of MemOp2RegOp and RegOp2MemOp folding maps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268164
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 30 Apr 2016 15:18:21 +0000 (15:18 +0000)]
Add missing override.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268163
91177308-0d34-0410-b5e6-
96231b3b80d8
Marcin Koscielnicki [Sat, 30 Apr 2016 09:57:34 +0000 (09:57 +0000)]
[ASan] Add shadow offset for SystemZ.
SystemZ on Linux currently has 53-bit address space. In theory, the hardware
could support a full 64-bit address space, but that's not supported due to
kernel limitations (it'd require 5-level page tables), and there are no plans
for that. The default process layout stays within first 4TB of address space
(to avoid creating 4-level page tables), so any offset >= (1 << 42) is fine.
Let's use 1 << 52 here, ie. exactly half the address space.
I've originally used 7 << 50 (uses top 1/8th of the address space), but ASan
runtime assumes there's some space after the shadow area. While this is
fixable, it's simpler to avoid the issue entirely.
Also, I've originally wanted to have the shadow aligned to 1/8th the address
space, so that we can use OR like X86 to assemble the offset. I no longer
think it's a good idea, since using ADD enables us to load the constant just
once and use it with register + register indexed addressing.
Differential Revision: http://reviews.llvm.org/D19650
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268161
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 30 Apr 2016 07:32:19 +0000 (07:32 +0000)]
[InstCombine][AVX] Split off VPERMILVAR tests and added additional tests for UNDEF mask elements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268159
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 30 Apr 2016 07:23:30 +0000 (07:23 +0000)]
[InstCombine][AVX] VPERMILVAR to shuffle combine to use general aggregate elements. NFCI.
Make use of Constant::getAggregateElement instead of checking constant types - first step towards adding support for UNDEF mask elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268158
91177308-0d34-0410-b5e6-
96231b3b80d8
Sriraman Tallam [Sat, 30 Apr 2016 04:18:52 +0000 (04:18 +0000)]
Differential Revision: reviews.llvm.org/D19753
Delete Target Option PositionIndependentExecutable as PIE is now part of module flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268155
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Sat, 30 Apr 2016 04:04:48 +0000 (04:04 +0000)]
AMDGPU/SI: Remove wait state handling for SMRD in SIInsertWaits
This was supposed to be part of r268143.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268154
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Sat, 30 Apr 2016 01:59:28 +0000 (01:59 +0000)]
[PowerPC/QPX] Fix the load/splat peephole with overlapping reads
If, in between the splat and the load (which does an implicit splat), there is
a read of the splat register, then that register must have another earlier
definition. In that case, we can't replace the load's destination register with
the splat's destination register.
Unfortunately, I don't have a small or non-fragile test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268152
91177308-0d34-0410-b5e6-
96231b3b80d8
Amjad Aboud [Sat, 30 Apr 2016 01:44:07 +0000 (01:44 +0000)]
Reverting 268054 & 268063 as they caused PR27579.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268150
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Sat, 30 Apr 2016 00:55:59 +0000 (00:55 +0000)]
[LowerGuardIntrinsics] Keep track of !make.implicit metadata
If a guard call being lowered by LowerGuardIntrinsics has the
`!make.implicit` metadata attached, then reattach the metadata to the
branch in the resulting expanded form of the intrinsic. This allows us
to implement null checks as guards and still get the benefit of implicit
null checks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268148
91177308-0d34-0410-b5e6-
96231b3b80d8
Lawrence Hu [Sat, 30 Apr 2016 00:51:22 +0000 (00:51 +0000)]
Reroll loops with multiple IV and negative step part 3
support multiple induction variables
This patch enable loop reroll for the following case:
for(int i=0; i<N; i += 2) {
S += *a++;
S += *a++;
};
Differential Revision: http://reviews.llvm.org/D16550
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268147
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Sat, 30 Apr 2016 00:50:26 +0000 (00:50 +0000)]
[Orc] Fix the AArch64 resolver size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268146
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Sat, 30 Apr 2016 00:32:54 +0000 (00:32 +0000)]
Fix a typo (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268144
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Sat, 30 Apr 2016 00:23:06 +0000 (00:23 +0000)]
AMDGPU/SI: Enable the post-ra scheduler
Summary:
This includes a hazard recognizer implementation to replace some of
the hazard handling we had during frame index elimination.
Reviewers: arsenm
Subscribers: qcolombet, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D18602
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268143
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Sat, 30 Apr 2016 00:17:47 +0000 (00:17 +0000)]
[LowerGuardIntrinsics] Preserve calling conv when lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268142
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 30 Apr 2016 00:12:54 +0000 (00:12 +0000)]
add minimal test to show dropped metadata
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268141
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 30 Apr 2016 00:02:36 +0000 (00:02 +0000)]
remove the metadata added with r267827
We can demonstrate the 'select' bug and fix with a simpler test case.
The merged weight values are already tested in another test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268139
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 29 Apr 2016 22:59:36 +0000 (22:59 +0000)]
Reapply r268107 after fixing a bug breaks debug build.
Makes the new method to set data needed by debug dump.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268130
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Apr 2016 22:23:16 +0000 (22:23 +0000)]
Mark guards on true as "trivially dead"
This moves some logic added to EarlyCSE in rL268120 into
`llvm::isInstructionTriviallyDead`. Adds a test case for DCE to
demonstrate that passes other than EarlyCSE can now pick up on the new
information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268126
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 29 Apr 2016 22:19:35 +0000 (22:19 +0000)]
[CMake] [Xcode] Improving Xcode toolchain generation to support distribution targets
This adds a new target `install-distribution-toolchain` which will install an Xcode toolchain featuring just the LLVM components specified in LLVM_DISTRIBUTION_COMPONENTS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268125
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 29 Apr 2016 22:03:27 +0000 (22:03 +0000)]
clean up documentation comments; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268122
91177308-0d34-0410-b5e6-
96231b3b80d8
Haicheng Wu [Fri, 29 Apr 2016 22:01:10 +0000 (22:01 +0000)]
[MBP] Use Function::optForSize() instead of checking OptimizeForSize directly.
Fix a FIXME. Disable loop alignment if compiled with -Oz now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268121
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Apr 2016 21:52:58 +0000 (21:52 +0000)]
[EarlyCSE] Simplify guard intrinsics
Summary:
This change teaches EarlyCSE some basic properties of guard intrinsics:
- Guard intrinsics read all memory, but don't write to any memory
- After a guard has executed, the condition it was guarding on can be
assumed to be true
- Guard intrinsics on a constant `true` are no-ops
Reviewers: reames, hfinkel
Subscribers: mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D19578
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268120
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 29 Apr 2016 21:52:13 +0000 (21:52 +0000)]
AMDGPU: Fix crash with unreachable terminators.
If a block has no successors because it ends in unreachable,
this was accessing an invalid iterator.
Also stop counting instructions that don't emit any
real instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268119
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 29 Apr 2016 21:43:28 +0000 (21:43 +0000)]
Revert r268107 -- debug build failure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268116
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 29 Apr 2016 21:34:54 +0000 (21:34 +0000)]
[InstCombine][SSE] PSHUFB to shuffle combine to use general aggregate elements. NFCI.
Make use of Constant::getAggregateElement instead of checking constant types - first step towards adding support for UNDEF mask elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268115
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 29 Apr 2016 21:32:00 +0000 (21:32 +0000)]
[Orc] Add ORC lazy-compilation support for AArch64.
The ORC compile callbacks and indirect stubs APIs will now work for AArc64,
allowing functions to be lazily compiled and/or updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268112
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 29 Apr 2016 21:29:48 +0000 (21:29 +0000)]
[Orc] Make sure we don't drop the internal error in OrcRemoteTargetClient when
the constructor fails, as this would lead to an 'unchecked error' crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268111
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 29 Apr 2016 21:23:24 +0000 (21:23 +0000)]
[Docs] Refer to the CMakePrimer from CMake doc
The "Building LLVM with CMake" document should have a reference to the CMakePrimer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268109
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Apr 2016 21:22:04 +0000 (21:22 +0000)]
[ValueTracking] Make the code in lookThroughCast
No functionality change is intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268108
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 29 Apr 2016 21:21:44 +0000 (21:21 +0000)]
[inliner]: Refactor inline deferring logic into its own method /NFC
The implemented heuristic has a large body of code which better sits
in its own function for better readability. It also allows adding more
heuristics easier in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268107
91177308-0d34-0410-b5e6-
96231b3b80d8
Sriraman Tallam [Fri, 29 Apr 2016 21:19:16 +0000 (21:19 +0000)]
Differential Revision: reviews.llvm.org/D19733
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268106
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 29 Apr 2016 21:16:52 +0000 (21:16 +0000)]
AMDGPU: Add kernarg.segment.ptr intrinsic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268105
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 29 Apr 2016 21:12:31 +0000 (21:12 +0000)]
[InstCombine] Determine the result of a select based on a dominating condition.
Differential Revision: http://reviews.llvm.org/D19550
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268104
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 29 Apr 2016 21:02:04 +0000 (21:02 +0000)]
Fix comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268102
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 29 Apr 2016 20:54:56 +0000 (20:54 +0000)]
[InstCombine] clean up; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268099
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 29 Apr 2016 20:34:54 +0000 (20:34 +0000)]
[Docs] Add CMake Primer document
This document is intended to provide a basic overview of the CMake scripting language for LLVM developers. It was unorthodoxly reviewed for accuracy and content on the CMake developer list:
http://public.kitware.com/pipermail/cmake-developers/2016-April/028300.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268096
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 29 Apr 2016 20:23:42 +0000 (20:23 +0000)]
AMDGPU/SI: Move post regalloc run of SIShrinkInstructions
Move to addPreEmitPass. This is so it runs after post-RA
scheduling so we can merge s_nops emitted by the scheduler
and hazard recognizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268095
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 29 Apr 2016 19:53:16 +0000 (19:53 +0000)]
DAGCombiner: Reduce truncated shl width
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268094
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 29 Apr 2016 19:28:24 +0000 (19:28 +0000)]
[libFuzzer] fix docs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268092
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Fri, 29 Apr 2016 18:53:05 +0000 (18:53 +0000)]
Move coverage related code into a separate library.
Differential Revision: http://reviews.llvm.org/D19333
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268089
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 29 Apr 2016 18:49:55 +0000 (18:49 +0000)]
[libFuzzer] enable detect_leaks=1, add proper docs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268088
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Fri, 29 Apr 2016 18:42:55 +0000 (18:42 +0000)]
[MemorySSA] Fix bugs in walker; refactor unittests a bit.
This patch fixes two somewhat related bugs in MemorySSA's caching
walker. These bugs were found because D19695 brought up the problem
that we'd have defs cached to themselves, which is incorrect.
The bugs this fixes are:
- We would sometimes skip the nearest clobber of a MemoryAccess, because
we would query our cache for a given potential clobber before
checking if the potential clobber is the clobber we're looking for.
The cache entry for the potential clobber would point to the nearest
clobber *of the potential clobber*, so if that was a cache hit, we'd
ignore the potential clobber entirely.
- There are times (sometimes in DFS, sometimes in the getClobbering...
functions) where we would insert cache entries that say a def
clobbers itself.
There's a bit of common code between the fixes for the bugs, so they
aren't split out into multiple commits.
This patch also adds a few unit tests, and refactors existing tests a
bit to reduce the duplication of setup code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268087
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Apr 2016 18:40:34 +0000 (18:40 +0000)]
[ValueTracking] matchSelectPattern needs to be more careful around FP
matchSelectPattern attempts to see through casts which mask min/max
patterns from being more obvious. Under certain circumstances, it would
misidentify a sequence of instructions as a min/max because it assumed
that folding casts would preserve the result. This is not the case for
floating point <-> integer casts.
This fixes PR27575.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268086
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 29 Apr 2016 18:09:19 +0000 (18:09 +0000)]
Fix crash in PDB when loading corrupt file.
There are probably hundreds of crashers we can find by fuzzing
more. For now we do the simplest possible validation of the
block size. Later, more complicated validations can verify that
other fields of the super block such as directory size, number
of blocks, agree with the size of the file etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268084
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 29 Apr 2016 17:42:45 +0000 (17:42 +0000)]
Use SelectionDAG::getTargetConstant* helper functions. NFC.
Instead of SelectionDAG::getConstant directly to make it more obvious that we're creating target constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268074
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Tamazov [Fri, 29 Apr 2016 17:41:44 +0000 (17:41 +0000)]
[AMDGPU][llvm-mc] Add some missing testcases to trap.s
Differential Revision: http://reviews.llvm.org/D19602
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268073
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 29 Apr 2016 17:28:47 +0000 (17:28 +0000)]
Put PDB parsing code into a pdb namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268072
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Fri, 29 Apr 2016 17:22:58 +0000 (17:22 +0000)]
Refactor the PDB Stream reading interface.
The motivation for this change is that PDB has the notion of
streams and substreams. Substreams often consist of variable
length structures that are convenient to be able to treat as
guaranteed, contiguous byte arrays, whereas the streams they
are contained in are not necessarily so, as a single stream
could be spread across many discontiguous blocks.
So, when processing data from a substream, we want to be able
to assume that we have a contiguous byte array so that we can
cast pointers to variable length arrays and such.
This leads to the question of how to be able to read the same
data structure from either a stream or a substream using the
same interface, which is where this patch comes in.
We separate out the stream's read state from the underlying
representation, and introduce a `StreamReader` class. Then
we change the name of `PDBStream` to `MappedBlockStream`, and
introduce a second kind of stream called a `ByteStream` which is
simply a sequence of contiguous bytes. Finally, we update all
of the std::vectors in `PDBDbiStream` to use `ByteStream` instead
as a proof of concept.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268071
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Fri, 29 Apr 2016 17:19:10 +0000 (17:19 +0000)]
Do not read callee name when matching IR to profile as it is not used.
Summary: Callee name is not used to identify a callsite now, so do not read it during annotation.
Reviewers: davidxl, dnovillo
Subscribers: dnovillo, danielcdh, llvm-commits
Differential Revision: http://reviews.llvm.org/D19704
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268069
91177308-0d34-0410-b5e6-
96231b3b80d8
Geoff Berry [Fri, 29 Apr 2016 17:18:28 +0000 (17:18 +0000)]
[BasicAA] Treat llvm.assume as not accessing memory in getModRefBehavior(Function)
Reviewers: dberlin, chandlerc, hfinkel, reames, sanjoy
Subscribers: mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D19730
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268068
91177308-0d34-0410-b5e6-
96231b3b80d8
Haicheng Wu [Fri, 29 Apr 2016 17:06:44 +0000 (17:06 +0000)]
[MBP] Split placement and alignment into two functions. NFC.
Cut and Paste.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268067
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Tamazov [Fri, 29 Apr 2016 17:04:50 +0000 (17:04 +0000)]
Fixed/Recommitted r267733 "[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0 exclusion for SMRD."
Previously reverted by r267752.
r267733 review:
Differential Revision: http://reviews.llvm.org/D19342
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268066
91177308-0d34-0410-b5e6-
96231b3b80d8
Guozhi Wei [Fri, 29 Apr 2016 17:00:54 +0000 (17:00 +0000)]
[PPC] Enable shuffling of VSX vectors
This patch fixes PR27078 by enabling shuffling of vectors if VSX is available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268064
91177308-0d34-0410-b5e6-
96231b3b80d8
Amjad Aboud [Fri, 29 Apr 2016 16:54:18 +0000 (16:54 +0000)]
Fixed LIT tests that was broken after change in r268054.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268063
91177308-0d34-0410-b5e6-
96231b3b80d8
Filipe Cabecinhas [Fri, 29 Apr 2016 16:48:07 +0000 (16:48 +0000)]
Add operator- to Path's reverse_iterator. Needed for D19666
Reviewers: rafael, craig.topper, bogner
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D19724
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268062
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 29 Apr 2016 16:39:37 +0000 (16:39 +0000)]
auto-generate checks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268061
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 29 Apr 2016 16:22:25 +0000 (16:22 +0000)]
[InstCombine] add helper function for ICmp with constant canonicalization; NFCI
As suggested in http://reviews.llvm.org/D17859 , we should enhance this
to support vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268059
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 29 Apr 2016 16:16:49 +0000 (16:16 +0000)]
[mips][ias] Move createCpRestoreMemOp to MipsTargetStreamer. NFC.
Summary:
This removes the temporary call to isIntegratedAssemblerRequired() which was
added recently. It's effect is now acheived directly in the MipsTargetStreamer
hierarchy.
Reviewers: sdardis
Subscribers: dsanders, sdardis, llvm-commits
Differential Revision: http://reviews.llvm.org/D19715
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268058
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 29 Apr 2016 16:14:00 +0000 (16:14 +0000)]
Fix NDEBUG build: variables used only in debug code causing compile error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268057
91177308-0d34-0410-b5e6-
96231b3b80d8
Amjad Aboud [Fri, 29 Apr 2016 16:07:55 +0000 (16:07 +0000)]
Recommitted r264280 "Supporting all entities declared in lexical scope in LLVM debug info."
After fixing PR26942 in r267004.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268054
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Fri, 29 Apr 2016 16:07:47 +0000 (16:07 +0000)]
[mips][FastISel] A store is not a load.
Correct trivial error. One of the failing tests from PR/27458.
Reviewers: dsanders, vkalintiris, mcrosier
Differential Review: http://reviews.llvm.org/D19726
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268053
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Fri, 29 Apr 2016 16:04:18 +0000 (16:04 +0000)]
[PATCH] [mips] Fix forbidden slot hazard handling
MipsHazardSchedule has to determine what the next physical machine instruction
is to decide whether to insert a nop. In case where a branch with a forbidden
slot appears at the end of a basic block, first *real* instruction of the next
physical basic block was determined using getFirstNonDebugInstr().
Unfortunately this only considers DBG_VALUEs and not other transient opcodes
such as EHLABEL. As EHLABEL passes the SafeInForbiddenSlot predicate and the
instruction after the EHLABEL can be a CTI, we observed test failures in the
LNT testsuite.
Reviewers: dsanders
Differential Review: http://reviews.llvm.org/D19051
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268052
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 29 Apr 2016 15:49:13 +0000 (15:49 +0000)]
[Hexagon] Optimize addressing modes for load/store
Patch by Jyotsna Verma.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268051
91177308-0d34-0410-b5e6-
96231b3b80d8
Filipe Cabecinhas [Fri, 29 Apr 2016 15:22:48 +0000 (15:22 +0000)]
Unify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an option to the cmake build to enable them.
Summary:
Historically, we had a switch in the Makefiles for turning on "expensive
checks". This has never been ported to the cmake build, but the
(dead-ish) code is still around.
This will also make it easier to turn it on in buildbots.
Reviewers: chandlerc
Subscribers: jyknight, mzolotukhin, RKSimon, gberry, llvm-commits
Differential Revision: http://reviews.llvm.org/D19723
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268050
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Fri, 29 Apr 2016 15:08:05 +0000 (15:08 +0000)]
Remove leftover
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268049
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Fri, 29 Apr 2016 15:07:22 +0000 (15:07 +0000)]
cmake: Set LINK_POLLY_INTO_TOOLS to ON (v2)
This is the second try. This time we disable this feature if no Polly checkout
is available. For this to work we need to check if tools/polly is present
early enough that our decision is known before cmake generates Config/config.h.
With Polly checked into LLVM it was since a long time possible to compile
clang/opt/bugpoint with Polly support directly linked in, instead of only
providing Polly as a separate loadable module. This commit switches the
default from providing Polly as a module to linking Polly into tools, such
that it becomes unnecessary to load the Polly module when playing with Polly.
Such configuration has shown a lot more convenient for day-to-day Polly use.
This change does not impact the default behavior of any tool, if Polly is not
explicitly enabled when calling clang/opt/bugpoint Polly does not affect
compilation.
This change also does not impact normal LLVM/clang checkouts that do not
contain Polly.
Reviewers: jdoerfert, Meinersbur
Subscribers: pollydev, llvm-commits
Differential Revision: http://reviews.llvm.org/D19711
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268048
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 29 Apr 2016 14:53:54 +0000 (14:53 +0000)]
fix typo; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268045
91177308-0d34-0410-b5e6-
96231b3b80d8
Piotr Padlewski [Fri, 29 Apr 2016 14:52:12 +0000 (14:52 +0000)]
Add credit [Test commit]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268044
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 29 Apr 2016 14:34:26 +0000 (14:34 +0000)]
AMDGPU/SI: Add offset field to ds_permute/ds_bpermute instructions
Summary:
These instructions can add an immediate offset to the address, like other
ds instructions.
Reviewers: arsenm
Subscribers: arsenm, scchan
Differential Revision: http://reviews.llvm.org/D19233
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268043
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 29 Apr 2016 13:43:45 +0000 (13:43 +0000)]
[mips][ias] Split expandMemInst between MipsAsmParser and MipsTargetStreamer. Almost NFC.
Summary:
The portion in MipsAsmParser is responsible for figuring out which expansion to
use, while the portion in MipsTargetStreamer is responsible for emitting it.
This allows us to remove the call to isIntegratedAssemblerRequired() which is
currently ensuring the effect of .cprestore only occurs when writing objects.
The small functional change is that the memory offsets are now correctly
printed as signed values.
Reviewers: sdardis
Subscribers: dsanders, sdardis, llvm-commits
Differential Revision: http://reviews.llvm.org/D19714
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268042
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 29 Apr 2016 13:33:12 +0000 (13:33 +0000)]
[mips][ias] Moved most instruction emission helpers to MipsTargetStreamer. NFC.
Summary:
* Moved all the emit*() helpers to MipsTargetStreamer.
* Moved createNop() to MipsTargetStreamer as emitNop() and emitEmptyDelaySlot().
This instruction has been split to distinguish between the 'nop' instruction
and the nop used in delay slots which is sometimes a different nop to the
'nop' instruction (e.g. for short delay slots on microMIPS).
* Moved createAddu() to MipsTargetStreamer as emitAddu().
* Moved createAppropriateDSLL() to MipsTargetStreamer as emitDSLL().
Reviewers: sdardis
Subscribers: dsanders, sdardis, llvm-commits
Differential Revision: http://reviews.llvm.org/D19712
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268041
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Fri, 29 Apr 2016 13:03:40 +0000 (13:03 +0000)]
cmake: Fix grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268038
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 29 Apr 2016 12:44:07 +0000 (12:44 +0000)]
[mips][ias] Make section sizes a multiple of the alignment.
Reviewers: sdardis
Subscribers: dsanders, llvm-commits, sdardis
Differential Revision: http://reviews.llvm.org/D19008
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268036
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Fri, 29 Apr 2016 12:38:24 +0000 (12:38 +0000)]
Revert "cmake: Set LINK_POLLY_INTO_TOOLS to ON"
This reverts commit r268033 as it breaks some buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268035
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Fri, 29 Apr 2016 12:23:11 +0000 (12:23 +0000)]
cmake: Set LINK_POLLY_INTO_TOOLS to ON
With Polly checked into LLVM it was since a long time possible to compile
clang/opt/bugpoint with Polly support directly linked in, instead of only
providing Polly as a separate loadable module. This commit switches the
default from providing Polly as a module to linking Polly into tools, such
that it becomes unnecessary to load the Polly module when playing with Polly.
Such configuration has shown a lot more convenient for day-to-day Polly use.
This change does not impact the default behavior of any tool, if Polly is not
explicitly enabled when calling clang/opt/bugpoint Polly does not affect
compilation.
This change also does not impact normal LLVM/clang checkouts that do not
contain Polly.
Reviewers: jdoerfert, Meinersbur, sebpop, etherzhhb, zinob, hiraditya
Subscribers: pollydev, llvm-commits
Differential Revision: http://reviews.llvm.org/D19711
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268033
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 29 Apr 2016 09:13:53 +0000 (09:13 +0000)]
[InstCombine][SSE] Added x86 pshufb undef mask tests
FIXME: We currently don't support folding constant pshufb shuffle masks containing undef elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268016
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikolay Haustov [Fri, 29 Apr 2016 09:02:30 +0000 (09:02 +0000)]
AMDGPU/SI: Assembler: Unify parsing/printing of operands.
Summary:
The goal is for each operand type to have its own parse function and
at the same time share common code for tracking state as different
instruction types share operand types (e.g. glc/glc_flat, etc).
Introduce parseAMDGPUOperand which can parse any optional operand.
DPP and Clamp/OMod have custom handling for now. Sam also suggested
to have class hierarchy for operand types instead of table. This
can be done in separate change.
Remove parseVOP3OptionalOps, parseDS*OptionalOps, parseFlatOptionalOps,
parseMubufOptionalOps, parseDPPOptionalOps.
Reduce number of definitions of AsmOperand's and MatchClasses' by using common base class.
Rename AsmMatcher/InstPrinter methods accordingly.
Print immediate type when printing parsed immediate operand.
Use 'off' if offset/index register is unused instead of skipping it to make it more readable (also agreed with SP3).
Update tests.
Reviewers: tstellarAMD, SamWot, artem.tamazov
Subscribers: qcolombet, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D19584
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268015
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 29 Apr 2016 08:53:35 +0000 (08:53 +0000)]
[InstCombine][SSE] Regenerated x86 pshufb tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268014
91177308-0d34-0410-b5e6-
96231b3b80d8
Zlatko Buljan [Fri, 29 Apr 2016 08:36:54 +0000 (08:36 +0000)]
[mips][microMIPS] Fix offsets for LLE, LWE, SBE, SCE and SHE instructions
Differential Revision: http://reviews.llvm.org/D18645
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268012
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Apr 2016 08:07:22 +0000 (08:07 +0000)]
[GlobalOpt] Propagate operand bundles
We neglected to transfer operand bundles for some transforms. These
were found via inspection, I'll try to come up with some test cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268011
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Apr 2016 08:07:20 +0000 (08:07 +0000)]
[InstCombine] Propagate operand bundles
We neglected to transfer operand bundles for some transforms. These
were found via inspection, I'll try to come up with some test cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268010
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Apr 2016 07:22:36 +0000 (07:22 +0000)]
[DeadArgumentElimination] Propagate operand bundles to promoted call sites
We neglected to transfer operand bundles when performing argument
promotion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268008
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Fri, 29 Apr 2016 07:16:00 +0000 (07:16 +0000)]
[LoopDist] Add missing RUN line in test from r268006
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268007
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Fri, 29 Apr 2016 07:10:46 +0000 (07:10 +0000)]
[LoopDist] Also emit optimization remark on success (-Rpass=)
The option -Rpass=loop-distribute now reports the loops that were
distributed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268006
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Fri, 29 Apr 2016 07:10:39 +0000 (07:10 +0000)]
[LoopDist] Pass 'Function' to main class. NFC
Next patch will add another use for 'Function' inside the class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268005
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Apr 2016 07:09:51 +0000 (07:09 +0000)]
[SLPVectorizer] Add operand bundles to vectorized functions
SLPVectorizing a call site should result in further propagation of its
bundles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268004
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Apr 2016 07:09:48 +0000 (07:09 +0000)]
[LoopVectorize] Add operand bundles to vectorized functions
Also, do not crash when calculating a cost model for loop-invariant
token values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268003
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 29 Apr 2016 06:25:10 +0000 (06:25 +0000)]
AMDGPU: Stop reporting an addressing mode for unknown addrspace
This was being treated the same as private, which has an immediate
offset. For unknown, it probably means it's for a computation not
actually being used for accessing memory, so it should not have a
nontrivial addressing mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268002
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Fri, 29 Apr 2016 06:17:47 +0000 (06:17 +0000)]
DivergenceAnalysis: Fix crash with unreachable blocks
Unreachable blocks may not be in the dominator tree,
so don't crash on them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268001
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 29 Apr 2016 04:56:12 +0000 (04:56 +0000)]
[ArgumentPromotion] Propagate operand bundles to promoted call sites
We neglected to transfer operand bundles when performing argument
promotion.
This fixes PR27568.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267986
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 29 Apr 2016 04:22:28 +0000 (04:22 +0000)]
[X86] Remove unnecessary header file containing a small class. It was only included in one place. Just define the class directly in the cpp file. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267985
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 29 Apr 2016 04:22:26 +0000 (04:22 +0000)]
[X86] Include X86MCTargetDesc.h directly in X86Disassembler.cpp instead of duplicating parts of it. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267984
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zolotukhin [Fri, 29 Apr 2016 03:31:25 +0000 (03:31 +0000)]
[PR25281] Remove AAResultsWrapper from preserved analyses of loop vectorizer.
We don't preserve AAResults, because, for one, we don't preserve SCEV-AA.
That fixes PR25281.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267980
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Apr 2016 03:01:49 +0000 (03:01 +0000)]
Remove stale documentation on -no-aa
The pass itself was removed in rL247167.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267978
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 29 Apr 2016 02:44:54 +0000 (02:44 +0000)]
RegisterPressure: Fix default lanemask for missing regunit intervals
In case of missing live intervals for a physical registers
getLanesWithProperty() would report 0 which was not a safe default in
all situations. Add a parameter to pass in a safe default.
No testcase because in-tree targets do not skip computing register unit
live intervals.
Also cleanup the getXXX() functions to not perform the
RequireLiveIntervals checks anymore so we do not even need to return
safe defaults.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267977
91177308-0d34-0410-b5e6-
96231b3b80d8