OSDN Git Service

android-x86/external-llvm.git
7 years ago[SLP] Use SCEV to sort memory accesses.
Michael Kuperstein [Fri, 3 Feb 2017 19:09:45 +0000 (19:09 +0000)]
[SLP] Use SCEV to sort memory accesses.

This generalizes memory access sorting to use differences between SCEVs,
instead of relying on constant offsets. That allows us to properly do
SLP vectorization of non-sequentially ordered loads within loops bodies.

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

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

7 years agoGlobalISel: translate dynamic alloca instructions.
Tim Northover [Fri, 3 Feb 2017 18:22:45 +0000 (18:22 +0000)]
GlobalISel: translate dynamic alloca instructions.

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

7 years agoFix a bug in llvm-obdump(1) with the -objc-meta-data flag with -macho
Kevin Enderby [Fri, 3 Feb 2017 18:22:04 +0000 (18:22 +0000)]
Fix a bug in llvm-obdump(1) with the -objc-meta-data flag with -macho
which caused a hang on a malformed binary with bad bind info.

rdar://29672108

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

7 years ago[X86][SSE] Add support for combining scalar_to_vector(extract_vector_elt) into a...
Simon Pilgrim [Fri, 3 Feb 2017 17:59:58 +0000 (17:59 +0000)]
[X86][SSE] Add support for combining scalar_to_vector(extract_vector_elt) into a target shuffle.

Correctly flagging upper elements as undef.

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

7 years ago[X86][SSE] Renamed all_of/any_of reduction patterns tests
Simon Pilgrim [Fri, 3 Feb 2017 17:31:01 +0000 (17:31 +0000)]
[X86][SSE] Renamed all_of/any_of reduction patterns tests

Make it clear these tests sign-extend the comparison result. Some patterns zero-extend to a bool result that we still need to handle.

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

7 years agoNFC: [LoopUnroll] More meaningful message in tracing
Anna Thomas [Fri, 3 Feb 2017 17:12:43 +0000 (17:12 +0000)]
NFC: [LoopUnroll] More meaningful message in tracing

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

7 years agoIRMover: Merge flags LinkModuleInlineAsm and IsPerformingImport.
Peter Collingbourne [Fri, 3 Feb 2017 17:01:14 +0000 (17:01 +0000)]
IRMover: Merge flags LinkModuleInlineAsm and IsPerformingImport.

Currently these flags are always the inverse of each other, so there is
no need to keep them separate.

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

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

7 years agoModuleLinker: Remove importing support. NFCI.
Peter Collingbourne [Fri, 3 Feb 2017 16:58:19 +0000 (16:58 +0000)]
ModuleLinker: Remove importing support. NFCI.

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

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

7 years agoFunctionImport: Use IRMover directly.
Peter Collingbourne [Fri, 3 Feb 2017 16:56:27 +0000 (16:56 +0000)]
FunctionImport: Use IRMover directly.

The importer was previously using ModuleLinker in a sort of "IRMover mode". Use
IRMover directly instead in order to remove a level of indirection.

I will remove all importing support from ModuleLinker in a separate
change.

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

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

7 years agoObject: Handle files without a dynamic symbol table.
Peter Collingbourne [Fri, 3 Feb 2017 16:53:55 +0000 (16:53 +0000)]
Object: Handle files without a dynamic symbol table.

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

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

7 years ago[mips] Remove absolute size assertion for end directive
Simon Dardis [Fri, 3 Feb 2017 15:48:53 +0000 (15:48 +0000)]
[mips] Remove absolute size assertion for end directive

The .end <symbol> directive for MIPS marks the end of a symbol and sets the
symbol's size. Previously, the corresponding emitDirective handler asserted
that a function's size could be evaluated to an absolute value at that point
in time.

This cannot be done with when directives like .align have been encountered,
instead set the function's size to the corresponding symbolic expression and
let ELFObjectWriter resolve the expression to an absolute value. This avoids
a redundant call to evaluateAsAbsolute.

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

7 years ago[NVPTX] Enable combineRepeatedFPDivisors for NVPTX.
Justin Lebar [Fri, 3 Feb 2017 15:13:50 +0000 (15:13 +0000)]
[NVPTX] Enable combineRepeatedFPDivisors for NVPTX.

Reviewers: tra

Subscribers: jholewinski, llvm-commits

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

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

7 years ago[ADT] Fix comment on StringRef::take_back. NFC
Justin Lebar [Fri, 3 Feb 2017 15:13:34 +0000 (15:13 +0000)]
[ADT] Fix comment on StringRef::take_back.  NFC

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

7 years ago[globalisel] Fix missing break.
Daniel Sanders [Fri, 3 Feb 2017 14:18:35 +0000 (14:18 +0000)]
[globalisel] Fix missing break.

The instruction selector has been emitting the register bank information too.

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

7 years ago[AMDGPU][mc] Fix AddressSanitizer leftover issue in gfx7_asm_all test
Artem Tamazov [Fri, 3 Feb 2017 12:47:30 +0000 (12:47 +0000)]
[AMDGPU][mc] Fix AddressSanitizer leftover issue in gfx7_asm_all test

Issue occurs when assembling "ds_ordered_count v0, v0 gds".

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

