OSDN Git Service

android-x86/external-llvm.git
7 years agoSet the default type for .bss.foo.
Rafael Espindola [Wed, 22 Mar 2017 13:57:16 +0000 (13:57 +0000)]
Set the default type for .bss.foo.

This matches gas and is part of pr31888.

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

7 years agoProduce INIT_ARRAY for sections named .init_array.*
Rafael Espindola [Wed, 22 Mar 2017 13:35:41 +0000 (13:35 +0000)]
Produce INIT_ARRAY for sections named .init_array.*

These sections are merged together by the linker, so they should have
the same time.

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

7 years ago[AMDGPU][MC] Fix for Bug 28204 + LIT tests
Dmitry Preobrazhensky [Wed, 22 Mar 2017 13:31:01 +0000 (13:31 +0000)]
[AMDGPU][MC] Fix for Bug 28204 + LIT tests

Fixed v_mad_i64_i32/u64_u32 encoding

Reviewers: artem.tamazov

Differential Revision: https://reviews.llvm.org/D30828

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

7 years ago[CMake] Use variable interpolation instead of string concatenation
Serge Pavlov [Wed, 22 Mar 2017 12:06:11 +0000 (12:06 +0000)]
[CMake] Use variable interpolation instead of string concatenation

String concatenation used in r298336 allowed to get rid of extra spaces
but also resulted in lost delimiter spaces, so use previous method.

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

7 years ago[X86] Add multiply by constant tests (PR28513)
Simon Pilgrim [Wed, 22 Mar 2017 12:03:56 +0000 (12:03 +0000)]
[X86] Add multiply by constant tests (PR28513)

As discussed on PR28513, add tests for constant multiplication by constants between 1 to 32

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

7 years agor286814 resulted that CallPenalty can be subtracted twice:
Evgeny Astigeevich [Wed, 22 Mar 2017 12:01:57 +0000 (12:01 +0000)]
r286814 resulted that CallPenalty can be subtracted twice:
- First time, during calculation of the cost in InlineCost.cpp
- Second time, during calculation of the cost in Inliner.cpp

This patches fixes this.

Differential Revision: https://reviews.llvm.org/D31137

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

7 years ago[X86] Remove unnecessary duplicate code (PR30649). NFCI.
Simon Pilgrim [Wed, 22 Mar 2017 11:23:49 +0000 (11:23 +0000)]
[X86] Remove unnecessary duplicate code (PR30649). NFCI.

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

7 years agoRevert "[ScalarEvolution] Predicate implication from operations"
Max Kazantsev [Wed, 22 Mar 2017 07:50:33 +0000 (07:50 +0000)]
Revert "[ScalarEvolution] Predicate implication from operations"

This reverts commit rL298481

Fails clang-with-lto-ubuntu build.

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

7 years ago[ValueTracking] Make sure we keep range metadata information when calculating known...
Craig Topper [Wed, 22 Mar 2017 07:22:49 +0000 (07:22 +0000)]
[ValueTracking] Make sure we keep range metadata information when calculating known bits for calls to bitreverse intrinsic.

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

7 years ago[ValueTracking] use setLowBits/setHighBits/setBitsFrom to replace |= getHighBits...
Craig Topper [Wed, 22 Mar 2017 06:19:37 +0000 (06:19 +0000)]
[ValueTracking] use setLowBits/setHighBits/setBitsFrom to replace |= getHighBits/getLowBits. NFCI

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

7 years ago[X86] Remove an unused function from release builds. Reported by gccs unused function...
Craig Topper [Wed, 22 Mar 2017 06:07:58 +0000 (06:07 +0000)]
[X86] Remove an unused function from release builds. Reported by gccs unused function warning.

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

7 years ago[SystemZ] Don't drop any operands in expandZExtPseudo()
Jonas Paulsson [Wed, 22 Mar 2017 06:03:32 +0000 (06:03 +0000)]
[SystemZ]  Don't drop any operands in expandZExtPseudo()

Make sure that any operands, e.g. of an implicit def of a super reg is
transferred to the new instruction.

Review: Ulrich Weigand

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

7 years agoRevert "[ARM] Recommit the glueless lowering of addc/adde in Thumb1, including the...
Vitaly Buka [Wed, 22 Mar 2017 05:07:44 +0000 (05:07 +0000)]
Revert "[ARM] Recommit the glueless lowering of addc/adde in Thumb1, including the amended (no UB anymore) fix for adding/subtracting -2147483648."

Fails check-llvm with ubsan

This reverts commit r298417.

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

7 years ago[ScalarEvolution] Predicate implication from operations
Max Kazantsev [Wed, 22 Mar 2017 04:48:46 +0000 (04:48 +0000)]
[ScalarEvolution] Predicate implication from operations

This patch allows SCEV predicate analysis to prove implication of some expression predicates
from context predicates related to arguments of those expressions.
It introduces three new rules:

For addition:
  (A >X && B >= 0) || (B >= 0 && A > X) ===> (A + B) > X.

For division:
  (A > X) && (0 < B <= X + 1) ===> (A / B > 0).
  (A > X) && (-B <= X < 0) ===> (A / B >= 0).

Using these rules, SCEV is able to prove facts like "if X > 1 then X / 2 > 0".
They can also be combined with the same context, to prove more complex expressions like
"if X > 1 then X/2 + 1 > 1".

Diffirential Revision: https://reviews.llvm.org/D30887

