OSDN Git Service

android-x86/external-llvm.git
8 years ago[LowerGuardIntrinsics] Preserve calling conv when lowering
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

8 years agoadd minimal test to show dropped metadata
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

8 years agoremove the metadata added with r267827
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

8 years agoReapply r268107 after fixing a bug breaks debug build.
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

8 years agoMark guards on true as "trivially dead"
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

8 years ago[CMake] [Xcode] Improving Xcode toolchain generation to support distribution targets
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

8 years agoclean up documentation comments; NFC
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

8 years ago[MBP] Use Function::optForSize() instead of checking OptimizeForSize directly.
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

8 years ago[EarlyCSE] Simplify guard intrinsics
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

8 years agoAMDGPU: Fix crash with unreachable terminators.
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

8 years agoRevert r268107 -- debug build failure
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

8 years ago[InstCombine][SSE] PSHUFB to shuffle combine to use general aggregate elements. NFCI.
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

8 years ago[Orc] Add ORC lazy-compilation support for AArch64.
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

8 years ago[Orc] Make sure we don't drop the internal error in OrcRemoteTargetClient when
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

8 years ago[Docs] Refer to the CMakePrimer from CMake doc
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

8 years ago[ValueTracking] Make the code in lookThroughCast
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

8 years ago[inliner]: Refactor inline deferring logic into its own method /NFC
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

8 years agoDifferential Revision: http://reviews.llvm.org/D19733
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

8 years agoAMDGPU: Add kernarg.segment.ptr intrinsic
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

8 years ago[InstCombine] Determine the result of a select based on a dominating condition.
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

8 years agoFix comment
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

8 years ago[InstCombine] clean up; NFC
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

8 years ago[Docs] Add CMake Primer document
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

8 years agoAMDGPU/SI: Move post regalloc run of SIShrinkInstructions
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

8 years agoDAGCombiner: Reduce truncated shl width
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

8 years ago[libFuzzer] fix docs
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

8 years agoMove coverage related code into a separate library.
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

8 years ago[libFuzzer] enable detect_leaks=1, add proper docs
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

8 years ago[MemorySSA] Fix bugs in walker; refactor unittests a bit.
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

8 years ago[ValueTracking] matchSelectPattern needs to be more careful around FP
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

8 years agoFix crash in PDB when loading corrupt file.
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

8 years agoUse SelectionDAG::getTargetConstant* helper functions. NFC.
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

8 years ago[AMDGPU][llvm-mc] Add some missing testcases to trap.s
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

8 years agoPut PDB parsing code into a pdb namespace.
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

8 years agoRefactor the PDB Stream reading interface.
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

8 years agoDo not read callee name when matching IR to profile as it is not used.
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

8 years ago[BasicAA] Treat llvm.assume as not accessing memory in getModRefBehavior(Function)
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

8 years ago[MBP] Split placement and alignment into two functions. NFC.
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

8 years agoFixed/Recommitted r267733 "[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0...
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

8 years ago[PPC] Enable shuffling of VSX vectors
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

8 years agoFixed LIT tests that was broken after change in r268054.
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

8 years agoAdd operator- to Path's reverse_iterator. Needed for D19666
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

8 years agoauto-generate checks
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

8 years ago[InstCombine] add helper function for ICmp with constant canonicalization; NFCI
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

8 years ago[mips][ias] Move createCpRestoreMemOp to MipsTargetStreamer. NFC.
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

8 years agoFix NDEBUG build: variables used only in debug code causing compile error
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

8 years agoRecommitted r264280 "Supporting all entities declared in lexical scope in LLVM debug...
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

8 years ago[mips][FastISel] A store is not a load.
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

8 years ago[PATCH] [mips] Fix forbidden slot hazard handling
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

8 years ago[Hexagon] Optimize addressing modes for load/store
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

8 years agoUnify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an option to the cmake...
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

8 years agoRemove leftover
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

8 years agocmake: Set LINK_POLLY_INTO_TOOLS to ON (v2)
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

8 years agofix typo; NFC
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

8 years agoAdd credit [Test commit]
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

8 years agoAMDGPU/SI: Add offset field to ds_permute/ds_bpermute instructions
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

8 years ago[mips][ias] Split expandMemInst between MipsAsmParser and MipsTargetStreamer. Almost...
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

8 years ago[mips][ias] Moved most instruction emission helpers to MipsTargetStreamer. NFC.
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

8 years agocmake: Fix grammar
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

8 years ago[mips][ias] Make section sizes a multiple of the alignment.
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

8 years agoRevert "cmake: Set LINK_POLLY_INTO_TOOLS to ON"
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

8 years agocmake: Set LINK_POLLY_INTO_TOOLS to ON
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

8 years ago[InstCombine][SSE] Added x86 pshufb undef mask tests
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