7 years ago[SelectionDAG] Fix for PR30775: Assertion `NodeToMatch->getOpcode() !=
Alexey Bataev [Fri, 3 Feb 2017 12:28:40 +0000 (12:28 +0000)]
[SelectionDAG] Fix for PR30775: Assertion `NodeToMatch->getOpcode() !=
ISD::DELETED_NODE && "NodeToMatch was removed partway through
selection"' failed.

NodeToMatch can be modified during matching, but code does not handle
this situation.

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

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

7 years ago[ARM] Change TCReturn to tBL if tailcall optimization fails.
Sanne Wouda [Fri, 3 Feb 2017 11:15:53 +0000 (11:15 +0000)]
[ARM] Change TCReturn to tBL if tailcall optimization fails.

Summary:
The tail call optimisation is performed before register allocation, so
at that point we don't know if LR is being spilt or not. If LR was spilt
to the stack, then we cannot do a tail call optimisation. That would
involve popping back into LR which is not possible in Thumb1 code.

Reviewers: rengolin, jmolloy, rovka, olista01

Reviewed By: olista01

Subscribers: llvm-commits, aemerson

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

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

7 years ago[LLC] Add an inline assembly diagnostics handler.
Sanne Wouda [Fri, 3 Feb 2017 11:14:39 +0000 (11:14 +0000)]
[LLC] Add an inline assembly diagnostics handler.

Summary:
llc would hit a fatal error for errors in inline assembly. The
diagnostics message is now printed.

Reviewers: rengolin, MatzeB, javed.absar, anemet

Reviewed By: anemet

Subscribers: jyknight, nemanjai, llvm-commits

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

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

7 years agoTest commit: remove a blank line.
Sanne Wouda [Fri, 3 Feb 2017 10:56:57 +0000 (10:56 +0000)]
Test commit: remove a blank line.

Testing commit access.

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

7 years ago[SLP] Fix for PR31690: Allow using of extra values in horizontal reductions.
Alexey Bataev [Fri, 3 Feb 2017 08:08:50 +0000 (08:08 +0000)]
[SLP] Fix for PR31690: Allow using of extra values in horizontal reductions.

Currently LLVM supports vectorization of horizontal reduction
instructions with initial value set to 0. Patch supports vectorization
of reduction with non-zero initial values. Also it supports a
vectorization of instructions with some extra arguments, like:

float f(float x[], int a, int b) {
  float p = a % b;
  p += x[0] + 3;
  for (int i = 1; i < 32; i++)
    p += x[i];
  return p;
}

Patch allows vectorization of this kind of horizontal reductions.

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

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

7 years agoRevert "[ThinLTO] Add an auto-hide feature"
Mehdi Amini [Fri, 3 Feb 2017 07:41:43 +0000 (07:41 +0000)]
Revert "[ThinLTO] Add an auto-hide feature"

This reverts commit r293970.

After more discussion, this belongs to the linker side and
there is no added value to do it at this level.

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

7 years ago[AMDGPU] Unroll preferences improvements
Stanislav Mekhanoshin [Fri, 3 Feb 2017 02:20:05 +0000 (02:20 +0000)]
[AMDGPU] Unroll preferences improvements

Exit loop analysis early if suitable private access found.
Do not account for GEPs which are invariant to loop induction variable.
Do not account for Allocas which are too big to fit into register file anyway.
Add option for tuning: -amdgpu-unroll-threshold-private.

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

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

7 years ago[Support] Accept macosx triple as 'darwin' in Host unittest. NFC.
Ahmed Bougacha [Fri, 3 Feb 2017 01:32:39 +0000 (01:32 +0000)]
[Support] Accept macosx triple as 'darwin' in Host unittest. NFC.

If LLVM was configured with an x86_64-apple-macosx host triple, this
test would fail, as the API works but the triple isn't in the whitelist.

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

7 years ago[sanitizer coverage] Fix Instrumentation to work on Windows.
Marcos Pividori [Fri, 3 Feb 2017 01:08:06 +0000 (01:08 +0000)]
[sanitizer coverage] Fix Instrumentation to work on Windows.

On Windows, the symbols "___stop___sancov_guards" and "___start___sancov_guards"
are not defined automatically. So, we need to take a different approach.
We define 3 sections:

 Section ".SCOV$A" will only hold a variable ___start___sancov_guard.
 Section ".SCOV$M" will hold the main data.
 Section ".SCOV$Z" will only hold a variable ___stop___sancov_guards.

When linking, they will be merged sorted by the characters after the $, so we
can use the pointers of the variables ___[start|stop]___sancov_guard to know the
actual range of addresses of that section.

In this diff, I updated instrumentation to include all the guard arrays in
section ".SCOV$M".

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

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

7 years agoAMDGPU: Fold fneg into fmin/fmax_legacy
Matt Arsenault [Fri, 3 Feb 2017 00:51:50 +0000 (00:51 +0000)]
AMDGPU: Fold fneg into fmin/fmax_legacy

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

7 years agoDebugInfo: ensure type and namespace names are included in pubnames/pubtypes even...
David Blaikie [Fri, 3 Feb 2017 00:44:18 +0000 (00:44 +0000)]
DebugInfo: ensure type and namespace names are included in pubnames/pubtypes even when they are only present in type units