Reviewed by: sanjoy

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

7 years agolit: remove python2-isms
Brian Gesiak [Wed, 22 Mar 2017 04:23:01 +0000 (04:23 +0000)]
lit: remove python2-isms

Summary:
`assert.assertItemEqual` went away in Python 3. Seeing how lists
are ordered, comparing a list against each other should work just
as well.

Patch by @jbergstroem (Johan Bergström).

Reviewers: modocache, gparker42

Reviewed By: modocache

Differential Revision: https://reviews.llvm.org/D31229

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

7 years ago[InstCombine] Teach SimplifyDemandedUseBits to shrink Constants on the left side...
Craig Topper [Wed, 22 Mar 2017 04:03:53 +0000 (04:03 +0000)]
[InstCombine] Teach SimplifyDemandedUseBits to shrink Constants on the left side of subtracts

Summary: Subtracts can have constants on the left side, but we don't shrink them based on demanded bits. This patch fixes that to match the right hand side.

Reviewers: davide, majnemer, spatel, sanjoy, hfinkel

Reviewed By: spatel

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D31119

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

7 years ago[codeview] Use separate records for LF_SUBSTR_LIST and LF_ARGLIST
Reid Kleckner [Wed, 22 Mar 2017 01:37:38 +0000 (01:37 +0000)]
[codeview] Use separate records for LF_SUBSTR_LIST and LF_ARGLIST

They are structurally the same, but now we need to distinguish them
because one record lives in the IPI stream and the other lives in TPI.

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

7 years ago[GlobalISel]: Create VREGs for ConstantInt args
Aditya Nandakumar [Wed, 22 Mar 2017 01:16:39 +0000 (01:16 +0000)]
[GlobalISel]: Create VREGs for ConstantInt args

This patch changes the behavior of IRTranslating intrinsics where we
now create VREG + G_CONSTANT for ConstantInt values. We already do this
for FloatingPoint values. This makes it easier for the backends to
select code and it won't have to de-duplicate creation+selection of
constants.

Reviewed by: ab

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

7 years agoDon't compose DWARF expressions with multiple subregisters.
Adrian Prantl [Wed, 22 Mar 2017 01:16:01 +0000 (01:16 +0000)]
Don't compose DWARF expressions with multiple subregisters.

If a register location can only be described by a complex expression
(i.e., multiple subregisters) it doesn't safely compose with another
complex expression. For example, it is not possible to apply a
DW_OP_deref operation to multiple DW_OP_pieces.

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

7 years agoDwarfExpression: Defer emitting DWARF register operations
Adrian Prantl [Wed, 22 Mar 2017 01:15:57 +0000 (01:15 +0000)]
DwarfExpression: Defer emitting DWARF register operations
until the rest of the expression is known.

This is still an NFC refactoring in preparation of a subsequent bugfix.

This reapplies r298388 with a bugfix for non-physical frame registers.

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

7 years agoMake test more robust
Adam Nemet [Tue, 21 Mar 2017 23:50:52 +0000 (23:50 +0000)]
Make test more robust

Set the flags on FAdd locally rather than assuming nothing will change it from
way earlier in the test.

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

7 years agoResubmit "Improve StringMap iterator support."
Zachary Turner [Tue, 21 Mar 2017 23:45:03 +0000 (23:45 +0000)]
Resubmit "Improve StringMap iterator support."

The issue was trying to advance past the end of the iterator
when computing the end() iterator.

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

7 years ago[GlobalISel] Update DBG_VALUEs referencing DCE'd instructions.
Ahmed Bougacha [Tue, 21 Mar 2017 23:42:54 +0000 (23:42 +0000)]
[GlobalISel] Update DBG_VALUEs referencing DCE'd instructions.

Quentin points out that r298358 would cause us to emit different code
with debug info.  That's a big no-no; also erase the instructions that
only live thanks to DBG_VALUE users.

Adrian explained how this is an existing problem and an OK thing to do:
clang has allocas for all variables so shouldn't be affected at -O0, but
swift uses a bit of inlineasm to explicitly keep values live for the
purpose of debug info quality.  I'm not sure there is a better scheme.

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

7 years ago[GlobalISel] Don't translate br to layout successor.
Ahmed Bougacha [Tue, 21 Mar 2017 23:42:50 +0000 (23:42 +0000)]
[GlobalISel] Don't translate br to layout successor.

MI can represent fallthrough to layout successor blocks, and our
post-isel representation uses that extensively.

We might as well use it too, to avoid translating and carrying along
unnecessary branches.

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

7 years ago[IR] Remove validAlignment and validPointer methods DataLayout as they aren't used.
Craig Topper [Tue, 21 Mar 2017 23:04:23 +0000 (23:04 +0000)]
[IR] Remove validAlignment and validPointer methods DataLayout as they aren't used.

I don't think validAlignment has been used since r34358 in 2007. I think validPointer was copied from validAlignment some time later, but it definitely wasn't used in the first commit that contained it.

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

7 years agoAMDGPU: Remove hasSideEffects from SI_RETURN_TO_EPILOG
Matt Arsenault [Tue, 21 Mar 2017 22:28:48 +0000 (22:28 +0000)]
AMDGPU: Remove hasSideEffects from SI_RETURN_TO_EPILOG

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

7 years agoGlobalISel: respect BooleanContents when extending i1.
Tim Northover [Tue, 21 Mar 2017 22:22:05 +0000 (22:22 +0000)]
GlobalISel: respect BooleanContents when extending i1.