8 years agoAMDGPU/SI: Assembler: Unify parsing/printing of operands.
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

8 years ago[InstCombine][SSE] Regenerated x86 pshufb tests
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

8 years ago[mips][microMIPS] Fix offsets for LLE, LWE, SBE, SCE and SHE instructions
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

8 years ago[GlobalOpt] Propagate operand bundles
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

8 years ago[InstCombine] Propagate operand bundles
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

8 years ago[DeadArgumentElimination] Propagate operand bundles to promoted call sites
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

8 years ago[LoopDist] Add missing RUN line in test from r268006
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

8 years ago[LoopDist] Also emit optimization remark on success (-Rpass=)
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

8 years ago[LoopDist] Pass 'Function' to main class. NFC
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

8 years ago[SLPVectorizer] Add operand bundles to vectorized functions
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

8 years ago[LoopVectorize] Add operand bundles to vectorized functions
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

8 years agoAMDGPU: Stop reporting an addressing mode for unknown addrspace
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

8 years agoDivergenceAnalysis: Fix crash with unreachable blocks
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

8 years ago[ArgumentPromotion] Propagate operand bundles to promoted call sites
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

8 years ago[X86] Remove unnecessary header file containing a small class. It was only included...
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

8 years ago[X86] Include X86MCTargetDesc.h directly in X86Disassembler.cpp instead of duplicatin...
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

8 years ago[PR25281] Remove AAResultsWrapper from preserved analyses of loop vectorizer.
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

8 years agoRemove stale documentation on -no-aa
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

8 years agoRegisterPressure: Fix default lanemask for missing regunit intervals
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

8 years agoRegisterPressure: Cannot produce dead (subregister) defs anymore
Matthias Braun [Fri, 29 Apr 2016 02:44:48 +0000 (02:44 +0000)]
RegisterPressure: Cannot produce dead (subregister) defs anymore

With the DetectDeadLanes pass in place we cannot run into situations
anymore where defs suddenly become dead.
Also add a missing check so we do not try to add an undef flag to a
physreg (found by visual inspection, no failing test).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267976 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix build by casting to the proper int type.
Ivan Krasin [Fri, 29 Apr 2016 02:09:57 +0000 (02:09 +0000)]
Fix build by casting to the proper int type.

Reviewers: eugenis

Differential Revision: http://reviews.llvm.org/D19706

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267974 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-cov] Don't emit 'nan%' in reports
Vedant Kumar [Fri, 29 Apr 2016 01:31:49 +0000 (01:31 +0000)]
[llvm-cov] Don't emit 'nan%' in reports

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267971 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LoopVectorize] Keep hints from original loop on the vector loop
Hal Finkel [Fri, 29 Apr 2016 01:27:40 +0000 (01:27 +0000)]
[LoopVectorize] Keep hints from original loop on the vector loop

We need to keep loop hints from the original loop on the new vector loop.
Failure to do this meant that, for example:

  void foo(int *b) {
  #pragma clang loop unroll(disable)
    for (int i = 0; i < 16; ++i)
      b[i] = 1;
  }

this loop would be unrolled. Why? Because we'd vectorize it, thus dropping the
hints that unrolling should be disabled, and then we'd unroll it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267970 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[msan] Handle vector compare x86 intrinsics.
Evgeniy Stepanov [Fri, 29 Apr 2016 01:19:52 +0000 (01:19 +0000)]
[msan] Handle vector compare x86 intrinsics.

This handles SSE and SSE2 cmp_* and comiXX_* intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267966 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-pdbdump] Try to appease the ASan bot
David Majnemer [Fri, 29 Apr 2016 01:00:17 +0000 (01:00 +0000)]
[llvm-pdbdump] Try to appease the ASan bot

We didn't check that the file was large enough to hold a super block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267965 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86] Use nested switches to vary the operand to helper functions that were previousl...
Craig Topper [Fri, 29 Apr 2016 00:51:30 +0000 (00:51 +0000)]
[X86] Use nested switches to vary the operand to helper functions that were previously called in multiple cases. This seems to help the inliner reduce code. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267964 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-pdbdump] Restore error messages, handle bad block sizes
David Majnemer [Thu, 28 Apr 2016 23:47:27 +0000 (23:47 +0000)]
[llvm-pdbdump] Restore error messages, handle bad block sizes

We lost the ability to report errors, bring it back.  Also, correctly
validate the block size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267955 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoLiveIntervalAnalysis: Remove LiveVariables requirement
Matthias Braun [Thu, 28 Apr 2016 23:42:51 +0000 (23:42 +0000)]
LiveIntervalAnalysis: Remove LiveVariables requirement

This requirement was a huge hack to keep LiveVariables alive because it
was optionally used by TwoAddressInstructionPass and PHIElimination.
However we have AnalysisUsage::addUsedIfAvailable() which we can use in
those passes.