While looking to add support for placing singular types (types that will
only be emitted in one place (such as attached to a strong vtable or
explicit template instantiation definition)) not in type units (since
type units have overhead) I stumbled across that change causing an
increase in pubtypes.

Turns out we were missing some types from type units if they were only
referenced from other type units and not from the debug_info section.

This fixes that, following GCC's line of describing the offset of such
entities as the CU die (since there's no compile unit-relative offset
that would describe such an entity - they aren't in the CU). Also like
GCC, this change prefers to describe the type stub within the CU rather
than the "just use the CU offset" fallback where possible. This may give
the DWARF consumer some opportunity to find the extra info in the type
stub - though I'm not sure GDB does anything with this currently.

The size of the pubnames/pubtypes sections now match exactly with or
without type units enabled.

This nearly triples (+189%) the pubtypes section for a clang self-host
and grows pubnames by 0.07% (without compression). For a total of 8%
increase in debug info sections of the objects of a Split DWARF build
when using type units.

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

7 years ago[ThinLTO] Add an auto-hide feature
Mehdi Amini [Fri, 3 Feb 2017 00:32:38 +0000 (00:32 +0000)]
[ThinLTO] Add an auto-hide feature

When a symbol is not exported outside of the
DSO, it is can be hidden. Usually we try to internalize
as much as possible, but it is not always possible, for
instance a symbol can be referenced outside of the LTO
unit, or there can be cross-module reference in ThinLTO.

This is a recommit of r293912 after fixing build failures,
and a recommit of r293918 after fixing LLD tests.

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

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

7 years ago[X86] Mark 256-bit and 512-bit INSERT_SUBVECTOR operations as legal and remove the...
Craig Topper [Fri, 3 Feb 2017 00:24:49 +0000 (00:24 +0000)]
[X86] Mark 256-bit and 512-bit INSERT_SUBVECTOR operations as legal and remove the custom lowering.

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

7 years agoAMDGPU: Fold fneg into fminnum/fmaxnum
Matt Arsenault [Fri, 3 Feb 2017 00:23:15 +0000 (00:23 +0000)]
AMDGPU: Fold fneg into fminnum/fmaxnum

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

7 years agollvm-readobj: fix next note entry calculation and print unknown note types
Konstantin Zhuravlyov [Thu, 2 Feb 2017 23:44:49 +0000 (23:44 +0000)]
llvm-readobj: fix next note entry calculation and print unknown note types

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

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

7 years agoAMDGPU: Check if users of fneg can fold mods
Matt Arsenault [Thu, 2 Feb 2017 23:21:23 +0000 (23:21 +0000)]
AMDGPU: Check if users of fneg can fold mods

In multi-use cases this can save a few instructions.

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

7 years agoRevert "[ThinLTO] Add an auto-hide feature"
Mehdi Amini [Thu, 2 Feb 2017 23:20:36 +0000 (23:20 +0000)]
Revert "[ThinLTO] Add an auto-hide feature"

This reverts commit r293918, one lld test does not pass.

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

7 years ago[lto] added getCOFFWeakExternalFallback
Bob Haarman [Thu, 2 Feb 2017 23:10:22 +0000 (23:10 +0000)]
[lto] added getCOFFWeakExternalFallback

Summary: This allows clients of the LTO API to determine the name of the fallback symbol for COFF weak externals.

Reviewers: pcc

Reviewed By: pcc

Subscribers: mehdi_amini

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

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

7 years ago[lto] add getLinkerOpts()
Bob Haarman [Thu, 2 Feb 2017 23:00:49 +0000 (23:00 +0000)]
[lto] add getLinkerOpts()

Summary: Some compilers, including MSVC and Clang, allow linker options to be specified in source files. In the legacy LTO API, there is a getLinkerOpts() method that returns linker options for the bitcode module being processed. This change adds that method to the new API, so that the COFF linker can get the right linker options when using the new LTO API.

Reviewers: pcc, ruiu, mehdi_amini, tejohnson

Reviewed By: pcc

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

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

7 years ago[X86] Fix some Clang-tidy modernize and Include What You Use warnings; other minor...
Eugene Zelenko [Thu, 2 Feb 2017 22:55:55 +0000 (22:55 +0000)]
[X86] 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@293949 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoRelax test so that it passes on OS X.
Rafael Espindola [Thu, 2 Feb 2017 22:08:25 +0000 (22:08 +0000)]
Relax test so that it passes on OS X.

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

7 years ago[X86] Avoid sorted order check in release builds
Reid Kleckner [Thu, 2 Feb 2017 22:06:30 +0000 (22:06 +0000)]
[X86] Avoid sorted order check in release builds

Effectively reverts r290248 and fixes the unused function warning with
ifndef NDEBUG.

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

7 years ago[X86] Move turning 256-bit INSERT_SUBVECTORS into BLENDI from legalize to DAG combine.
Craig Topper [Thu, 2 Feb 2017 22:02:57 +0000 (22:02 +0000)]
[X86] Move turning 256-bit INSERT_SUBVECTORS into BLENDI from legalize to DAG combine.

On one test this seems to have given more chance for DAG combine to do other INSERT_SUBVECTOR/EXTRACT_SUBVECTOR combines before the BLENDI was created. Looks like we can still improve more by teaching DAG combine to optimize INSERT_SUBVECTOR/EXTRACT_SUBVECTOR with BLENDI.

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

7 years ago[CodeGen] Remove dead call-or-prologue enum from CCState
Reid Kleckner [Thu, 2 Feb 2017 21:58:22 +0000 (21:58 +0000)]
[CodeGen] Remove dead call-or-prologue enum from CCState

This enum has been dead since Olivier Stannard re-implemented ARM byval
handling in r202985 (2014).

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

7 years ago[PGO] internal option cleanups
Xinliang David Li [Thu, 2 Feb 2017 21:29:17 +0000 (21:29 +0000)]
[PGO] internal option cleanups

1. Added comments for options
2. Added missing option cl::desc field
3. Uniified function filter option for graph viewing.
   Now PGO count/raw-counts share the same
   filter option: -view-bfi-func-name=.

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

7 years agoChange how we handle section symbols on ELF.
Rafael Espindola [Thu, 2 Feb 2017 21:26:06 +0000 (21:26 +0000)]
Change how we handle section symbols on ELF.

On ELF every section can have a corresponding section symbol. When in
an assembly file we have

.quad .text

the '.text' refers to that symbol.

The way we used to handle them is to leave .text an undefined symbol
until the very end when the object writer would map them to the
actual section symbol.

The problem with that is that anything before the end would see an
undefined symbol. This could result in bad diagnostics
(test/MC/AArch64/label-arithmetic-diags-elf.s), or incorrect results
when using the asm streamer (est/MC/Mips/expansion-jal-sym-pic.s).

Fixing this will also allow using the section symbol earlier for
setting sh_link of SHF_METADATA sections.

This patch includes a few hacks to avoid changing our behaviour when
handling conflicts between section symbols and other symbols. I
reported pr31850 to track that.

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

7 years ago[ARM] Classification Improvements to ARM Sched-Model. NFCI.
Javed Absar [Thu, 2 Feb 2017 21:08:12 +0000 (21:08 +0000)]
[ARM] Classification Improvements to ARM Sched-Model. NFCI.

This is the second in the series of patches to enable adding
of machine sched-models for ARM processors easier and compact.
This patch focuses on integer instructions and adds missing
sched definitions.

Reviewers: rovka, rengolin
Differential Revision: https://reviews.llvm.org/D29127

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

7 years ago[LiveRangeEdit] Don't mess up with LiveInterval when a new vreg is created.
Quentin Colombet [Thu, 2 Feb 2017 20:44:36 +0000 (20:44 +0000)]
[LiveRangeEdit] Don't mess up with LiveInterval when a new vreg is created.

In r283838, we added the capability of splitting unspillable register.
When doing so we had to make sure the split live-ranges were also
unspillable and we did that by marking the related live-ranges in the
delegate method that is called when a new vreg is created.
However, by accessing the live-range there, we also triggered their lazy
computation (LiveIntervalAnalysis::getInterval) which is not what we
want in general. Indeed, later code in LiveRangeEdit is going to build
the live-ranges this lazy computation may mess up that computation
resulting in assertion failures. Namely, the createEmptyIntervalFrom
method expect that the live-range is going to be empty, not computed.

Thanks to Mikael Holmén <mikael.holmen@ericsson.com> for noticing and
reporting the problem.

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

7 years ago[Hexagon] Adding opExtentBits and opExtentAlign to GPrel instructions
Krzysztof Parzyszek [Thu, 2 Feb 2017 20:35:12 +0000 (20:35 +0000)]
[Hexagon] Adding opExtentBits and opExtentAlign to GPrel instructions

Patch by Colin LeMahieu.

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

7 years ago[X86] Add costs for non-AVX512 single-source permutation integer shuffles
Michael Kuperstein [Thu, 2 Feb 2017 20:27:13 +0000 (20:27 +0000)]
[X86] Add costs for non-AVX512 single-source permutation integer shuffles

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

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

7 years ago[Hexagon] Fix relocation kind for extended predicated calls
Krzysztof Parzyszek [Thu, 2 Feb 2017 20:21:56 +0000 (20:21 +0000)]
[Hexagon] Fix relocation kind for extended predicated calls

Patch by Sid Manning.

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

7 years ago[Hexagon] Remove A4_ext_* pseudo instructions
Krzysztof Parzyszek [Thu, 2 Feb 2017 19:58:22 +0000 (19:58 +0000)]
[Hexagon] Remove A4_ext_* pseudo instructions

Patch by Colin LeMahieu.

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

7 years ago[libFuzzer] reorganize the tracing code to make it easier to experiment with inlined...
Kostya Serebryany [Thu, 2 Feb 2017 19:56:01 +0000 (19:56 +0000)]
[libFuzzer] reorganize the tracing code to make it easier to experiment with inlined coverage instrumentation. NFC

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

7 years ago[Hexagon] Fix insertBranch for loops with multiple ENDLOOP instructions
Krzysztof Parzyszek [Thu, 2 Feb 2017 19:36:37 +0000 (19:36 +0000)]
[Hexagon] Fix insertBranch for loops with multiple ENDLOOP instructions

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

7 years ago[WebAssembly] Add instruction definitions for drop and get/set_global.
Dan Gohman [Thu, 2 Feb 2017 19:29:44 +0000 (19:29 +0000)]
[WebAssembly] Add instruction definitions for drop and get/set_global.

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

7 years ago[PGO] make graph view internal options available for all builds
Xinliang David Li [Thu, 2 Feb 2017 19:18:56 +0000 (19:18 +0000)]
[PGO] make graph view internal options available for all builds

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

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

7 years ago[libFuzzer] Properly handle exceptions with UnhandledExceptionFilter.
Marcos Pividori [Thu, 2 Feb 2017 19:07:53 +0000 (19:07 +0000)]
[libFuzzer] Properly handle exceptions with UnhandledExceptionFilter.

Use SetUnhandledExceptionFilter instead of AddVectoredExceptionHandler.

According to the documentation on Structured Exception Handling, this is the
order for the Exception Dispatching:
+ If the process is being debugged, the system notifies the debugger.
+ The Vectored Exception Handler is called.
+ The system attempts to locate a frame-based exception handler by searching the
 stack frames of the thread in which the exception occurred.
+ If no frame-based handler can be found, the UnhandledExceptionFilter filter is
 called.
+ Default handling based on the exception type.

So, similar to what we do for asan, we should use SetUnhandledExceptionFilter
instead of AddVectoredExceptionHandler, so user's code that is being fuzzed can
execute frame-based exception handlers before we catch them . We want to catch
unhandled exceptions, not all the exceptions.

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

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

7 years agoFunctionImport: Remove the -disable-force-link-odr flag and change importFunctions...
Peter Collingbourne [Thu, 2 Feb 2017 18:42:25 +0000 (18:42 +0000)]
FunctionImport: Remove the -disable-force-link-odr flag and change importFunctions to never force link.

This removes some functionality that was only being used by tests.

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

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

7 years ago[ThinLTO] Add an auto-hide feature
Mehdi Amini [Thu, 2 Feb 2017 18:31:35 +0000 (18:31 +0000)]
[ThinLTO] Add an auto-hide feature

When a symbol is not exported outside of the
DSO, it is can be hidden. Usually we try to internalize
as much as possible, but it is not always possible, for
instance a symbol can be referenced outside of the LTO
unit, or there can be cross-module reference in ThinLTO.

This is a recommit of r293912 after fixing build failures.

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

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

7 years ago[X86][XOP] Added FIXME comments to missed shuffle combine opportunities
Simon Pilgrim [Thu, 2 Feb 2017 18:26:28 +0000 (18:26 +0000)]
[X86][XOP] Added FIXME comments to missed shuffle combine opportunities

Requested by @silvas

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

7 years agoRevert "In visitSTORE, always use FindBetterChain, rather than only when UseAA is...
Nirav Dave [Thu, 2 Feb 2017 18:24:55 +0000 (18:24 +0000)]
Revert "In visitSTORE, always use FindBetterChain, rather than only when UseAA is enabled."

This reverts commit r293893 which is miscompiling lua on ARM and
bootstrapping for x86-windows.

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

7 years agoRevert "[ThinLTO] Add an auto-hide feature"
Mehdi Amini [Thu, 2 Feb 2017 18:24:37 +0000 (18:24 +0000)]
Revert "[ThinLTO] Add an auto-hide feature"

This reverts r293912, bots are broken.

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

7 years ago[ThinLTO] Add an auto-hide feature
Mehdi Amini [Thu, 2 Feb 2017 18:13:46 +0000 (18:13 +0000)]
[ThinLTO] Add an auto-hide feature

When a symbol is not exported outside of the
DSO, it is can be hidden. Usually we try to internalize
as much as possible, but it is not always possible, for
instance a symbol can be referenced outside of the LTO
unit, or there can be cross-module reference in ThinLTO.

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

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

7 years ago[ThinLTO] PrintStatistics when we exit early for thinlto-index-only
Teresa Johnson [Thu, 2 Feb 2017 17:33:53 +0000 (17:33 +0000)]
[ThinLTO] PrintStatistics when we exit early for thinlto-index-only

Summary:
This is necessary to get stats from the ThinLink printed before the
early exit when compiling in a distributed build.

Reviewers: mehdi_amini

Subscribers: Prazek, llvm-commits

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

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

7 years ago[X86][SSE] Add test case for PR18344
Simon Pilgrim [Thu, 2 Feb 2017 17:23:57 +0000 (17:23 +0000)]
[X86][SSE] Add test case for PR18344

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

7 years ago[mips] Expansion of BEQL and BNEL with immediate operands
Simon Dardis [Thu, 2 Feb 2017 16:13:49 +0000 (16:13 +0000)]
[mips] Expansion of BEQL and BNEL with immediate operands

Adds support for BEQL and BNEL macros with immediate operands.

Patch by: Srdjan Obucina

Reviewers: dsanders, zoran.jovanovic, vkalintiris, sdardis, obucina, seanbruno

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

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

7 years agoUse N0 instead of N->getOperand(0) in DagCombiner::visitAdd. NFC
Amaury Sechet [Thu, 2 Feb 2017 16:07:44 +0000 (16:07 +0000)]
Use N0 instead of N->getOperand(0) in DagCombiner::visitAdd. NFC

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

7 years agoMake llvm::call_once more convenient to reuse out of LLVM
Kamil Rytarowski [Thu, 2 Feb 2017 16:06:33 +0000 (16:06 +0000)]
Make llvm::call_once more convenient to reuse out of LLVM

Summary:
Currently users need to set call `using namespace llvm;`, with this change it's no longer needed.

Sponsored by <The NetBSD Foundation>

Reviewers: labath, emaste, joerg, clayborg, mehdi_amini

Reviewed By: mehdi_amini

Subscribers: chandlerc

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

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

7 years ago[ThinLTO] Resolve old FIXME for alias importing in test
Teresa Johnson [Thu, 2 Feb 2017 15:58:06 +0000 (15:58 +0000)]
[ThinLTO] Resolve old FIXME for alias importing in test

This FIXME was added with r265941 and should have been resolved with
r266517.

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

7 years ago[SystemZ] Add comment for ISD::FP_TO_UINT expansion.
Jonas Paulsson [Thu, 2 Feb 2017 15:42:14 +0000 (15:42 +0000)]
[SystemZ] Add comment for ISD::FP_TO_UINT expansion.

(Copied from the fp-conv-10.ll test to SystemZISelLowering.cpp)

Review: Ulrich Weigand

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

7 years ago[Hexagon] Emitting individual instructions without copying them
Krzysztof Parzyszek [Thu, 2 Feb 2017 15:32:26 +0000 (15:32 +0000)]
[Hexagon] Emitting individual instructions without copying them

Patch by Colin LeMahieu.

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

7 years ago[JumpThread] Enhance finding partial redundant loads by continuing scanning single...
Jun Bum Lim [Thu, 2 Feb 2017 15:12:34 +0000 (15:12 +0000)]
[JumpThread] Enhance finding partial redundant loads by continuing scanning single predecessor

Summary: While scanning predecessors to find an available loaded value, if the predecessor has a single predecessor, we can continue scanning through the single predecessor.

Reviewers: mcrosier, rengolin, reames, davidxl, haicheng

Reviewed By: rengolin

Subscribers: zzheng, llvm-commits

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

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

7 years ago[Hexagon] Rename TypeCOMPOUND to TypeCJ
Krzysztof Parzyszek [Thu, 2 Feb 2017 15:03:30 +0000 (15:03 +0000)]
[Hexagon] Rename TypeCOMPOUND to TypeCJ

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

7 years agoIn visitSTORE, always use FindBetterChain, rather than only when UseAA is enabled.
Nirav Dave [Thu, 2 Feb 2017 14:39:42 +0000 (14:39 +0000)]
In visitSTORE, always use FindBetterChain, rather than only when UseAA is enabled.

    Recommiting after fixing X86 inc/dec chain bug.

    * Simplify Consecutive Merge Store Candidate Search

    Now that address aliasing is much less conservative, push through
    simplified store merging search and chain alias analysis which only
    checks for parallel stores through the chain subgraph. This is cleaner
    as the separation of non-interfering loads/stores from the
    store-merging logic.

    When merging stores search up the chain through a single load, and
    finds all possible stores by looking down from through a load and a
    TokenFactor to all stores visited.

    This improves the quality of the output SelectionDAG and the output
    Codegen (save perhaps for some ARM cases where we correctly constructs
    wider loads, but then promotes them to float operations which appear
    but requires more expensive constant generation).

    Some minor peephole optimizations to deal with improved SubDAG shapes (listed below)

    Additional Minor Changes:

      1. Finishes removing unused AliasLoad code

      2. Unifies the chain aggregation in the merged stores across code
         paths

      3. Re-add the Store node to the worklist after calling
         SimplifyDemandedBits.

      4. Increase GatherAllAliasesMaxDepth from 6 to 18. That number is
         arbitrary, but seems sufficient to not cause regressions in
         tests.

      5. Remove Chain dependencies of Memory operations on CopyfromReg
         nodes as these are captured by data dependence

      6. Forward loads-store values through tokenfactors containing
          {CopyToReg,CopyFromReg} Values.

      7. Peephole to convert buildvector of extract_vector_elt to
         extract_subvector if possible (see
         CodeGen/AArch64/store-merge.ll)

      8. Store merging for the ARM target is restricted to 32-bit as
         some in some contexts invalid 64-bit operations are being
         generated. This can be removed once appropriate checks are
         added.

    This finishes the change Matt Arsenault started in r246307 and
    jyknight's original patch.

    Many tests required some changes as memory operations are now
    reorderable, improving load-store forwarding. One test in
    particular is worth noting:

      CodeGen/PowerPC/ppc64-align-long-double.ll - Improved load-store
      forwarding converts a load-store pair into a parallel store and
      a memory-realized bitcast of the same value. However, because we
      lose the sharing of the explicit and implicit store values we
      must create another local store. A similar transformation
      happens before SelectionDAG as well.

    Reviewers: arsenm, hfinkel, tstellarAMD, jyknight, nhaehnle

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

7 years ago[X86,ISEL] Fix X86 increment chain dependence calculation
Nirav Dave [Thu, 2 Feb 2017 14:39:26 +0000 (14:39 +0000)]
[X86,ISEL] Fix X86 increment chain dependence calculation

Merging Load-add-store pattern into a increment op previously dropped
the load's chain from the instructions dependence if the store is
chained to a TokenFactor.

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

7 years ago[ARM] GlobalISel: Lower pointer args and returns
Diana Picus [Thu, 2 Feb 2017 14:01:00 +0000 (14:01 +0000)]
[ARM] GlobalISel: Lower pointer args and returns

It is important to change the ArgInfo's type from pointer to integer, otherwise
the CC assign function won't know what to do. Instead of hacking it up, we use
ComputeValueVTs and introduce some of the helpers that we will need later on for
lowering more complex types.

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

7 years ago[ARM] GlobalISel: Error out instead of asserting
Diana Picus [Thu, 2 Feb 2017 14:00:54 +0000 (14:00 +0000)]
[ARM] GlobalISel: Error out instead of asserting

Allow unknown types in TLI.getValueType, otherwise we get asserts for certain
types that we do not support yet (instead of returning that we don't support
them and falling through the normal error path).

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

7 years ago[LICM] Hoist loads that are dominated by invariant.start intrinsic, and are invariant...
Anna Thomas [Thu, 2 Feb 2017 13:22:03 +0000 (13:22 +0000)]
[LICM] Hoist loads that are dominated by invariant.start intrinsic, and are invariant in the loop.

Summary:
We can hoist out loads that are dominated by invariant.start, to the preheader.
We conservatively assume the load is variant, if we see a corresponding
use of invariant.start (it could be an invariant.end or an escaping
call).

Reviewers: mkuper, sanjoy, reames

Subscribers: llvm-commits

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

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

7 years ago[ARM] GlobalISel: Legalize loading pointers
Diana Picus [Thu, 2 Feb 2017 13:20:49 +0000 (13:20 +0000)]
[ARM] GlobalISel: Legalize loading pointers

Make it legal to load pointer values. Also check that pointers are assigned
to the GPR reg bank by default.

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

7 years ago[ARM] GlobalISel: Test default banks for load results. NFC.
Diana Picus [Thu, 2 Feb 2017 13:00:24 +0000 (13:00 +0000)]
[ARM] GlobalISel: Test default banks for load results. NFC.

Check that all scalars are loaded into the GPR by default.

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

7 years ago[X86][SSE] Use MOVMSK for all_of/any_of reduction patterns
Simon Pilgrim [Thu, 2 Feb 2017 11:52:33 +0000 (11:52 +0000)]
[X86][SSE] Use MOVMSK for all_of/any_of reduction patterns

This is a first attempt at using the MOVMSK instructions to replace all_of/any_of reduction patterns (i.e. an and/or + shuffle chain).

So far this only matches patterns where we are reducing an all/none bits source vector (i.e. a comparison result) but we should be able to expand on this in conjunction with improvements to 'bool vector' handling both in the x86 backend as well as the vectorizers etc.

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

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

7 years agoDIBuilder.h: Fix a typo. [-Wdocumentation]
NAKAMURA Takumi [Thu, 2 Feb 2017 09:55:22 +0000 (09:55 +0000)]
DIBuilder.h: Fix a typo. [-Wdocumentation]

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

7 years ago[X86] Remove some unused DAGCombinerInfo parameters. NFC
Craig Topper [Thu, 2 Feb 2017 08:03:23 +0000 (08:03 +0000)]
[X86] Remove some unused DAGCombinerInfo parameters. NFC

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

7 years ago[X86] Move some INSERT_SUBVECTOR optimizations from legalize to DAG combine.
Craig Topper [Thu, 2 Feb 2017 08:03:20 +0000 (08:03 +0000)]
[X86] Move some INSERT_SUBVECTOR optimizations from legalize to DAG combine.

This moves creation of SUBV_BROADCAST and merging of adjacent loads that are being inserted together.

This is a step towards removing legalizing of INSERT_SUBVECTOR except for vXi1 cases.

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

7 years ago[opt-viewer] HTML-escape function names
Adam Nemet [Thu, 2 Feb 2017 05:49:02 +0000 (05:49 +0000)]
[opt-viewer] HTML-escape function names

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

7 years ago[opt-viewer] Alternating row background colors on index page
Adam Nemet [Thu, 2 Feb 2017 05:49:00 +0000 (05:49 +0000)]
[opt-viewer] Alternating row background colors on index page

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

7 years ago[LV] Also port failure remarks to new OptimizationRemarkEmitter API
Adam Nemet [Thu, 2 Feb 2017 05:41:51 +0000 (05:41 +0000)]
[LV] Also port failure remarks to new OptimizationRemarkEmitter API

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

7 years agoLTO: Link non-prevailing weak_odr or linkonce_odr globals into the combined module...
Peter Collingbourne [Thu, 2 Feb 2017 05:22:42 +0000 (05:22 +0000)]
LTO: Link non-prevailing weak_odr or linkonce_odr globals into the combined module with available_externally linkage.

These linkages mean that the ultimately prevailing symbol will have the same
semantics as any non-prevailing copy of the symbol, so we are free to ignore
the linker's resolution.

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

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

7 years agoLinker: Move special casing for available_externally in IRMover to clients. NFCI.
Peter Collingbourne [Thu, 2 Feb 2017 05:12:15 +0000 (05:12 +0000)]
Linker: Move special casing for available_externally in IRMover to clients. NFCI.

The goal is to simplify the semantic model for clients of IRMover.

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

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

7 years ago[AVX-512] Fix the implicit defs for VZEROALL/VZEROUPPER to include YMM16-YMM31.
Craig Topper [Thu, 2 Feb 2017 04:17:18 +0000 (04:17 +0000)]
[AVX-512] Fix the implicit defs for VZEROALL/VZEROUPPER to include YMM16-YMM31.

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

7 years ago[AVX-512] Add test case demonstrating that we have an incomplete implicit def list...
Craig Topper [Thu, 2 Feb 2017 04:17:15 +0000 (04:17 +0000)]
[AVX-512] Add test case demonstrating that we have an incomplete implicit def list for VZEROALL/VZEROUPPER. YMM16-YMM31 should also be defs.

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

7 years ago[X86] Use update_llc_test_checks.py to regenerate a test.
Craig Topper [Thu, 2 Feb 2017 04:17:12 +0000 (04:17 +0000)]
[X86] Use update_llc_test_checks.py to regenerate a test.

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

7 years agoInferAddressSpaces: Handle more cases with constant select operands
Matt Arsenault [Thu, 2 Feb 2017 03:37:22 +0000 (03:37 +0000)]
InferAddressSpaces: Handle more cases with constant select operands

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

7 years agoAMDGPU: Use source modifiers with f16->f32 conversions
Matt Arsenault [Thu, 2 Feb 2017 02:27:04 +0000 (02:27 +0000)]
AMDGPU: Use source modifiers with f16->f32 conversions

The operand types were defined to fit the fp16_to_fp node, which
has the half as an integer type. v_cvt_f32_f16 does support
source modifiers, so change this to have an FP type and modifiers.

For targets without legal f16, this requires recognizing the
bit operations and trying to produce them.

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

7 years agoRegisterCoalescer: Cleanup joinReservedPhysReg(); NFC
Matthias Braun [Thu, 2 Feb 2017 02:23:27 +0000 (02:23 +0000)]
RegisterCoalescer: Cleanup joinReservedPhysReg(); NFC

- Factor out a common subexpression
- Add some helpful comments
- Fix printing of a register in a debug message

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

7 years agoAArch64RegisterInfo: Simplify getReservedReg(); NFC
Matthias Braun [Thu, 2 Feb 2017 02:23:25 +0000 (02:23 +0000)]
AArch64RegisterInfo: Simplify getReservedReg(); NFC

After marking a 32bit register and all its super registers the 64bit
register does not need to be marked again.

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

7 years agoRefactor the gmlt tests. (NFC)
Dehao Chen [Thu, 2 Feb 2017 01:21:13 +0000 (01:21 +0000)]
Refactor the gmlt tests. (NFC)

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

7 years agoNVPTX: Fix not preserving volatile when expanding memset
Matt Arsenault [Thu, 2 Feb 2017 01:20:34 +0000 (01:20 +0000)]
NVPTX: Fix not preserving volatile when expanding memset

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

7 years agoFix LLDB Android AArch64 GCC debug info build
Omair Javaid [Thu, 2 Feb 2017 01:17:49 +0000 (01:17 +0000)]
Fix LLDB Android AArch64 GCC debug info build

Committing after fixing suggested changes and tested release/debug builds on
x86_64-linux and arm/aarch64 builds.

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

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

7 years agoRe-submit r293820: Return Error instead of bool from mergeTypeStreams().
Rui Ueyama [Thu, 2 Feb 2017 00:47:10 +0000 (00:47 +0000)]
Re-submit r293820: Return Error instead of bool from mergeTypeStreams().

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

7 years ago[IPSCCP] Restore the old behaviour (pre r293799).
Davide Italiano [Thu, 2 Feb 2017 00:46:54 +0000 (00:46 +0000)]
[IPSCCP] Restore the old behaviour (pre r293799).

It's not clear the change I made a good idea, and it definitely needs
further discussion. Thanks to Eli for pointing out.

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

7 years agoX86: Produce @ABS8 symbol modifiers for absolute symbols in range [0,128).
Peter Collingbourne [Thu, 2 Feb 2017 00:32:03 +0000 (00:32 +0000)]
X86: Produce @ABS8 symbol modifiers for absolute symbols in range [0,128).

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

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

7 years agoInferAddressSpaces: clang-format some things
Matt Arsenault [Thu, 2 Feb 2017 00:28:25 +0000 (00:28 +0000)]
InferAddressSpaces: clang-format some things

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

7 years ago[dsymutil] Fix __LINKEDIT vmsize in dsymutil upgrade path
Steven Wu [Thu, 2 Feb 2017 00:00:13 +0000 (00:00 +0000)]
[dsymutil] Fix __LINKEDIT vmsize in dsymutil upgrade path

Summary:
dsymutil upgrade path can change the size of segment and it needs to update
the vmsize of the segment to reflect the size change.

rdar://problem/30290714

Reviewers: friss

Subscribers: llvm-commits

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

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

7 years agoRemove an assertion that doesn't hold when mixing -g and -gmlt through
Paul Robinson [Wed, 1 Feb 2017 23:51:56 +0000 (23:51 +0000)]
Remove an assertion that doesn't hold when mixing -g and -gmlt through
LTO.  Replace it with a related assertion, ensuring that abstract
variables appear only in abstract scopes.
Part of PR31437.

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

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