The world isn't just x86 & ARM, some targets need to store -1 into the byte
when legalizing a bool store.

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

7 years agoAMDGPU: Rename SI_RETURN
Matt Arsenault [Tue, 21 Mar 2017 22:18:10 +0000 (22:18 +0000)]
AMDGPU: Rename SI_RETURN

This is used for a specific type of return to a shader part's
epilog code. Rename to try avoiding confusion from a true
call's return.

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

7 years agoSplitKit: Fix subreg copy related problems
Matthias Braun [Tue, 21 Mar 2017 21:58:08 +0000 (21:58 +0000)]
SplitKit: Fix subreg copy related problems

Fix two problems related to r298025:
- SplitKit would create duplicate VNIs in some cases leading to crashs
  when hoisting copies.
- VirtRegMap could fail expanding copies at the beginning of a basic
  block.

This fixes http://llvm.org/PR32353

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

7 years agoAMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel
Matt Arsenault [Tue, 21 Mar 2017 21:39:51 +0000 (21:39 +0000)]
AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel

Currently the default C calling convention functions are treated
the same as compute kernels. Make this explicit so the default
calling convention can be changed to a non-kernel.

Converted with perl -pi -e 's/define void/define amdgpu_kernel void/'
on the relevant test directories (and undoing in one place that actually
wanted a non-kernel).

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

7 years agoRevert "Improve StringMap iterator support."
Zachary Turner [Tue, 21 Mar 2017 21:23:57 +0000 (21:23 +0000)]
Revert "Improve StringMap iterator support."

This is causing crashes in clang, so reverting until the problem
is figured out.

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

7 years agoGlobalISel: widen booleans by zero-extending to a byte.
Tim Northover [Tue, 21 Mar 2017 21:12:04 +0000 (21:12 +0000)]
GlobalISel: widen booleans by zero-extending to a byte.

A bool is represented by a single byte, which the ARM ABI requires to be either
0 or 1. So we cannot use G_ANYEXT when legalizing the type.

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

7 years agoFix clang errors caused by StringMap iterator changes.
Zachary Turner [Tue, 21 Mar 2017 20:41:51 +0000 (20:41 +0000)]
Fix clang errors caused by StringMap iterator changes.

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

7 years agoImprove StringMap iterator support.
Zachary Turner [Tue, 21 Mar 2017 20:27:36 +0000 (20:27 +0000)]
Improve StringMap iterator support.

StringMap's iterators did not support LLVM's
iterator_facade_base, which made it unusable in various
STL algorithms or with some of our range adapters.
This patch makes both StringMapConstIterator as well as
StringMapIterator support iterator_facade_base.

With this in place, it is easy to make an iterator adapter
that iterates over only keys, and whose value_type is
StringRef.  So I add StringMapKeyIterator as well, and
provide the method StringMap::keys() that returns a
range that can be iterated.

Differential Revision: https://reviews.llvm.org/D31171

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

7 years agoRemove eol-style:native from StringMap.h
Zachary Turner [Tue, 21 Mar 2017 20:21:56 +0000 (20:21 +0000)]
Remove eol-style:native from StringMap.h

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

7 years ago[InstCombine] regenerate checks; NFC
Sanjay Patel [Tue, 21 Mar 2017 20:14:38 +0000 (20:14 +0000)]
[InstCombine] regenerate checks; NFC

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

7 years agoLet llvm.objectsize be conservative with null pointers
George Burgess IV [Tue, 21 Mar 2017 20:08:59 +0000 (20:08 +0000)]
Let llvm.objectsize be conservative with null pointers

This adds a parameter to @llvm.objectsize that makes it return
conservative values if it's given null.

This fixes PR23277.

Differential Revision: https://reviews.llvm.org/D28494

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

7 years agoDo not inline hot callsites for samplepgo in thinlto compile phase.
Dehao Chen [Tue, 21 Mar 2017 19:55:36 +0000 (19:55 +0000)]
Do not inline hot callsites for samplepgo in thinlto compile phase.

Summary: Because SamplePGO passes will be invoked twice in ThinLTO build: once at compile phase, the other at backend. We want to make sure the IR at the 2nd phase matches the hot part in profile, thus we do not want to inline hot callsites in the first phase.

Reviewers: tejohnson, eraman

Reviewed By: tejohnson

Subscribers: mehdi_amini, llvm-commits, Prazek

Differential Revision: https://reviews.llvm.org/D31201

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

7 years ago[ADT] Add a version of llvm::join() that takes a range.
Zachary Turner [Tue, 21 Mar 2017 19:35:05 +0000 (19:35 +0000)]
[ADT] Add a version of llvm::join() that takes a range.

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

7 years ago[X86][MS-compatability][llvm] allow MS TYPE/SIZE/LENGTH operators as a part of a...
Coby Tayree [Tue, 21 Mar 2017 19:31:55 +0000 (19:31 +0000)]
[X86][MS-compatability][llvm] allow MS TYPE/SIZE/LENGTH operators as a part of a compound expression

This patch introduces X86AsmParser with the ability to handle the aforementioned ops within compound "MS" arithmetical expressions.
Currently - only supported as a stand alone Operand, e.g.:
"TYPE X"
now allowed :
"4 + TYPE X * 128"

Clang side: https://reviews.llvm.org/D31174