This re-applies r260806 with LiveVariables manually added to PowerPC to
hopefully not break the stage 2 bots this time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267954 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-pdbdump] Correctly read data larger than a block
David Majnemer [Thu, 28 Apr 2016 23:24:23 +0000 (23:24 +0000)]
[llvm-pdbdump] Correctly read data larger than a block

A bug was introduced when the code was refactored which resulted in a
bad memory access.

This fixes PR27565.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267953 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LoopDist] Emit optimization remarks (-Rpass*)
Adam Nemet [Thu, 28 Apr 2016 23:08:32 +0000 (23:08 +0000)]
[LoopDist] Emit optimization remarks (-Rpass*)

I closely followed the precedents set by the vectorizer:

* With -Rpass-missed, the loop is reported with further details pointing
to -Rpass--analysis.

* -Rpass-analysis reports the details why distribution has failed.

* Regardless of -Rpass*, when distribution fails for a loop where
distribution was forced with the pragma, a warning is produced according
to -Wpass-failed.  In this case the analysis info is also printed even
without -Rpass-analysis.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267952 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LoopDist] Improve debug messages
Adam Nemet [Thu, 28 Apr 2016 23:08:30 +0000 (23:08 +0000)]
[LoopDist] Improve debug messages

The next patch will start using these for -Rpass-analysis so they won't
be internal-only anymore.

Move the 'Skipping; ' prefix that some of the message are using into the
'fail' function.  We don't want to include this prefix in
the -Rpass-analysis report.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267951 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LoopDist] Add helper to print debug message when distribution fails. NFC
Adam Nemet [Thu, 28 Apr 2016 23:08:27 +0000 (23:08 +0000)]
[LoopDist] Add helper to print debug message when distribution fails.  NFC

This will form the basis to emit optimization remarks (-Rpass*).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267950 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Inliner] Preserve llvm.mem.parallel_loop_access metadata
Hal Finkel [Thu, 28 Apr 2016 23:00:04 +0000 (23:00 +0000)]
[Inliner] Preserve llvm.mem.parallel_loop_access metadata

When inlining a call site with llvm.mem.parallel_loop_access metadata, this
metadata needs to be propagated to all cloned memory-accessing instructions.
Otherwise, inlining parts of the loop body will invalidate the annotation.

With this functionality, we now vectorize the following as expected:

  void Body(int *res, int *c, int *d, int *p, int i) {
    res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];
  }

  void Test(int *res, int *c, int *d, int *p, int n) {
    int i;

  #pragma clang loop vectorize(assume_safety)
    for (i = 0; i < 1600; i++) {
      Body(res, c, d, p, i);
    }
  }

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267949 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRead discriminators correctly from object file.
Dehao Chen [Thu, 28 Apr 2016 22:09:37 +0000 (22:09 +0000)]
Read discriminators correctly from object file.

Summary:
This is the follow-up patch for http://reviews.llvm.org/D19436
* Update the discriminator reading algorithm to match the assignment algorithm.
* Add test to cover the new algorithm.

Reviewers: dnovillo, echristo, dblaikie

Subscribers: danielcdh, dblaikie, echristo, llvm-commits, joker.eph

Differential Revision: http://reviews.llvm.org/D19522

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267945 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[CodeGen] Remove extra ';'
Marcin Koscielnicki [Thu, 28 Apr 2016 21:49:46 +0000 (21:49 +0000)]
[CodeGen] Remove extra ';'

Squashes a -Wpedantic warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267944 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[PowerPC] Fix the EH_SjLj_Setup pseudo.
Marcin Koscielnicki [Thu, 28 Apr 2016 21:24:37 +0000 (21:24 +0000)]
[PowerPC] Fix the EH_SjLj_Setup pseudo.

This instruction is just a control flow marker - it should not
actually exist in the object file.  Unfortunately, nothing catches
it before it gets to AsmPrinter.  If integrated assembler is used,
it's considered to be a normal 4-byte instruction, and emitted as
an all-0 word, crashing the program.  With external assembler,
a comment is emitted.

Fixed by setting Size to 0 and handling it in MCCodeEmitter - this
means the comment will still be emitted if integrated assembler
is not used.

This broke an ASan test, which has been disabled for a long time
as a result (see the discussion on D19657).  We can reenable it
once this lands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267943 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix a bug in llvm-objdump for -private-headers printing the LC_CODE_SIGNATURE Mach...
Kevin Enderby [Thu, 28 Apr 2016 21:07:20 +0000 (21:07 +0000)]
Fix a bug in llvm-objdump for -private-headers printing the LC_CODE_SIGNATURE Mach-O load command.

rdar://25985653

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267940 91177308-0d34-0410-b5e6-96231b3b80d8