OSDN Git Service

android-x86/external-llvm.git
6 years ago[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other...
Eugene Zelenko [Thu, 19 Oct 2017 21:21:30 +0000 (21:21 +0000)]
[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

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

6 years ago[SelectionDAG] Add a check to getVectorShuffle to ensure that the only negative index...
Craig Topper [Thu, 19 Oct 2017 20:59:41 +0000 (20:59 +0000)]
[SelectionDAG] Add a check to getVectorShuffle to ensure that the only negative index we allow is -1.

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

6 years ago[X86] Remove LowerEXTRACT_SUBVECTOR handler. All EXTRACT_SUBVECTORs are marked as...
Craig Topper [Thu, 19 Oct 2017 20:59:40 +0000 (20:59 +0000)]
[X86] Remove LowerEXTRACT_SUBVECTOR handler. All EXTRACT_SUBVECTORs are marked as legal.

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

6 years ago[X86][AES] Test AES intrinsics on 32/64-bit targets with/without VEX encoding
Simon Pilgrim [Thu, 19 Oct 2017 19:05:04 +0000 (19:05 +0000)]
[X86][AES] Test AES intrinsics on 32/64-bit targets with/without VEX encoding

Don't just test on 32-bit

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

6 years agoThe cost of splitting a large vector instruction is not being taken into account...
Graham Yiu [Thu, 19 Oct 2017 18:16:31 +0000 (18:16 +0000)]
The cost of splitting a large vector instruction is not being taken into account by the getUserCost function. This was leading to some loops being over unrolled. The cost of a vector instruction is now being multiplied by the cost of the type legalization. This will return a more accurate cost.

Committing on behalf on Brad Nemanich (brad.nemanich@ibm.com)

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

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

6 years agoAMDGPU/Docs: Fix unreadable characters
Konstantin Zhuravlyov [Thu, 19 Oct 2017 17:12:55 +0000 (17:12 +0000)]
AMDGPU/Docs: Fix unreadable characters

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

6 years ago[Hexagon] Fix store conversion from rr to io in optimize addressing modes
Krzysztof Parzyszek [Thu, 19 Oct 2017 16:59:22 +0000 (16:59 +0000)]
[Hexagon] Fix store conversion from rr to io in optimize addressing modes

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

6 years agoExecutionEngine: adjust COFF i386 tautological asserts
Saleem Abdulrasool [Thu, 19 Oct 2017 16:57:40 +0000 (16:57 +0000)]
ExecutionEngine: adjust COFF i386 tautological asserts

Modify static_casts to not be tautological in some COFF i386
relocations.

Patch by Alex Langford!

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

6 years ago[RISCV] RISCVAsmParser: early exit if RISCVOperand isn't immediate as expected
Alex Bradbury [Thu, 19 Oct 2017 16:22:51 +0000 (16:22 +0000)]
[RISCV] RISCVAsmParser: early exit if RISCVOperand isn't immediate as expected

This is necessary to avoid an assertion in the included test case and similar
assembler inputs.

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

6 years ago[RISCV][NFC] Drop unused parameter from createImm helper in RISCVAsmParser
Alex Bradbury [Thu, 19 Oct 2017 16:09:20 +0000 (16:09 +0000)]
[RISCV][NFC] Drop unused parameter from createImm helper in RISCVAsmParser

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

6 years agoRevert r315992 because of a found miscompilation failure
Nikolai Bozhenov [Thu, 19 Oct 2017 15:36:18 +0000 (15:36 +0000)]
Revert r315992 because of a found miscompilation failure

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

6 years ago[X86] Replace custom scalar integer absolute matching with ISD::ABS lowering.
Simon Pilgrim [Thu, 19 Oct 2017 15:02:24 +0000 (15:02 +0000)]
[X86] Replace custom scalar integer absolute matching with ISD::ABS lowering.

x86 has its own copy of integer absolute pattern matching to combine directly to a SUB+CMOV.

This patch removes the x86 combine and adds custom lowering support for ISD::ABS instead, allowing us to use the DAGCombiner version.

Additional test cases are already covered by iabs.ll (rL315706 and rL315711).

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

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

6 years agoFix MSVC signed/unsigned comparison warning
Simon Pilgrim [Thu, 19 Oct 2017 15:00:31 +0000 (15:00 +0000)]
Fix MSVC signed/unsigned comparison warning

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

6 years ago[X86] Add scalar (abs (abs x)) -> (abs x) combine test.
Simon Pilgrim [Thu, 19 Oct 2017 14:59:26 +0000 (14:59 +0000)]
[X86] Add scalar (abs (abs x)) -> (abs x) combine test.

Before landing D38895

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

6 years ago[RISCV] Prepare for the use of variable-sized register classes
Alex Bradbury [Thu, 19 Oct 2017 14:29:03 +0000 (14:29 +0000)]
[RISCV] Prepare for the use of variable-sized register classes

While parameterising by XLen, also take the opportunity to clean up the
formatting of the RISCV .td files.

This commit unifies the in-tree code with my patchset at
<https://github.com/lowrisc/riscv-llvm>.

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

6 years agoRevert rL316156 due to failure on APFloatTest.fromToStringSpecials
Max Kazantsev [Thu, 19 Oct 2017 12:22:39 +0000 (12:22 +0000)]
Revert rL316156 due to failure on APFloatTest.fromToStringSpecials

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

6 years agoFix APFloat from string conversion for Inf
Serguei Katkov [Thu, 19 Oct 2017 11:16:03 +0000 (11:16 +0000)]
Fix APFloat from string conversion for Inf

The method IEEEFloat::convertFromStringSpecials() does not recognize
the "+Inf" and "-Inf" strings but these strings are printed for
the double Infinities by the IEEEFloat::toString().

This patch adds the "+Inf" and "-Inf" strings to the list of recognized
patterns in IEEEFloat::convertFromStringSpecials().

Reviewers: sberg, bogner, majnemer, timshen, rnk, skatkov, gottesmm, bkramer, scanon
Reviewed By: skatkov
Subscribers: apilipenko, reames, llvm-commits
Differential Revision: https://reviews.llvm.org/D38030

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

6 years ago[ARM GlobalISel] Fix liveins in test. NFC
Diana Picus [Thu, 19 Oct 2017 09:28:19 +0000 (09:28 +0000)]
[ARM GlobalISel] Fix liveins in test. NFC

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

6 years ago[ARM GlobalISel] Remove redundant tests
Diana Picus [Thu, 19 Oct 2017 08:50:28 +0000 (08:50 +0000)]
[ARM GlobalISel] Remove redundant tests

These test cases don't really add anything that isn't covered by other
tests as well, so we can safely remove them.

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

6 years agoRevert 316150 which reinstated r316025.
Vassil Vassilev [Thu, 19 Oct 2017 08:44:19 +0000 (08:44 +0000)]
Revert 316150 which reinstated r316025.

It fails on some bots and now we know how to reproduce it.

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

6 years agoConst fix for YAMLParser.
Sam McCall [Thu, 19 Oct 2017 08:13:49 +0000 (08:13 +0000)]
Const fix for YAMLParser.

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

6 years agoReinstate r316025, reverted in r316029.
Vassil Vassilev [Thu, 19 Oct 2017 08:04:22 +0000 (08:04 +0000)]
Reinstate r316025, reverted in r316029.

Original commit message:
"[cmake] Use find_package to discover zlib

This allows us to use standard cmake utilities to point to non-system zlib
locations.

Patch by Oksana Shadura and me (D39002)."

The new patch brings back the old behavior in the cases where find_package
cannot find zlib.

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

6 years ago[Coverage] Simplify r316141. NFC.
Vedant Kumar [Thu, 19 Oct 2017 06:16:23 +0000 (06:16 +0000)]
[Coverage] Simplify r316141. NFC.

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

6 years ago[NFC][IRCE] Filter out empty ranges early
Max Kazantsev [Thu, 19 Oct 2017 05:33:28 +0000 (05:33 +0000)]
[NFC][IRCE] Filter out empty ranges early

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

6 years ago[MergeFunctions] Don't blindly RAUW a GlobalValue with a ConstantExpr.
whitequark [Thu, 19 Oct 2017 04:47:48 +0000 (04:47 +0000)]
[MergeFunctions] Don't blindly RAUW a GlobalValue with a ConstantExpr.

MergeFunctions uses (through FunctionComparator) a map of GlobalValues
to identifiers because it needs to compare functions and globals
do not have an inherent total order. Thus, FunctionComparator
(through GlobalNumberState) has a ValueMap<GlobalValue *>.

r315852 added a RAUW on globals that may have been previously
encountered by the FunctionComparator, which would replace
a GlobalValue * key with a ConstantExpr *, which is illegal.

This commit adjusts that code path to remove the function being
replaced from the ValueMap as well.

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

6 years agoSimplify.
Rafael Espindola [Thu, 19 Oct 2017 01:32:18 +0000 (01:32 +0000)]
Simplify.

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

6 years agoFix buffer overflow.
Rafael Espindola [Thu, 19 Oct 2017 01:25:48 +0000 (01:25 +0000)]
Fix buffer overflow.

We were reading past the end of the buffer.

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

6 years ago[CMake] Allow parent projects to use in-source builds
Chris Bieneman [Thu, 19 Oct 2017 00:43:48 +0000 (00:43 +0000)]
[CMake] Allow parent projects to use in-source builds

LLVM checks if it is performing an in-source build and then stop the
build. However, this check is also triggered if LLVM is being build as
part of a parent project, which prevents the parent project itself from
using in-source builds. For example, CMake allows a parent project to
specify the output of its subproject:

add_subdirectory(llvm llvm_build)

This tells CMake to conduct an out-tree build of LLVM, which without
this patch will still fails because what is being tested is the parent
project, not LLVM. This is fixed by using the "CURRENT" variable, which
is only concerned by the CMakeLists that is actually bein processed at
the moment.

Tests:
Ran `make check-llvm`.

Patch by Henrique Jung <henriquenj_AT_gmail_DOT_com>

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

6 years ago[llvm-cov] Move LineCoverageIterator to libCoverage. NFC.
Vedant Kumar [Wed, 18 Oct 2017 23:58:28 +0000 (23:58 +0000)]
[llvm-cov] Move LineCoverageIterator to libCoverage. NFC.

LineCoverageIterator makes it easy for clients of coverage data to
determine line execution counts for a file or function. The coverage
iteration logic is tricky enough that it really pays not to have
multiple copies of it. Hopefully having just one implementation in LLVM
will make the iteration logic easier to test, reuse, and update.

This commit is NFC but I've added a unit test to go along with it just
because it's easy to do now.

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

6 years ago[llvm-cov] Use the coverage namespace. NFC.
Vedant Kumar [Wed, 18 Oct 2017 23:58:27 +0000 (23:58 +0000)]
[llvm-cov] Use the coverage namespace. NFC.

This is a simple code cleanup. It will facilitate moving
LineCoverageIterator to libCoverage.

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

6 years agoGISel: Canonicalize select tests using update_mir_test_checks
Justin Bogner [Wed, 18 Oct 2017 23:33:31 +0000 (23:33 +0000)]
GISel: Canonicalize select tests using update_mir_test_checks

This runs `udpate_mir_test_checks --add-vreg-checks` on the tests taht
are already more or less in the format that generates, so that there
will be less churn in some upcoming changes.

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

6 years agoAArch64/GISel: Modernize the localizer test
Justin Bogner [Wed, 18 Oct 2017 23:26:24 +0000 (23:26 +0000)]
AArch64/GISel: Modernize the localizer test

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

6 years agoCanonicalize a large number of mir tests using update_mir_test_checks
Justin Bogner [Wed, 18 Oct 2017 23:18:12 +0000 (23:18 +0000)]
Canonicalize a large number of mir tests using update_mir_test_checks

This converts a large and somewhat arbitrary set of tests to use
update_mir_test_checks. I ran the script on all of the tests I expect
to need to modify for an upcoming mir syntax change and kept the ones
that obviously didn't change the tests in ways that might make it
harder to understand.

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

6 years ago[PM] Refactor the bounds checking pass to remove a method only called in
Chandler Carruth [Wed, 18 Oct 2017 22:42:36 +0000 (22:42 +0000)]
[PM] Refactor the bounds checking pass to remove a method only called in
one place.

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

6 years agoupdate_mir_test_checks: Support adding checks for vreg classes
Justin Bogner [Wed, 18 Oct 2017 22:39:55 +0000 (22:39 +0000)]
update_mir_test_checks: Support adding checks for vreg classes

This is a temporary hack to support adding checks for the "registers:"
block of mir functions. This is necessary to convert a number of tests
so that there's less churn when we change the MIR printer to put the
vreg classes on defs instead of in their own block.

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

6 years agoupdate_mir_test_checks: Improve message when updating fails
Justin Bogner [Wed, 18 Oct 2017 22:36:08 +0000 (22:36 +0000)]
update_mir_test_checks: Improve message when updating fails

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

6 years ago[AMDGPU] Corrections to memory model description.
Tony Tye [Wed, 18 Oct 2017 22:16:55 +0000 (22:16 +0000)]
[AMDGPU] Corrections to memory model description.

 - Add description on nontemporal support.
 - Correct OpenCL sequentially consistent and fence code sequences.
 - Minor test cleanup.

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

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

6 years agoRevert "[ScalarEvolution] Handling for ICmp occuring in the evolution chain."
Sanjoy Das [Wed, 18 Oct 2017 22:00:57 +0000 (22:00 +0000)]
Revert "[ScalarEvolution] Handling for ICmp occuring in the evolution chain."

This reverts commit r316054.  There was some confusion over the review process:
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20171016/495884.html

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

6 years ago[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other...
Eugene Zelenko [Wed, 18 Oct 2017 21:46:47 +0000 (21:46 +0000)]
[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

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

6 years agoFix lit.site.cfg.py.in after rL316123
Sam Clegg [Wed, 18 Oct 2017 20:46:05 +0000 (20:46 +0000)]
Fix lit.site.cfg.py.in after rL316123

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

6 years ago[AVR] Fix the select_mbb_placement_bug.ll test
Dylan McKay [Wed, 18 Oct 2017 20:04:57 +0000 (20:04 +0000)]
[AVR] Fix the select_mbb_placement_bug.ll test

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

6 years agoDon't set static-libs test feature when using LLVM_LINK_LLVM_DYLIB
Sam Clegg [Wed, 18 Oct 2017 19:37:30 +0000 (19:37 +0000)]
Don't set static-libs test feature when using LLVM_LINK_LLVM_DYLIB

This was causing execname-options.ll to fail on the wasm
waterfall.

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

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

6 years ago[llvm-cov] Suppress sub-line highlights in simple cases
Vedant Kumar [Wed, 18 Oct 2017 18:52:29 +0000 (18:52 +0000)]
[llvm-cov] Suppress sub-line highlights in simple cases

llvm-cov tends to highlight too many regions because its policy is to
highlight all region entry segments. This can look confusing to users:
not all region entry segments are interesting and deserve highlighting.
Emitting these highlights only when the region count differs from the
line count is a more user-friendly policy.

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

6 years ago[llvm-cov] Pass LineCoverageStats in SourceCoverageView. NFC.
Vedant Kumar [Wed, 18 Oct 2017 18:52:28 +0000 (18:52 +0000)]
[llvm-cov] Pass LineCoverageStats in SourceCoverageView. NFC.

Instead of copying around the wrapped segment and the list of line
segments, just pass a reference to a LineCoverageStats object. This
simplifies the interface. It also makes an upcoming change to suppress
distracting highlights possible.

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

6 years ago[llvm-cov] Highlight gaps in consecutive uncovered regions
Vedant Kumar [Wed, 18 Oct 2017 18:52:27 +0000 (18:52 +0000)]
[llvm-cov] Highlight gaps in consecutive uncovered regions

llvm-cov typically doesn't highlight gap segments, but it should if the
gap occurs after an uncovered region in order to preserve continuity.

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

6 years ago[Hexagon] New HVX target features.
Sumanth Gundapaneni [Wed, 18 Oct 2017 18:07:07 +0000 (18:07 +0000)]
[Hexagon] New HVX target features.

This patch lets the llvm tools handle the new HVX target features that
are added by frontend (clang). The target-features are of the form
"hvx-length64b" for 64 Byte HVX mode, "hvx-length128b" for 128 Byte mode HVX.
"hvx-double" is an alias to "hvx-length128b" and is soon will be deprecated.
The hvx version target feature is upgated form "+hvx" to "+hvxv{version_number}.
Eg: "+hvxv62"

For the correct HVX code generation, the user must use the following
target features.
For 64B mode: "+hvxv62" "+hvx-length64b"
For 128B mode: "+hvxv62" "+hvx-length128b"

Clang picks a default length if none is specified. If for some reason,
no hvx-length is specified to llvm, the compilation will bail out.
There is a corresponding clang patch.

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

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

6 years agoAMDGPU/Docs: Make target naming consistent
Konstantin Zhuravlyov [Wed, 18 Oct 2017 17:59:20 +0000 (17:59 +0000)]
AMDGPU/Docs: Make target naming consistent

  - R600 Arch: Use Radeon HD XXXX Series
  - GCN Arch: Use GFXX

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

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

6 years ago[Hexagon] Update Hexagon ArchEnum and sync some downstream changes(NFC)
Sumanth Gundapaneni [Wed, 18 Oct 2017 17:45:22 +0000 (17:45 +0000)]
[Hexagon] Update Hexagon ArchEnum and sync some downstream changes(NFC)

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

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

6 years ago[Hexagon] Mark vector loads as predicable, update instruction mappings
Krzysztof Parzyszek [Wed, 18 Oct 2017 17:36:46 +0000 (17:36 +0000)]
[Hexagon] Mark vector loads as predicable, update instruction mappings

All loads of form V6_vL32b_{,cur,nt,tmp,nt_cur,nt_tmp}_{ai,pi,ppu} are
predicable on v62 (but not on v60). Mark them all as predicable in the
instruction definitions, and handle the v60 case in HII::isPredicable.

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

6 years agoAMDGPU: Rename MaxFlatWorkgroupSize to MaxFlatWorkGroupSize for consistency
Konstantin Zhuravlyov [Wed, 18 Oct 2017 17:31:09 +0000 (17:31 +0000)]
AMDGPU: Rename MaxFlatWorkgroupSize to MaxFlatWorkGroupSize for consistency

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

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

6 years ago[RISCV] Bugfix createRISCVELFObjectWriter
Alex Bradbury [Wed, 18 Oct 2017 16:11:31 +0000 (16:11 +0000)]
[RISCV] Bugfix createRISCVELFObjectWriter

r315275 set the IsLittleEndian parameter incorrectly. This patch corrects
this, and adds a test to ensure such mistakes will be caught in the future.

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

6 years agoupdate_mir_test_checks: Handle empty liveins
Justin Bogner [Wed, 18 Oct 2017 15:38:56 +0000 (15:38 +0000)]
update_mir_test_checks: Handle empty liveins

An empty livein block doesn't make much sense (why not just omit it?)
but they're legal and some tests have them, so its best to handle it.

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

6 years agoupdate_mir_test_checks: Do a better job of disambiguating names
Justin Bogner [Wed, 18 Oct 2017 15:37:09 +0000 (15:37 +0000)]
update_mir_test_checks: Do a better job of disambiguating names

Matching prefixes isn't good enough, because it leads to things like
calling the first constant C3 just because there were two copies
before it. Tighten up the check to match more precisely, but also be
careful about ambiguity when dealing with target opcodes that end in a
number.

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

6 years agoAArch64/GISel: Fix a couple of tests that were testing the wrong thing
Justin Bogner [Wed, 18 Oct 2017 15:34:33 +0000 (15:34 +0000)]
AArch64/GISel: Fix a couple of tests that were testing the wrong thing

Fix a couple of tests that were extending the wrong vreg, and
regenerate their checks with update_mir_test_checks. This looks like
it was a copy-paste or test update error.

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

6 years ago[ARM] Fix disassembly for conditional VMRS and VMSR instructions in ARM mode
Andre Vieira [Wed, 18 Oct 2017 14:47:37 +0000 (14:47 +0000)]
[ARM] Fix disassembly for conditional VMRS and VMSR instructions in ARM mode

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

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

6 years ago[mips] Fix analyzeBranch to handle debug data
Simon Dardis [Wed, 18 Oct 2017 14:35:29 +0000 (14:35 +0000)]
[mips] Fix analyzeBranch to handle debug data

In the case where there was a conditional branch followed by a unconditional
branch with debug instruction separating them, MipsInstrInfo::analyzeBranch
would not skip past debug instruction when searching for the second branch
which give erroneous results about the control flow of the block.

This could lead to the branch folder to merge the non-fall through case
into it's predecessor, leaving the conditional branch with a dangling
basic block operand.

This resolves PR34975.

Thanks to Alexander Richardson for reporting the issue!

Reviewers: atanasyan

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

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

6 years agoFixup patch for revision rL316070.
Nikolai Bozhenov [Wed, 18 Oct 2017 14:24:50 +0000 (14:24 +0000)]
Fixup patch for revision rL316070.

Added check that type of CmpConst and source type of trunc are equal
for correct matching of the case when we can set widened C constant
equal to CmpConstant.

  %cond = cmp iN %x, CmpConst
  %tr = trunc iN %x to iK
  %narrowsel = select i1 %cond, iK %t, iK C

Patch by: Gainullin, Artur <artur.gainullin@intel.com>

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

6 years ago[mips] Move test to correct directory. NFCI
Simon Dardis [Wed, 18 Oct 2017 13:59:48 +0000 (13:59 +0000)]
[mips] Move test to correct directory. NFCI

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

6 years agoAdding new test for
Michael Zuckerman [Wed, 18 Oct 2017 13:51:31 +0000 (13:51 +0000)]
Adding new test for
bug fix 316067 https://bugs.llvm.org/show_bug.cgi?id=34978

This test checks that the x86-interleaved ends without any
assertion.

Change-Id: I1e970482a4d0404516cbc85517fc091bb21c35a8

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

6 years agoUntabify.
NAKAMURA Takumi [Wed, 18 Oct 2017 13:31:28 +0000 (13:31 +0000)]
Untabify.

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

6 years ago[AVR] Update to current LLVM API
Dylan McKay [Wed, 18 Oct 2017 12:35:15 +0000 (12:35 +0000)]
[AVR] Update to current LLVM API

r315410 broke a number of things in the AVR backend, which are now
fixed.

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

6 years ago[AVX512][AVX2]Cost calculation for interleave load/store patterns {v8i8,v16i8,v32i8...
Michael Zuckerman [Wed, 18 Oct 2017 11:41:55 +0000 (11:41 +0000)]
[AVX512][AVX2]Cost calculation for interleave load/store patterns {v8i8,v16i8,v32i8,v64i8}

This patch adds accurate instructions cost.
The formula presents two cases(stride 3 and stride 4) and calculates the cost according to the VF and stride.

Reviewers:
1. delena
2. Farhana
3. zvi
4. dorit
5. Ayal

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

Change-Id: If4cfbd4ac0e63694e8144cb78c7fa34850647ff7

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

6 years ago[PowerPC] Use helper functions to check sign-/zero-extended value
Hiroshi Inoue [Wed, 18 Oct 2017 10:31:19 +0000 (10:31 +0000)]
[PowerPC] Use helper functions to check sign-/zero-extended value

Helper functions to identify sign- and zero-extending machine instruction is introduced in rL315888.
This patch makes PPCInstrInfo::optimizeCompareInstr use the helper functions. It simplifies the code and also makes possible more optimizations since the helper can do more analysis than the original check code; I observed about 5000 more compare instructions are eliminated while building LLVM.

Also, this patch fixes a bug in helpers on ANDIo instruction handling due to the order of checks. This bug causes a failure in an existing test case for optimizeCompareInstr.

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

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

6 years agoImprove lookThroughCast function.
Nikolai Bozhenov [Wed, 18 Oct 2017 09:28:09 +0000 (09:28 +0000)]
Improve lookThroughCast function.

Summary:
When we have the following case:

  %cond = cmp iN %x, CmpConst
  %tr = trunc iN %x to iK
  %narrowsel = select i1 %cond, iK %t, iK C

We could possibly match only min/max pattern after looking through cast.
So it is more profitable if widened C constant will be equal CmpConst.
That is why just set widened C constant equal to CmpConst, because there
is a further check in this function that trunc CmpConst == C.

Also description for lookTroughCast function was added.

Reviewers: spatel

Subscribers: llvm-commits

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

Patch by: Artur Gainullin <artur.gainullin@intel.com>

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

6 years agoFixing bug issue https://bugs.llvm.org/show_bug.cgi?id=34978
Michael Zuckerman [Wed, 18 Oct 2017 08:04:31 +0000 (08:04 +0000)]
Fixing bug issue https://bugs.llvm.org/show_bug.cgi?id=34978

Change-Id: I7f13d5bcb181be2860377df7b40e1579a8ad4add

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

6 years agoFix the incorrect detection of ICONV_LIBRARY_PATH
Serguei Katkov [Wed, 18 Oct 2017 06:26:39 +0000 (06:26 +0000)]
Fix the incorrect detection of ICONV_LIBRARY_PATH

This is introduced in rL308711.
Check for c library is incorrect here just because libc will be found always
and it does not mean that iconv is presented.

Thank to Andrew Krasny for narrowing down the root cause.

Reviewers: ecbeckmann
Reviewed By: ecbeckmann
Subscribers: mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D38875

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

6 years agoupdate_mir_test_checks: Support '-' in function names
Justin Bogner [Wed, 18 Oct 2017 05:52:56 +0000 (05:52 +0000)]
update_mir_test_checks: Support '-' in function names

Some AArch64 and AMDGPU tests have functions with hyphens in the names

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

6 years agoupdate_mir_test_checks: Fix a typo I made while preparing for commit
Justin Bogner [Wed, 18 Oct 2017 05:39:22 +0000 (05:39 +0000)]
update_mir_test_checks: Fix a typo I made while preparing for commit

I accidentally added an extra arg here, so this didn't work at all.

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

6 years agoStatically link llvm-cfi-verify's libraries.
Vlad Tsyrklevich [Wed, 18 Oct 2017 04:27:53 +0000 (04:27 +0000)]
Statically link llvm-cfi-verify's libraries.

Summary:
llvm-cfi-verify (D38379) introduced a potential build failure when compiling with `-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON`. Specific versions of cmake seem to treat the `add_subdirectory()` rule differently. It seems as if old versions of cmake BFS these rules, adding them to the fringe for expansion later. Newer versions of cmake seem to immediately execute CMakeFiles that are present in this subdirectory.

If the subdirectory is expanded through the fringe, the globbing resultant from `llvm_add_implicit_projects()` from `cmake/modules/AddLLVM.cmake:1012` means that `tools/llvm-shlib/CMakeFile.txt` gets executed before `tools/llvm-cfi-verify/lib/CMakeFile.txt`. As the latter CMakeFile adds a new library, this expansion order means that the library files required the unit tests in `unittests/tools/llvm-cfi-verify/` are not present in the dynamic library. This causes unit tests to fail as the required functions can't be found.

This change now ensures that the libraries created by `llvm-cfi-verify` are statically linked into the unit tests. As `tools/llvm-cfi-verify/lib` no longer adds anything to `llvm-shlib`, there should be no concern about the order-of-compilation.

Reviewers: skatkov, pcc

Reviewed By: skatkov, pcc

Subscribers: llvm-commits, kcc, pcc, aheejin, vlad.tsyrklevich, mgorny

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

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

6 years agoAdd a utility to update MIR checks, similar to update_llc_test_checks
Justin Bogner [Wed, 18 Oct 2017 02:20:31 +0000 (02:20 +0000)]
Add a utility to update MIR checks, similar to update_llc_test_checks

This adds update_mir_test_checks, which updates the check lines in mir
tests. This can only update tests that start and end with .mir
currently (ie, -run-pass) but it should be sufficient for updating at
least some of the GlobalISel tests.

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

6 years ago[ScalarEvolution] Handling for ICmp occuring in the evolution chain.
Jatin Bhateja [Wed, 18 Oct 2017 01:36:16 +0000 (01:36 +0000)]
[ScalarEvolution] Handling for ICmp occuring in the evolution chain.

Summary:
 If a compare instruction is same or inverse of the compare in the
 branch of the loop latch, then return a constant evolution node.
 Currently scope of evaluation is limited to SCEV computation for
 PHI nodes.

 This shall facilitate computations of loop exit counts in cases
 where compare appears in the evolution chain of induction variables.

 Will fix PR 34538
Reviewers: sanjoy, hfinkel, junryoungju

Reviewed By: junryoungju

Subscribers: javed.absar, llvm-commits

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

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

6 years agoVerifier: Ignore CUs pulled in by ODR-uniqued types.
Adrian Prantl [Wed, 18 Oct 2017 01:11:01 +0000 (01:11 +0000)]
Verifier: Ignore CUs pulled in by ODR-uniqued types.

When more than one Module is imported into the same context, such as during
an LTO build before linking the modules, ODR type uniquing may cause types
to point to a different CU. This check does not make sense in this case.

This fixes the error reported in PR34944.

https://bugs.llvm.org/show_bug.cgi?id=34944
rdar://problem/34940685

This reapplies a cleaner implementation of r316049.

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

6 years agoRevert "Verifier: Ignore CUs pulled in by ODR-uniqued types."
Adrian Prantl [Wed, 18 Oct 2017 00:54:31 +0000 (00:54 +0000)]
Revert "Verifier: Ignore CUs pulled in by ODR-uniqued types."

This reverts commit r316049.

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

6 years agoVerifier: Ignore CUs pulled in by ODR-uniqued types.
Adrian Prantl [Wed, 18 Oct 2017 00:49:31 +0000 (00:49 +0000)]
Verifier: Ignore CUs pulled in by ODR-uniqued types.

When more than one Module is imported into the same context, such as during
an LTO build before linking the modules, ODR type uniquing may cause types
to point to a different CU. This check does not make sense in this case.

This fixes the error reported in PR34944.

https://bugs.llvm.org/show_bug.cgi?id=34944
rdar://problem/34940685

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

6 years ago[aarch64][globalisel] Register banks and classes should have distinct names.
Daniel Sanders [Wed, 18 Oct 2017 00:12:43 +0000 (00:12 +0000)]
[aarch64][globalisel] Register banks and classes should have distinct names.

Otherwise they are ambiguous in MIR.

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

6 years ago[GlobalDCE] Use DenseMap instead of unordered_multimap for GVDependencies.
Michael Zolotukhin [Tue, 17 Oct 2017 23:47:06 +0000 (23:47 +0000)]
[GlobalDCE] Use DenseMap instead of unordered_multimap for GVDependencies.

Summary:
std::unordered_multimap happens to be very slow when the number of elements
grows large. On one of our internal applications we observed a 17x compile time
improvement from changing it to DenseMap.

Reviewers: mehdi_amini, serge-sans-paille, davide

Subscribers: llvm-commits

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

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

6 years agolit: Improve %: normalization.
Peter Collingbourne [Tue, 17 Oct 2017 23:46:34 +0000 (23:46 +0000)]
lit: Improve %: normalization.

The new scheme should match the normalization of embedded paths in
linkrepro tar files.

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

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

6 years agoAMDGPU : Fix an error for the llvm.cttz implementation.
Wei Ding [Tue, 17 Oct 2017 21:49:52 +0000 (21:49 +0000)]
AMDGPU : Fix an error for the llvm.cttz implementation.

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

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

6 years agoAArch64: Enable AES instruction fusion on Cyclone.
Matthias Braun [Tue, 17 Oct 2017 21:46:15 +0000 (21:46 +0000)]
AArch64: Enable AES instruction fusion on Cyclone.

Note that cyclone itself doesn't fuse, but newer apple chips do and we
are using cyclone as the default when targeting apple OSes.

The current code also does not capture all fusion patterns of apple CPUs
yet; I am still looking for ways to refactor the code nicely to extend
it.

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

6 years agoAArch64: account for possible frame index operand in compares.
Tim Northover [Tue, 17 Oct 2017 21:43:52 +0000 (21:43 +0000)]
AArch64: account for possible frame index operand in compares.

If the address of a local is used in a comparison, AArch64 can fold the
address-calculation into the comparison via "adds". Unfortunately, a couple of
places (both hit in this one test) are not ready to deal with that yet and just
assume the first source operand is a register.

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

6 years ago[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other...
Eugene Zelenko [Tue, 17 Oct 2017 21:27:42 +0000 (21:27 +0000)]
[Transforms] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

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

6 years ago[X86][SSE] Tests packuswb/truncation codegen from PR34773
Simon Pilgrim [Tue, 17 Oct 2017 21:14:53 +0000 (21:14 +0000)]
[X86][SSE] Tests packuswb/truncation codegen from PR34773

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

6 years ago[MachineOutliner][NFC] Clean up prune logic a bit
Jessica Paquette [Tue, 17 Oct 2017 21:11:58 +0000 (21:11 +0000)]
[MachineOutliner][NFC] Clean up prune logic a bit

Move the prune logic in pruneOverlaps to a new function, prune. This lets us
reuse the prune functionality. Makes the code a bit more readable. It'll also
make it easier to emit remarks/debug statements for pruned functions.

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

6 years agoRevert "[cmake] Use find_package to discover zlib"
Vassil Vassilev [Tue, 17 Oct 2017 20:51:25 +0000 (20:51 +0000)]
Revert "[cmake] Use find_package to discover zlib"

We are investigating what went wrong.

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

6 years agoFix typo in checkTwoLevelHintsCommand
Jessica Paquette [Tue, 17 Oct 2017 20:43:33 +0000 (20:43 +0000)]
Fix typo in checkTwoLevelHintsCommand

BigSize had a copy/paste typo in it. This fixes that.

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

6 years ago[cmake] Use find_package to discover zlib
Vassil Vassilev [Tue, 17 Oct 2017 20:32:27 +0000 (20:32 +0000)]
[cmake] Use find_package to discover zlib

This allows us to use standard cmake utilities to point to non-system zlib
locations.

Patch by Oksana Shadura and me (D39002).

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

6 years agoAMDGPU: Start generating metadata for MaxFlatWorkGroupSize
Konstantin Zhuravlyov [Tue, 17 Oct 2017 20:03:21 +0000 (20:03 +0000)]
AMDGPU: Start generating metadata for MaxFlatWorkGroupSize

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

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

6 years ago[MachineOutliner][NFC] Move decrement logic to OutlinedFunction
Jessica Paquette [Tue, 17 Oct 2017 19:03:23 +0000 (19:03 +0000)]
[MachineOutliner][NFC] Move decrement logic to OutlinedFunction

This commit moves the decrement logic for outlined functions into the class,
and makes OccurrenceCount private. It can now be accessed via
getOccurrenceCount().

This makes it more difficult to accidentally introduce bugs by incorrectly
decrementing the occurrence count on OutlinedFunctions.

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

6 years ago[MachineOutliner][NFC] Move end index calculation into Candidate
Jessica Paquette [Tue, 17 Oct 2017 18:43:15 +0000 (18:43 +0000)]
[MachineOutliner][NFC] Move end index calculation into Candidate

Cleanup to Candidate that moves all end index calculations into
Candidate.endIdx(). For the sake of consistency, StartIdx and Len are now
private members, and can be accessed with length() and startIdx() respectively.

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

6 years agoFix signed overflow detected by ubsan
Vitaly Buka [Tue, 17 Oct 2017 18:33:15 +0000 (18:33 +0000)]
Fix signed overflow detected by ubsan

This overflow does not affect algorithm, so just suppress it.

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

6 years ago[DAGCombine] Add SCALAR_TO_VECTOR undef handling to simplifyShuffleMask.
Simon Pilgrim [Tue, 17 Oct 2017 18:14:48 +0000 (18:14 +0000)]
[DAGCombine] Add SCALAR_TO_VECTOR undef handling to simplifyShuffleMask.

This allows us to simplify later visitVECTOR_SHUFFLE optimizations such as combineShuffleOfScalars.

Noticed whilst working on D38696

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

6 years ago[llvm-special-case-list-fuzzer] Add fuzz target.
Matt Morehouse [Tue, 17 Oct 2017 17:43:34 +0000 (17:43 +0000)]
[llvm-special-case-list-fuzzer] Add fuzz target.

Summary: Create a fuzzer for sanitizer blacklists.

Patch by: hctim

Reviewers: morehouse

Reviewed By: morehouse

Subscribers: llvm-commits, mgorny, kcc

Differential Revision: https://review.llvm.org/D38981

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

6 years ago[ARM, AArch64] adjust tests trying to maintain their objective; NFC
Sanjay Patel [Tue, 17 Oct 2017 16:54:56 +0000 (16:54 +0000)]
[ARM, AArch64] adjust tests trying to maintain their objective; NFC

A smarter compiler will see that these might be better without a jump table
if we're just using the constant values of the switch.

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

6 years ago[SimplifyCFG] add test for part of PR34471 (switch squashing); NFC
Sanjay Patel [Tue, 17 Oct 2017 15:56:42 +0000 (15:56 +0000)]
[SimplifyCFG] add test for part of PR34471 (switch squashing); NFC

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

6 years ago[SimplifyCFG] update test to use auto-generated FileCheck asserts; NFC
Sanjay Patel [Tue, 17 Oct 2017 15:50:47 +0000 (15:50 +0000)]
[SimplifyCFG] update test to use auto-generated FileCheck asserts; NFC

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

6 years agoFix pthread_[gs]etname_np detection
Sam McCall [Tue, 17 Oct 2017 15:32:17 +0000 (15:32 +0000)]
Fix pthread_[gs]etname_np detection

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

6 years ago[X86][Broadwell] Added the broadwell cpu to the scheduling regression tests.<NFC>
Gadi Haber [Tue, 17 Oct 2017 13:45:39 +0000 (13:45 +0000)]
[X86][Broadwell] Added the broadwell cpu to the scheduling regression tests.<NFC>

NFC.
Added the Broadwell cpu and the BROADWELL prefix to all the scheduling regression tests, as part of prepartion for a larger commit of adding all Broadwell scheduiling.

Reviewers: RKSimon, zvi, aaboud
Differential Revision: https://reviews.llvm.org/D38994

Change-Id: I54bc9065168844c107b1729fcdc1d311ce3ea0a9

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

6 years agoImprove clamp recognition in ValueTracking.
Nikolai Bozhenov [Tue, 17 Oct 2017 11:50:48 +0000 (11:50 +0000)]
Improve clamp recognition in ValueTracking.

Summary:
ValueTracking was recognizing not all variations of clamp. Swapping of
true value and false value of select was added to fix this problem. This
change breaks the canonical form of cmp inside the matchMinMax function,
that is why additional checks for compare predicates is needed. Added
corresponding test cases.

Reviewers: spatel

Subscribers: llvm-commits

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

Patch by: Artur Gainullin <artur.gainullin@intel.com>

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

6 years agoFix implicit null check with negative offset
Yichao Yu [Tue, 17 Oct 2017 11:47:36 +0000 (11:47 +0000)]
Fix implicit null check with negative offset

Summary:
It seems that negative offset was accidentally allowed in D17967.
AFAICT small negative offset should be valid (always raise segfault) on all archs that I'm aware of (especially x86, which is the only one with this optimization enabled) and such case can be useful when loading hiden metadata from an object.

However, like the positive side, it should only be done within a certain limit.
For now, use the same limit on the positive side for the negative side.
A separate option can be added if needs appear.

Reviewers: mcrosier, skatkov

Reviewed By: skatkov

Subscribers: sanjoy, llvm-commits

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

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

6 years agoFix `FaultMaps` crash when the out streamer is reused
Yichao Yu [Tue, 17 Oct 2017 11:44:34 +0000 (11:44 +0000)]
Fix `FaultMaps` crash when the out streamer is reused

Summary:
Make sure the map is cleared before processing a new module. Similar to what is done on `StackMaps`.

This issue is similar to D38588, though this time for FaultMaps (on x86) rather than ARM/AArch64. Other than possible mixing of information between modules, the crash is caused by the pointers values in the map that was allocated by the bump pointer allocator that is unwinded when emitting the next file. This issue has been around since 3.8.

This issue is likely much harder to write a test for since AFAICT it requires emitting something much more compilcated (and possibly real code) instead of just some random bytes.

Reviewers: skatkov, sanjoy

Reviewed By: skatkov, sanjoy

Subscribers: sanjoy, aemerson, llvm-commits, kristof.beyls

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

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