Differential Revision: https://reviews.llvm.org/D31173

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

7 years ago[X86] Remove extra semicolon to placate GCC. NFCI.
Davide Italiano [Tue, 21 Mar 2017 19:17:23 +0000 (19:17 +0000)]
[X86] Remove extra semicolon to placate GCC. NFCI.

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

7 years ago[ARM] Recommit the glueless lowering of addc/adde in Thumb1,
Artyom Skrobov [Tue, 21 Mar 2017 18:39:41 +0000 (18:39 +0000)]
[ARM] Recommit the glueless lowering of addc/adde in Thumb1,
including the amended (no UB anymore) fix for adding/subtracting -2147483648.

This reverts r298328 "[ARM] Revert r297443 and r297820."
and partially reverts r297842 "Revert "[Thumb1] Fix the bug when adding/subtracting -2147483648""

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

7 years agoDelete eol-style:native SVN property.
Zachary Turner [Tue, 21 Mar 2017 18:31:08 +0000 (18:31 +0000)]
Delete eol-style:native SVN property.

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

7 years agoUse ProfileSummary:getProfileCount to get ScaledCount for ModuleSummary
Dehao Chen [Tue, 21 Mar 2017 17:22:35 +0000 (17:22 +0000)]
Use ProfileSummary:getProfileCount to get ScaledCount for ModuleSummary

Summary: ModuleSummary should use the standard interface of ProfileSummary::getProfileCount.

Reviewers: eraman, tejohnson

Reviewed By: tejohnson

Subscribers: tejohnson, mehdi_amini, llvm-commits

Differential Revision: https://reviews.llvm.org/D31154

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

7 years agoRevert 298388 and 298389 because they broke some AMDGPU tests.
Adrian Prantl [Tue, 21 Mar 2017 17:14:30 +0000 (17:14 +0000)]
Revert 298388 and 298389 because they broke some AMDGPU tests.

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

7 years agoRecommit r298282 with fixes for memory allocation/deallocation
Krzysztof Parzyszek [Tue, 21 Mar 2017 17:09:27 +0000 (17:09 +0000)]
Recommit r298282 with fixes for memory allocation/deallocation

[Hexagon] Recognize polynomial-modulo loop idiom again

Regain the ability to recognize loops calculating polynomial modulo
operation. This ability has been lost due to some changes in the
preceding optimizations. Add code to preprocess the IR to a form
that the pattern matching code can recognize.

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

7 years agoFix RST docs AttributeList heading underline
Reid Kleckner [Tue, 21 Mar 2017 17:05:00 +0000 (17:05 +0000)]
Fix RST docs AttributeList heading underline

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

7 years agoAMDGPU: Buffer descriptor changes for GFX9
Marek Olsak [Tue, 21 Mar 2017 17:00:39 +0000 (17:00 +0000)]
AMDGPU: Buffer descriptor changes for GFX9

Reviewers: arsenm

Subscribers: qcolombet, kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, dstuttard, tpr

Differential Revision: https://reviews.llvm.org/D31158

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

7 years agoAMDGPU: Always use VGPR indexing on GFX9
Marek Olsak [Tue, 21 Mar 2017 17:00:32 +0000 (17:00 +0000)]
AMDGPU: Always use VGPR indexing on GFX9

Reviewers: arsenm

Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, dstuttard, tpr

Differential Revision: https://reviews.llvm.org/D31157

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

7 years ago[Hexagon] Add -march=hexagon to a testcase
Krzysztof Parzyszek [Tue, 21 Mar 2017 16:59:40 +0000 (16:59 +0000)]
[Hexagon] Add -march=hexagon to a testcase

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

7 years agoRename AttributeSet to AttributeList
Reid Kleckner [Tue, 21 Mar 2017 16:57:19 +0000 (16:57 +0000)]
Rename AttributeSet to AttributeList

Summary:
This class is a list of AttributeSetNodes corresponding the function
prototype of a call or function declaration. This class used to be
called ParamAttrListPtr, then AttrListPtr, then AttributeSet. It is
typically accessed by parameter and return value index, so
"AttributeList" seems like a more intuitive name.

Rename AttributeSetImpl to AttributeListImpl to follow suit.

It's useful to rename this class so that we can rename AttributeSetNode
to AttributeSet later. AttributeSet is the set of attributes that apply
to a single function, argument, or return value.

Reviewers: sanjoy, javed.absar, chandlerc, pete

Reviewed By: pete

Subscribers: pete, jholewinski, arsenm, dschuff, mehdi_amini, jfb, nhaehnle, sbc100, void, llvm-commits

Differential Revision: https://reviews.llvm.org/D31102

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

7 years agoAMDGPU: Fix not including v2i16/v2f16 in register class
Matt Arsenault [Tue, 21 Mar 2017 16:42:50 +0000 (16:42 +0000)]
AMDGPU: Fix not including v2i16/v2f16 in register class

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

7 years agoDon't compose DWARF expressions with multiple subregisters.
Adrian Prantl [Tue, 21 Mar 2017 16:37:39 +0000 (16:37 +0000)]
Don't compose DWARF expressions with multiple subregisters.

If a register location can only be described by a complex expression
(i.e., multiple subregisters) it doesn't safely compose with another
complex expression. For example, it is not possible to apply a
DW_OP_deref operation to multiple DW_OP_pieces.

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

7 years agoDwarfExpression: Defer emitting DWARF register operations
Adrian Prantl [Tue, 21 Mar 2017 16:37:35 +0000 (16:37 +0000)]
DwarfExpression: Defer emitting DWARF register operations
until the rest of the expression is known.

This is still an NFC refactoring in preparation of a subsequent bugfix.

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

7 years agoAMDGPU: Fix asserting on 0 dmask for image intrinsics
Matt Arsenault [Tue, 21 Mar 2017 16:32:17 +0000 (16:32 +0000)]
AMDGPU: Fix asserting on 0 dmask for image intrinsics

Fold these to undef during lowering so users get eliminated.

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

7 years agoAMDGPU: Convert image intrinsic uses in tests
Matt Arsenault [Tue, 21 Mar 2017 16:24:12 +0000 (16:24 +0000)]
AMDGPU: Convert image intrinsic uses in tests

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

7 years agoDAG: Fold bitcast/extract_vector_elt of undef to undef
Matt Arsenault [Tue, 21 Mar 2017 16:20:16 +0000 (16:20 +0000)]
DAG: Fold bitcast/extract_vector_elt of undef to undef

Fixes not eliminating store when intrinsic is lowered to undef.

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

7 years agoFix shufpd test name.
Simon Pilgrim [Tue, 21 Mar 2017 15:12:53 +0000 (15:12 +0000)]
Fix shufpd test name.

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

7 years ago[ARM] [Assembler] Support negative immediates for A32, T32 and T16
Sanne Wouda [Tue, 21 Mar 2017 14:59:17 +0000 (14:59 +0000)]
[ARM] [Assembler] Support negative immediates for A32, T32 and T16

Summary:
To support negative immediates for certain arithmetic instructions, the
instruction is converted to the inverse instruction with a negated (or inverted)
immediate. For example, "ADD r0, r1, #FFFFFFFF" cannot be encoded as an ADD
instruction.  However, "SUB r0, r1, #1" is equivalent.

These conversions are different from instruction aliases.  An alias maps
several assembler instructions onto one encoding.  A conversion, however, maps
an *invalid* instruction--e.g. with an immediate that cannot be represented in
the encoding--to a different (but equivalent) instruction.

Several instructions with negative immediates were being converted already, but
this was not systematically tested, nor did it cover all instructions.

This patch implements all possible substitutions for ARM, Thumb1 and
Thumb2 assembler and adds tests.  It also adds a feature flag
(-mattr=+no-neg-immediates) to turn these substitutions off.  This is
helpful for users who want their code to assemble to exactly what they
wrote.

Reviewers: t.p.northover, rovka, samparker, javed.absar, peter.smith, rengolin

Reviewed By: javed.absar

Subscribers: aadg, aemerson, llvm-commits

Differential Revision: https://reviews.llvm.org/D30571

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

7 years agoTest commit access
Yi Kong [Tue, 21 Mar 2017 14:49:19 +0000 (14:49 +0000)]
Test commit access

Remove some trailing whitespaces.

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

7 years ago[InstCombine] auto-generate better checks; NFC
Sanjay Patel [Tue, 21 Mar 2017 14:04:44 +0000 (14:04 +0000)]
[InstCombine] auto-generate better checks; NFC

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

7 years ago[x86] use PMOVMSK for vector-sized equality comparisons
Sanjay Patel [Tue, 21 Mar 2017 13:50:33 +0000 (13:50 +0000)]
[x86] use PMOVMSK for vector-sized equality comparisons

We could do better by splitting any oversized type into whatever vector size the target supports,
but I left that for future work if it ever comes up. The motivating case is memcmp() calls on 16-byte
structs, so I think we can wire that up with a TLI hook that feeds into this.

Differential Revision: https://reviews.llvm.org/D31156

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

7 years ago[X86][AVX] Tests showing missing SHUFPD + ZERO lowering
Simon Pilgrim [Tue, 21 Mar 2017 13:30:40 +0000 (13:30 +0000)]
[X86][AVX] Tests showing missing SHUFPD + ZERO lowering

This lowers to SHUFPD if the input is zeroinitializer but not with a demanded elts optimized build vector.

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

7 years ago[AMDGPU] Iterative scheduling infrastructure + minimal registry scheduler
Valery Pykhtin [Tue, 21 Mar 2017 13:15:46 +0000 (13:15 +0000)]
[AMDGPU] Iterative scheduling infrastructure + minimal registry scheduler

Differential revision: https://reviews.llvm.org/D31046

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

7 years ago[GlobalISel] Fix shufflevector tests
Volkan Keles [Tue, 21 Mar 2017 13:12:59 +0000 (13:12 +0000)]
[GlobalISel] Fix shufflevector tests

clang-lld-x86_64-2stage fails because of the order
of the instructions. `CHECK-DAG` directives should
fix the problem.

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

7 years ago[ADMGPU] SDWA peephole optimization pass.
Sam Kolton [Tue, 21 Mar 2017 12:51:34 +0000 (12:51 +0000)]
[ADMGPU] SDWA peephole optimization pass.

Summary:
First iteration of SDWA peephole.

This pass tries to combine several instruction into one SDWA instruction. E.g. it converts:
'''
    V_LSHRREV_B32_e32 %vreg0, 16, %vreg1
    V_ADD_I32_e32 %vreg2, %vreg0, %vreg3
    V_LSHLREV_B32_e32 %vreg4, 16, %vreg2
'''
Into:
'''
   V_ADD_I32_sdwa %vreg4, %vreg1, %vreg3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD
'''

Pass structure:
    1. Iterate over machine instruction in basic block and try to apply "SDWA patterns" to each of them. SDWA patterns match machine instruction into either source or destination SDWA operand. E.g. ''' V_LSHRREV_B32_e32 %vreg0, 16, %vreg1''' is matched to source SDWA operand '''%vreg1 src_sel:WORD_1'''.
    2. Iterate over found SDWA operands and find instruction that could be potentially coverted into SDWA. E.g. for source SDWA operand potential instruction are all instruction in this basic block that uses '''%vreg0'''
    3. Iterate over all potential instructions and check if they can be converted into SDWA.
    4. Convert instructions to SDWA.

This review contains basic implementation of SDWA peephole pass. This pass requires additional testing fot both correctness and performance (no performance testing done).
There are several ways this pass can be improved:
    1. Make this pass work on whole function not only basic block. As I can see this can be done right now without changes to pass.
    2. Introduce more SDWA patterns
    3. Introduce mnemonics to limit when SDWA patterns should apply

Reviewers: vpykhtin, alex-t, arsenm, rampitec

Subscribers: wdng, nhaehnle, mgorny

Differential Revision: https://reviews.llvm.org/D30038

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

7 years ago[DebugInfo][X86] Teach Optimize LEAs pass to handle debug values
Andrea Di Biagio [Tue, 21 Mar 2017 11:36:21 +0000 (11:36 +0000)]
[DebugInfo][X86] Teach Optimize LEAs pass to handle debug values

This patch fixes an issue in the Optimize LEAs pass where redundant LEAs were
not removed because they were being used by debug values. The debug values are
now ignored when determining whether LEAs are redundant.

For now the debug values for the redundant LEAs are marked as undefined,
effectively lost. The intention is for a follow up patch which will attempt to
preserve the debug values where possible.

Patch by Andrew Ng.

Differential Revision: https://reviews.llvm.org/D30835

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

7 years agoNFC. InstCombiner::visitFAdd extract LHSIntVal/RHSIntVal local variables
Artur Pilipenko [Tue, 21 Mar 2017 11:32:15 +0000 (11:32 +0000)]
NFC. InstCombiner::visitFAdd extract LHSIntVal/RHSIntVal local variables

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

7 years ago[GlobalISel] Move isTriviallyDead to Utils. NFC.
Volkan Keles [Tue, 21 Mar 2017 10:47:35 +0000 (10:47 +0000)]
[GlobalISel] Move isTriviallyDead to Utils. NFC.

Make it accessible by the targets to avoid code duplication.

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

7 years ago[DAGTypeLegalizer] Handle widening truncate to vector of i1.
Jonas Paulsson [Tue, 21 Mar 2017 10:24:14 +0000 (10:24 +0000)]
[DAGTypeLegalizer]  Handle widening truncate to vector of i1.

Previously, PromoteIntRes_TRUNCATE() did not handle the case where
the operand needs widening, which resulted in llvm_unreachable().

This patch adds the needed handling, along with a test case.

Review: Eli Friedman, Simon Pilgrim.
https://reviews.llvm.org/D31077

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

7 years ago[ConstantFolding] Fix to prevent constant folding having to repeatedly scan operands...
David Green [Tue, 21 Mar 2017 10:17:39 +0000 (10:17 +0000)]
[ConstantFolding] Fix to prevent constant folding having to repeatedly scan operands. NFCI

After the loop unroll threshold was increased in r295538, very
large constant expressions can be created. This prevents them
from having to be recursively scanned, leading to a compile
time blow-up.

Differential Revision: https://reviews.llvm.org/D30689

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

7 years ago[GlobalISel] Translate shufflevector
Volkan Keles [Tue, 21 Mar 2017 08:44:13 +0000 (08:44 +0000)]
[GlobalISel] Translate shufflevector

Reviewers: qcolombet, aditya_nandakumar, t.p.northover, javed.absar, ab, dsanders

Reviewed By: javed.absar

Subscribers: dberris, rovka, llvm-commits, kristof.beyls

Differential Revision: https://reviews.llvm.org/D30962

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

7 years ago[APFloat] Tag the fltSemantic getter functions with LLVM_READNONE.
Craig Topper [Tue, 21 Mar 2017 07:18:00 +0000 (07:18 +0000)]
[APFloat] Tag the fltSemantic getter functions with LLVM_READNONE.

This gives about an 8k reduction in the size of the opt binary on my local x86-64 build.

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

7 years ago[APInt] Add LLVM_READONLY to some methods.
Craig Topper [Tue, 21 Mar 2017 06:19:46 +0000 (06:19 +0000)]
[APInt] Add LLVM_READONLY to some methods.

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

7 years ago[SystemZ] Don't drop MO flags in foldMemoryOperandImpl()
Jonas Paulsson [Tue, 21 Mar 2017 05:49:40 +0000 (05:49 +0000)]
[SystemZ]  Don't drop MO flags in foldMemoryOperandImpl()

The def operand of the new LG/LD should have the old def operands
flags and subreg index.

New test: test/CodeGen/SystemZ/fold-memory-op-impl.ll

Review: Ulrich Weigand

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

7 years agoFix evaluation of LLVM_DEFINITIONS
Serge Pavlov [Tue, 21 Mar 2017 04:03:24 +0000 (04:03 +0000)]
Fix evaluation of LLVM_DEFINITIONS

CMake variable LLVM_DEFINITIONS collects preprocessor definitions provided
for host compiler that builds llvm components. A function
add_llvm_definitions was introduced in AddLLVMDefinitions.cmake to keep
track of these definitions and was intended to be a replacement for CMake
command add_definitions. Actually in many cases add_definitions is still
used and the content of LLVM_DEFINITIONS is not actual now. On the other
hand the current version of CMake allows getting set of definitions in a
more convenient way. This fix implements evaluation of the variable by
reading corresponding cmake property.

Differential Revision: https://reviews.llvm.org/D31125

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

7 years agoRevert "[Hexagon] Recognize polynomial-modulo loop idiom again"
Vitaly Buka [Tue, 21 Mar 2017 00:59:51 +0000 (00:59 +0000)]
Revert "[Hexagon] Recognize polynomial-modulo loop idiom again"

Fix memory leaks on check-llvm tests detected by Asan.

This reverts commit r298282.

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

7 years ago[ARM] Revert r297443 and r297820.
Eli Friedman [Tue, 21 Mar 2017 00:26:39 +0000 (00:26 +0000)]
[ARM] Revert r297443 and r297820.

The glueless lowering of addc/adde in Thumb1 has known serious
miscompiles (see https://reviews.llvm.org/D31081), and r297820
causes an infinite loop for certain constructs.  It's not
clear when they will be fixed, so let's just take them out
of the tree for now.

(I resolved a small conflict with r297453.)

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

7 years ago[Support] Fill the file_status struct with link count.
Zachary Turner [Mon, 20 Mar 2017 23:55:20 +0000 (23:55 +0000)]
[Support] Fill the file_status struct with link count.

Differential Revision: https://reviews.llvm.org/D31110

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

7 years agoAdd a function to MD5 a file's contents.
Zachary Turner [Mon, 20 Mar 2017 23:33:18 +0000 (23:33 +0000)]
Add a function to MD5 a file's contents.

In doing so, clean up the MD5 interface a little.  Most
existing users only care about the lower 8 bytes of an MD5,
but for some users that care about the upper and lower,
there wasn't a good interface.  Furthermore, consumers
of the MD5 checksum were required to handle endianness
details on their own, so it seems reasonable to abstract
this into a nicer interface that just gives you the right
value.

Differential Revision: https://reviews.llvm.org/D31105

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

7 years ago[ARM] Fix PR32130: Handle promotion of zero sized constants.
Vadzim Dambrouski [Mon, 20 Mar 2017 22:59:57 +0000 (22:59 +0000)]
[ARM] Fix PR32130: Handle promotion of zero sized constants.

The special case of zero sized values was previously not handled correctly.
This patch handles this by not promoting if the size is zero.

Patch by Tim Neumann.

Differential Revision: https://reviews.llvm.org/D31116

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

7 years ago[x86] add tests for setcc of i128/i256; NFC
Sanjay Patel [Mon, 20 Mar 2017 22:15:40 +0000 (22:15 +0000)]
[x86] add tests for setcc of i128/i256; NFC

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

7 years agoInstCombine: Check source value precision when reducing cast intrinsic
Matt Arsenault [Mon, 20 Mar 2017 21:59:24 +0000 (21:59 +0000)]
InstCombine: Check source value precision when reducing cast intrinsic

Missed this check when porting from the libcall version.

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

7 years agoGlobalISel: add implicit defs & uses when mutating an instruction.
Tim Northover [Mon, 20 Mar 2017 21:58:23 +0000 (21:58 +0000)]
GlobalISel: add implicit defs & uses when mutating an instruction.

Otherwise a scheduler might do bad things to the code we produce.

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

7 years agoReplace uses of DwarfExpression::addMachineReg* with addMachineRegExpression
Adrian Prantl [Mon, 20 Mar 2017 21:35:09 +0000 (21:35 +0000)]
Replace uses of DwarfExpression::addMachineReg* with addMachineRegExpression
and mark the methods as protected.

Besides reducing the surface area of DwarfExpression, this is in
preparation for an upcoming bugfix in the DwarfExpression
implementation, for which it will be necessary to defer emitting
register operations until the rest of the expression is known.

NFC

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

7 years agoMake implementation details in DwarfExpression protected. (NFC)
Adrian Prantl [Mon, 20 Mar 2017 21:34:19 +0000 (21:34 +0000)]
Make implementation details in DwarfExpression protected. (NFC)

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

7 years ago[Fuchsia] Use %gs for ABI slots under -mcmodel=kernel
Evgeniy Stepanov [Mon, 20 Mar 2017 20:35:37 +0000 (20:35 +0000)]
[Fuchsia] Use %gs for ABI slots under -mcmodel=kernel

Make x86_64-fuchsia targets under -mcmodel=kernel use %gs rather
than %fs to access ABI slots for stack-protector and safe-stack

Patch by Roland McGrath.

Differential Revision: https://reviews.llvm.org/D30870

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

7 years ago[SCEV] Fix trip multiple calculation
Eli Friedman [Mon, 20 Mar 2017 20:25:46 +0000 (20:25 +0000)]
[SCEV] Fix trip multiple calculation

If loop bound containing calculations like min(a,b), the Scalar
Evolution API getSmallConstantTripMultiple returns 4294967295 "-1"
as the trip multiple. The problem is that, SCEV use -1 * umax to
represent umin. The multiple constant -1 was returned, and the logic
of guarding against huge trip counts was skipped. Because -1 has 32
active bits.

The fix attempt to factor more general cases. First try to get the
greatest power of two divisor of trip count expression. In case
overflow happens, the trip count expression is still divisible by the
greatest power of two divisor returned. Returns 1 if not divisible by 2.

Patch by Huihui Zhang <huihuiz@codeaurora.org>

Differential Revision: https://reviews.llvm.org/D30840

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

7 years ago[X86] Clean up test/CodeGen/X86/2006-03-01-InstrSchedBug.ll
David L. Jones [Mon, 20 Mar 2017 20:10:30 +0000 (20:10 +0000)]
[X86] Clean up test/CodeGen/X86/2006-03-01-InstrSchedBug.ll

Summary:
- Migrated from grep to FileCheck.
- Re-indented, removed boilerplate comments.
- Added 'entry' label at beginning of basic block.

Patch by Jorge Gorbe!

Reviewed By: RKSimon

Subscribers: RKSimon, jgorbe, llvm-commits

Differential Revision: https://reviews.llvm.org/D30317

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

7 years agoExplicitly add move constructor/assignment operators.
Zachary Turner [Mon, 20 Mar 2017 19:56:52 +0000 (19:56 +0000)]
Explicitly add move constructor/assignment operators.

These are needed due to some obscure rules in the standard
about how std::vector selects between copy and move
constructors, which can cause a conforming implementation
to attempt to select the copy constructor of RuleMatcher,
which will fail since std::unique_ptr<> isn't copyable.

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

7 years agoAdd test case for merging of chained stores of mismatched type.
Nirav Dave [Mon, 20 Mar 2017 19:48:22 +0000 (19:48 +0000)]
Add test case for merging of chained stores of mismatched type.

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

7 years agoAdd the rest of the error checking for Mach-O dyld compact bind entry errors
Kevin Enderby [Mon, 20 Mar 2017 19:46:55 +0000 (19:46 +0000)]
Add the rest of the error checking for Mach-O dyld compact bind entry errors
and test cases for each of the error checks.

To do this more plumbing was needed so that the segment indexes and
segment offsets can be checked.  Basically what was done was the SegInfo
from llvm-objdump’s MachODump.cpp was moved into libObject for Mach-O
objects as BindRebaseSegInfo and it is only created when an iterator for
bind or rebase entries are created.

This commit really only adds the error checking and test cases for the
bind table entires and the checking for the lazy bind and weak bind entries
are still to be fully done as well as the rebase entires.  Though some of
the plumbing for those are added with this commit.  Those other error
checks and test cases will be added in follow on commits.

Note, the two llvm_unreachable() calls should now actually be unreachable
with the error checks in place and would take a logic bug in the error
checking code to be reached if the segment indexes and segment
offsets are used from a checked bind entry.  Comments have been added
to the methods that require the arguments to have been checked
prior to calling.

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

7 years agoRevert r298158.
Evgeniy Stepanov [Mon, 20 Mar 2017 18:45:34 +0000 (18:45 +0000)]
Revert r298158.

Revert "[asan] Fix dead stripping of globals on Linux."

OOM in gold linker.

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

7 years agoFixed include order. NFCI.
Simon Pilgrim [Mon, 20 Mar 2017 18:33:23 +0000 (18:33 +0000)]
Fixed include order. NFCI.

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

7 years agoTry using llvm::errc, should hopefully fix version mismatch problem on clang-s390x...
Peter Collingbourne [Mon, 20 Mar 2017 18:19:41 +0000 (18:19 +0000)]
Try using llvm::errc, should hopefully fix version mismatch problem on clang-s390x-linux bot.

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

7 years ago[Hexagon] Recognize polynomial-modulo loop idiom again
Krzysztof Parzyszek [Mon, 20 Mar 2017 18:12:58 +0000 (18:12 +0000)]
[Hexagon] Recognize polynomial-modulo loop idiom again

Regain the ability to recognize loops calculating polynomial modulo
operation. This ability has been lost due to some changes in the
preceding optimizations. Add code to preprocess the IR to a form
that the pattern matching code can recognize.

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

7 years ago[AMDGPU] Run always inliner early in opt
Konstantin Zhuravlyov [Mon, 20 Mar 2017 18:06:45 +0000 (18:06 +0000)]
[AMDGPU] Run always inliner early in opt

Differential Revision: https://reviews.llvm.org/D31141

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

7 years agoAdd missing updated test from VN coercion changes. Instructions were renamed. NFC
Daniel Berlin [Mon, 20 Mar 2017 18:04:19 +0000 (18:04 +0000)]
Add missing updated test from VN coercion changes. Instructions were renamed. NFC

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

7 years agoFix UB found by -Wtautological-undefined-compare
David Blaikie [Mon, 20 Mar 2017 18:01:07 +0000 (18:01 +0000)]
Fix UB found by -Wtautological-undefined-compare

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

7 years agoMention that the Sphinx docs build wants version 1.5 or later
Jonathan Roelofs [Mon, 20 Mar 2017 17:49:36 +0000 (17:49 +0000)]
Mention that the Sphinx docs build wants version 1.5 or later

`misc.highlighting_failure` support was added to `suppress_warnings` in that
version, and the warnings-as-errors docs build relies on it.

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