oota-llvm.git
7 years ago[X86][XOP] Add VPROT rotate by immediate intrinsics tests
Simon Pilgrim [Sat, 17 Oct 2015 18:21:53 +0000 (18:21 +0000)]
[X86][XOP] Add VPROT rotate by immediate intrinsics tests

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

7 years ago[DAG] Ensure vector constant folding uses correct scalar undef types
Simon Pilgrim [Sat, 17 Oct 2015 16:49:43 +0000 (16:49 +0000)]
[DAG] Ensure vector constant folding uses correct scalar undef types

Minor fix to D13665 found during post-commit review.

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

7 years agoReplace a custom table sort check with std::is_sorted. Change a function to take...
Craig Topper [Sat, 17 Oct 2015 16:37:13 +0000 (16:37 +0000)]
Replace a custom table sort check with std::is_sorted. Change a function to take ArrayRef instead of pointer and length. NFC

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

7 years agoUse std::begin/end and std::is_sorted to simplify some code. NFC
Craig Topper [Sat, 17 Oct 2015 16:37:11 +0000 (16:37 +0000)]
Use std::begin/end and std::is_sorted to simplify some code. NFC

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

7 years agoUse binary search in isCPUStringValid since the array is sorted.
Craig Topper [Sat, 17 Oct 2015 16:37:09 +0000 (16:37 +0000)]
Use binary search in isCPUStringValid since the array is sorted.

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

7 years ago[CostModel] Fixed AVX integer shift costs
Simon Pilgrim [Sat, 17 Oct 2015 13:23:38 +0000 (13:23 +0000)]
[CostModel] Fixed AVX integer shift costs

Targets with AVX but without AVX2 were incorrectly reporting costs of 256-bit integer shifts.

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

7 years ago[X86][FastISel] Teach how to select SSE4A nontemporal stores.
Simon Pilgrim [Sat, 17 Oct 2015 13:04:42 +0000 (13:04 +0000)]
[X86][FastISel] Teach how to select SSE4A nontemporal stores.

Add FastISel support for SSE4A scalar float / double non-temporal stores

Follow up to D13698

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

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

7 years ago[InstCombine] SSE4A constant folding and conversion to shuffles.
Simon Pilgrim [Sat, 17 Oct 2015 11:40:05 +0000 (11:40 +0000)]
[InstCombine] SSE4A constant folding and conversion to shuffles.

This patch improves support for combining the SSE4A EXTRQ(I) and INSERTQ(I) intrinsics:

1 - Converts INSERTQ/EXTRQ calls to INSERTQI/EXTRQI if the 'bit index' and 'length' operands are constant
2 - Converts INSERTQI/EXTRQI calls to shufflevector if the bit index/length are both byte aligned (we can already lower shuffles to INSERTQI/EXTRQI if its useful)
3 - Constant folding support
4 - Add zeroinitializer handling

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

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

7 years ago[JIT/Examples] Fix Fibonacci so that it runs again.
Davide Italiano [Sat, 17 Oct 2015 06:36:46 +0000 (06:36 +0000)]
[JIT/Examples] Fix Fibonacci so that it runs again.

The old JIT is (long) gone.

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

7 years ago[libFuzzer] add -shuffle flag
Kostya Serebryany [Sat, 17 Oct 2015 04:38:26 +0000 (04:38 +0000)]
[libFuzzer] add -shuffle flag

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

7 years ago[Hexagon] Reverting test file change.
Colin LeMahieu [Sat, 17 Oct 2015 01:58:51 +0000 (01:58 +0000)]
[Hexagon] Reverting test file change.

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

7 years ago[Hexagon] Adding skeleton of HVX extension instructions.
Colin LeMahieu [Sat, 17 Oct 2015 01:33:04 +0000 (01:33 +0000)]
[Hexagon] Adding skeleton of HVX extension instructions.

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

7 years agoRegisterPressure: Unify the sparse sets in LiveRegsSet; NFC
Matthias Braun [Sat, 17 Oct 2015 01:03:44 +0000 (01:03 +0000)]
RegisterPressure: Unify the sparse sets in LiveRegsSet; NFC

Also do some cleanups comment improvements.

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

7 years agoRegisterPressure: allocatable physreg uses are always kills
Matthias Braun [Sat, 17 Oct 2015 00:46:57 +0000 (00:46 +0000)]
RegisterPressure: allocatable physreg uses are always kills

This property was already used in the code path when no liveness
intervals are present. Unfortunately the code path that uses liveness
intervals tried to query a cached live interval for an allocatable
physreg, those are usually not computed so a conservative default was
used.

This doesn't affect any of the lit testcases. This is a foreclosure to
upcoming changes which should be NFC but without this patch this tidbit
wouldn't be NFC.

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

7 years agoRegisterPressure: Remove 0 entries from PressureChange
Matthias Braun [Sat, 17 Oct 2015 00:35:59 +0000 (00:35 +0000)]
RegisterPressure: Remove 0 entries from PressureChange

This should not change behaviour because as far as I can see all code
reading the pressure changes has no effect if the PressureInc is 0.
Removing these entries however does avoid unnecessary computation, and
results in a more stable debug output. I want the stable debug output to
check that some upcoming changes are indeed NFC and identical even at
the debug output level.

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

7 years agoWebAssembly: don't omit dead vregs from locals
JF Bastien [Sat, 17 Oct 2015 00:25:38 +0000 (00:25 +0000)]
WebAssembly: don't omit dead vregs from locals

Summary:
This is a temporary hack until we get around to remapping the vreg
numbers to local numbers. Dead vregs cause bad numbering and make
consumers sad.

We could also just look at debug info an use named locals instead, but
vregs have to work properly anyways so there!

Reviewers: binji, sunfish

Subscribers: jfb, llvm-commits, dschuff

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

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

7 years agoWebAssembly: fix the syntax for comparisons
JF Bastien [Sat, 17 Oct 2015 00:12:29 +0000 (00:12 +0000)]
WebAssembly: fix the syntax for comparisons

Summary: It has also slightly changed.

Reviewers: binji

Subscribers: jfb, dschuff, llvm-commits, sunfish

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

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

7 years agoRegisterPressure: Hide non-const iterators of PressureDiff
Matthias Braun [Sat, 17 Oct 2015 00:08:48 +0000 (00:08 +0000)]
RegisterPressure: Hide non-const iterators of PressureDiff

It is too easy to accidentally violate the ordering requirements when
modifying the PressureDiff entries through iterators.

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

7 years agoStreamWriter: List basic types instead of derived ones in HexNumber
Matthias Braun [Sat, 17 Oct 2015 00:08:45 +0000 (00:08 +0000)]
StreamWriter: List basic types instead of derived ones in HexNumber

This avoids problems with different (u)intXX definition on different
platforms. Specifically this fixes a case on OS/X which had uint64_t
defined as unsigned long long.

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

7 years ago[WinEH] Fix eh.exceptionpointer intrinsic lowering
Joseph Tremoulet [Sat, 17 Oct 2015 00:08:08 +0000 (00:08 +0000)]
[WinEH] Fix eh.exceptionpointer intrinsic lowering

Summary:
Some shared code for handling eh.exceptionpointer and eh.exceptioncode
needs to not share the part that truncates to 32 bits, which is intended
just for exception codes.

Reviewers: rnk

Subscribers: llvm-commits

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

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

7 years agoDisable a test relying on symbol demangling on non-Windows platforms
Reid Kleckner [Fri, 16 Oct 2015 23:56:14 +0000 (23:56 +0000)]
Disable a test relying on symbol demangling on non-Windows platforms

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

7 years agoSpeculative fix for GCC build
Reid Kleckner [Fri, 16 Oct 2015 23:53:12 +0000 (23:53 +0000)]
Speculative fix for GCC build

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

7 years ago[WinEH] Fix stack alignment in funclets and ParentFrameOffset calculation
Reid Kleckner [Fri, 16 Oct 2015 23:43:27 +0000 (23:43 +0000)]
[WinEH] Fix stack alignment in funclets and ParentFrameOffset calculation

Our previous value of "16 + 8 + MaxCallFrameSize" for ParentFrameOffset
is incorrect when CSRs are involved. We were supposed to have a test
case to catch this, but it wasn't very rigorous.

The main effect here is that calling _CxxThrowException inside a
catchpad doesn't immediately crash on MOVAPS when you have an odd number
of CSRs.

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

7 years ago[llvm-symbolizer] Use the export table if no symbols are present
Reid Kleckner [Fri, 16 Oct 2015 23:43:22 +0000 (23:43 +0000)]
[llvm-symbolizer] Use the export table if no symbols are present

This lets us make guesses about symbols in third party DLLs without
debug info, like MSVCR120.dll or kernel32.dll. dbghelp does the same
thing.

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

7 years agoRegisterPressure: Use range based for, cleanup
Matthias Braun [Fri, 16 Oct 2015 23:25:09 +0000 (23:25 +0000)]
RegisterPressure: Use range based for, cleanup

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

7 years ago[llvm-readobj] Teach ELFDumper about symbol versioning.
Davide Italiano [Fri, 16 Oct 2015 23:19:01 +0000 (23:19 +0000)]
[llvm-readobj] Teach ELFDumper about symbol versioning.

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

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

7 years agoInstroduce a template file to define InstrPGO core data structures.
Xinliang David Li [Fri, 16 Oct 2015 23:17:34 +0000 (23:17 +0000)]
Instroduce a template file to define InstrPGO core data structures.

Changing PGO data format layout can be a pain. Many different places need
to be touched and kept in sync. Failing to do so usually results in errors
very time consuming to debug.

This file is intended to be the master file that defines the layout of the
core runtime data structures. Currently only two structure is covered: Per
function ProfData structure and the function record structure used in
coverage mapping.

No client code has been made yet, so this commit is NFC.

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

7 years ago[CMake] Cleaning up and generalizing the LLVMInstallSymlink script so that it can...
Chris Bieneman [Fri, 16 Oct 2015 23:17:13 +0000 (23:17 +0000)]
[CMake] Cleaning up and generalizing the LLVMInstallSymlink script so that it can be used for libraries too.

In order to resolve PR25059, we're going to need to be able to generate symlinks to libraries manually, so I need this code to be reusable.

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

7 years ago[libFuzzer] print a stack trace on timeout
Kostya Serebryany [Fri, 16 Oct 2015 23:04:31 +0000 (23:04 +0000)]
[libFuzzer] print a stack trace on timeout

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

7 years agoRevert "This is a follow-up to the discussion in D12882."
Benjamin Kramer [Fri, 16 Oct 2015 23:00:29 +0000 (23:00 +0000)]
Revert "This is a follow-up to the discussion in D12882."

Breaks clang selfhost, see PR25222. This reverts commits r250527 and r250528.

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

7 years ago[libFuzzer] reduce the size of artifacts printed on the screen
Kostya Serebryany [Fri, 16 Oct 2015 22:47:20 +0000 (22:47 +0000)]
[libFuzzer] reduce the size of artifacts printed on the screen

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

7 years ago[libFuzzer] When -test_single_input crashes the test it is not necessary to write...
Kostya Serebryany [Fri, 16 Oct 2015 22:41:47 +0000 (22:41 +0000)]
[libFuzzer] When -test_single_input crashes the test it is not necessary to write crash-file because input is already known to the user. Patch by Mike Aizatsky

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

7 years ago[x86] promote 'add nsw' to a wider type to allow more combines
Sanjay Patel [Fri, 16 Oct 2015 22:14:12 +0000 (22:14 +0000)]
[x86] promote 'add nsw' to a wider type to allow more combines

The motivation for this patch starts with PR20134:
https://llvm.org/bugs/show_bug.cgi?id=20134

void foo(int *a, int i) {
  a[i] = a[i+1] + a[i+2];
}

It seems better to produce this (14 bytes):

movslq %esi, %rsi
movl 0x4(%rdi,%rsi,4), %eax
addl 0x8(%rdi,%rsi,4), %eax
movl %eax, (%rdi,%rsi,4)

Rather than this (22 bytes):

leal 0x1(%rsi), %eax
cltq
leal 0x2(%rsi), %ecx
movslq %ecx, %rcx
movl (%rdi,%rcx,4), %ecx
addl (%rdi,%rax,4), %ecx
movslq %esi, %rax
movl %ecx, (%rdi,%rax,4)

The most basic problem (the first test case in the patch combines constants) should also be fixed in InstCombine,
but it gets more complicated after that because we need to consider architecture and micro-architecture. For
example, AArch64 may not see any benefit from the more general transform because the ISA solves the sexting in
hardware. Some x86 chips may not want to replace 2 ADD insts with 1 LEA, and there's an attribute for that:
FeatureSlowLEA. But I suspect that doesn't go far enough or maybe it's not getting used when it should; I'm
also not sure if FeatureSlowLEA should also mean "slow complex addressing mode".

I see no perf differences on test-suite with this change running on AMD Jaguar, but I see small code size
improvements when building clang and the LLVM tools with the patched compiler.

A more general solution to the sext(add nsw(x, C)) problem that works for multiple targets is available
in CodeGenPrepare, but it may take quite a bit more work to get that to fire on all of the test cases that
this patch takes care of.

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

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

7 years agoMC: Don't crash after issuing a diagnostic.
Jim Grosbach [Fri, 16 Oct 2015 22:07:59 +0000 (22:07 +0000)]
MC: Don't crash after issuing a diagnostic.

Crashing is bad, m'kay? Fixing a 4 year old bug of my own creation.
Adding the testcase now which I should have added then which would have
long since caught this.

The problem is that printMessage() will display the diagnostic but not
set HadError to true, resulting in the assembler continuing on its way
and trying to create relocations for things that may not allow them or
otherwise get itself into trouble. Using the Error() helper function
here rather than calling printMessage() directly resolves this.

rdar://23133240

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

7 years ago[WinEH] Fix CatchRetSuccessorColorMap accounting
Joseph Tremoulet [Fri, 16 Oct 2015 21:22:54 +0000 (21:22 +0000)]
[WinEH] Fix CatchRetSuccessorColorMap accounting

Summary:
We now use the block for the catchpad itself, rather than its normal
successor, as the funclet entry.
Putting the normal successor in the map leads downstream funclet
membership computations to erroneous results.

Reviewers: majnemer, rnk

Subscribers: rnk, llvm-commits

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

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

7 years agoFix assertion failure with fp128 to unsigned i64 conversion
Andrew Kaylor [Fri, 16 Oct 2015 20:39:20 +0000 (20:39 +0000)]
Fix assertion failure with fp128 to unsigned i64 conversion

Patch by Mitch Bodart

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

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

7 years ago[Hexagon] Split double registers
Krzysztof Parzyszek [Fri, 16 Oct 2015 20:38:54 +0000 (20:38 +0000)]
[Hexagon] Split double registers

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

7 years ago[WinEH] Remove dead code/includes from WinEHPrepare
David Majnemer [Fri, 16 Oct 2015 19:59:52 +0000 (19:59 +0000)]
[WinEH] Remove dead code/includes from WinEHPrepare

No functionality change is intended.

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

7 years ago[Hexagon] Delete lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp
Krzysztof Parzyszek [Fri, 16 Oct 2015 19:51:53 +0000 (19:51 +0000)]
[Hexagon] Delete lib/Target/Hexagon/HexagonRemoveSZExtArgs.cpp

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

7 years ago[Hexagon] Merge adjacent stores
Krzysztof Parzyszek [Fri, 16 Oct 2015 19:43:56 +0000 (19:43 +0000)]
[Hexagon] Merge adjacent stores

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

7 years agoSample profiles - Re-arrange binary format to emit head samples only on top functions.
Diego Novillo [Fri, 16 Oct 2015 18:54:35 +0000 (18:54 +0000)]
Sample profiles - Re-arrange binary format to emit head samples only on top functions.

The number of samples collected at the head of a function only make
sense for top-level functions (i.e., those actually called as opposed to
being inlined inside another).

Head samples essentially count the time spent inside the function's
prologue.  This clearly doesn't make sense for inlined functions, so we
were always emitting 0 in those.

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

7 years agoWebAssembly: fix load/store syntax
JF Bastien [Fri, 16 Oct 2015 18:24:42 +0000 (18:24 +0000)]
WebAssembly: fix load/store syntax

Summary: The syntax has changed a bit recently.

Reviewers: binji

Subscribers: llvm-commits, jfb, sunfish, dschuff

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

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

7 years ago[WinEH] Fix endpad coloring/numbering
Joseph Tremoulet [Fri, 16 Oct 2015 18:08:16 +0000 (18:08 +0000)]
[WinEH] Fix endpad coloring/numbering

Summary:
When a cleanup's cleanupendpad or cleanupret targets a catchendpad, stop
trying to propagate the cleanup's parent's color to the catchendpad, since
what's needed is the cleanup's grandparent's color and the catchendpad
will get that color from the catchpad linkage already.  We already had
this exclusion for invokes, but were missing it for
cleanupendpad/cleanupret.

Also add a missing line that tags cleanupendpads' states in the
EHPadStateMap, without with lowering invokes that target cleanupendpads
which unwind to other handlers (and so don't have the -1 state) will fail.

This fixes the reduced IR repro in PR25163.

Reviewers: majnemer, andrew.w.kaylor, rnk

Subscribers: llvm-commits

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

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

7 years agoFix typo, NFC.
Yaron Keren [Fri, 16 Oct 2015 17:50:47 +0000 (17:50 +0000)]
Fix typo, NFC.

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

7 years agomove test case to x86 directory because it specifies an x86 target
Sanjay Patel [Fri, 16 Oct 2015 17:18:07 +0000 (17:18 +0000)]
move test case to x86 directory because it specifies an x86 target

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

7 years agoThis is a follow-up to the discussion in D12882.
Sanjay Patel [Fri, 16 Oct 2015 16:54:30 +0000 (16:54 +0000)]
This is a follow-up to the discussion in D12882.

Ideally, we would like SimplifyCFG to be able to form select instructions even when the operands
are expensive (as defined by the TTI cost model) because that may expose further optimizations.
However, we would then like a later pass like CodeGenPrepare to undo that transformation if the
target would likely benefit from not speculatively executing an expensive op (this patch).

Once we have this safety mechanism in place, we can adjust SimplifyCFG to restore its
select-formation behavior that changed with r248439.

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

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

7 years agoWebAssembly: relooper analysis pass
JF Bastien [Fri, 16 Oct 2015 16:35:49 +0000 (16:35 +0000)]
WebAssembly: relooper analysis pass

Summary: Make the relooper an analysis pass, to convert CFG to AST.

Reviewers: sunfish

Subscribers: jfb, dschuff

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

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

7 years ago[AArch64] Implement vector splitting on UADDV.
Charlie Turner [Fri, 16 Oct 2015 15:38:25 +0000 (15:38 +0000)]
[AArch64] Implement vector splitting on UADDV.

Summary: Fixes PR25056.

Reviewers: mcrosier, junbuml, jmolloy

Subscribers: aemerson, rengolin, llvm-commits

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

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

7 years agoSample Profiling - Remove useless asserts. NFC.
Diego Novillo [Fri, 16 Oct 2015 13:54:52 +0000 (13:54 +0000)]
Sample Profiling - Remove useless asserts. NFC.

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

7 years agoCommited two test files which are forgotten during commit of patch for http://reviews...
Zlatko Buljan [Fri, 16 Oct 2015 13:03:10 +0000 (13:03 +0000)]
Commited two test files which are forgotten during commit of patch for reviews.llvm.org/D13376

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

7 years ago[mips][microMIPS] Implement LB, LBE, LBU and LBUE instructions
Hrvoje Varga [Fri, 16 Oct 2015 12:24:58 +0000 (12:24 +0000)]
[mips][microMIPS] Implement LB, LBE, LBU and LBUE instructions
Differential Revision: http://reviews.llvm.org/D11633

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

7 years agoFix path::home_directory() unit test.
Pawel Bylica [Fri, 16 Oct 2015 10:11:07 +0000 (10:11 +0000)]
Fix path::home_directory() unit test.

It turns out that constructing std::string from null pointer is not the very best idea.

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

7 years agoSupportTests::HomeDirectory: Don't try tests when $HOME is undefined.
NAKAMURA Takumi [Fri, 16 Oct 2015 09:40:01 +0000 (09:40 +0000)]
SupportTests::HomeDirectory: Don't try tests when $HOME is undefined.

Lit sanitizes env vars. $HOME is not exported in Lit tests.

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

7 years agoReformat.
NAKAMURA Takumi [Fri, 16 Oct 2015 09:38:49 +0000 (09:38 +0000)]
Reformat.

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

7 years agoUse Windows Vista API to get the user's home directory
Pawel Bylica [Fri, 16 Oct 2015 09:08:59 +0000 (09:08 +0000)]
Use Windows Vista API to get the user's home directory

Summary: This patch replaces usage of deprecated SHGetFolderPathW with SHGetKnownFolderPath. The usage of SHGetKnownFolderPath is wrapped to allow queries for other "known" folders in the near future.

Reviewers: aaron.ballman, gbedwell

Subscribers: chapuni, llvm-commits

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

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

7 years ago[X86] Add fxsr feature flag for fxsave/fxrestore instructions.
Craig Topper [Fri, 16 Oct 2015 06:03:09 +0000 (06:03 +0000)]
[X86] Add fxsr feature flag for fxsave/fxrestore instructions.

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

7 years agoInitial migration of AVR backend
Dylan McKay [Fri, 16 Oct 2015 03:10:30 +0000 (03:10 +0000)]
Initial migration of AVR backend

This patch adds the underlying infrastructure for an AVR backend to be included into LLVM. It is the first of a series of patches aimed at moving the out-of-tree AVR backend into the tree.

It consists of adding a new`Triple` target 'avr'.

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

7 years ago[RS4GC] Dont' propagate call attrs related to patchable statepoints
Sanjoy Das [Fri, 16 Oct 2015 02:41:23 +0000 (02:41 +0000)]
[RS4GC] Dont' propagate call attrs related to patchable statepoints

The `"statepoint-id"` and `"statepoint-num-patch-bytes"` attributes are
used solely to determine properties of the `gc.statepoint` being
created.  Once the `gc.statepoint` is in place, these should be removed.

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

7 years ago[RS4GC] Bring legalizeCallAttributes up to LLVM coding style; NFC
Sanjoy Das [Fri, 16 Oct 2015 02:41:11 +0000 (02:41 +0000)]
[RS4GC] Bring legalizeCallAttributes up to LLVM coding style; NFC

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

7 years ago[RS4GC] Use "deopt" operand bundles
Sanjoy Das [Fri, 16 Oct 2015 02:41:00 +0000 (02:41 +0000)]
[RS4GC] Use "deopt" operand bundles

Summary:
This is a step towards using operand bundles to carry deopt state till
RewriteStatepointsForGC.  The change adds a flag to
RewriteStatepointsForGC that teaches it to pick up deopt state from a
`"deopt"` operand bundle attached to the `call` or `invoke` it is
wrapping.

The command line flag added, `-rs4gc-use-deopt-bundles`, will only exist
for a short while.  Once we are able to pipe deopt bundle state through
the full optimization pipeline without problems, we will "constant fold"
`-rs4gc-use-deopt-bundles` to `true`.

Reviewers: swaroop.sridhar, reames

Subscribers: llvm-commits, sanjoy

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

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

7 years ago[IndVars] Rename getExtend; NFC
Sanjoy Das [Fri, 16 Oct 2015 01:00:50 +0000 (01:00 +0000)]
[IndVars] Rename getExtend; NFC

Rename `IndVarSimplify::getExtend` to `IndVarSimplify::createExtendInst`
to make it obvious that it creates `llvm::Instruction` s.

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

7 years ago[IndVars] Have `cloneArithmeticIVUser` guess better
Sanjoy Das [Fri, 16 Oct 2015 01:00:47 +0000 (01:00 +0000)]
[IndVars] Have `cloneArithmeticIVUser` guess better

Summary:
`cloneArithmeticIVUser` currently trips over expression like `add %iv,
-1` when `%iv` is being zero extended -- it tries to construct the
widened use as `add %iv.zext, zext(-1)` and (correctly) fails to prove
equivalence to `zext(add %iv, -1)` (here the SCEV for `%iv` is
`{1,+,1}`).

This change teaches `IndVars` to try sign extending the non-IV operand
if that makes the newly constructed IV use equivalent to the widened
narrow IV use.

Reviewers: atrick, hfinkel, reames

Subscribers: sanjoy, llvm-commits

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

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

7 years ago[IndVars] Extract out a few local variables; NFC
Sanjoy Das [Fri, 16 Oct 2015 01:00:44 +0000 (01:00 +0000)]
[IndVars] Extract out a few local variables; NFC

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

7 years ago[IndVars] Split `WidenIV::cloneIVUser`; NFC
Sanjoy Das [Fri, 16 Oct 2015 01:00:39 +0000 (01:00 +0000)]
[IndVars] Split `WidenIV::cloneIVUser`; NFC

Summary:
This NFC splitting is intended to make a later diff easier to follow.
It just tail duplicates `cloneIVUser` into `cloneArithmeticIVUser` and
`cloneBitwiseIVUser`.

Reviewers: atrick, hfinkel, reames

Subscribers: llvm-commits

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

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

7 years agoWebAssembly: update syntax
JF Bastien [Fri, 16 Oct 2015 00:53:49 +0000 (00:53 +0000)]
WebAssembly: update syntax

Summary:
Follow the same syntax as for the spec repo. Both have evolved slightly
independently and need to converge again.

This, along with wasmate changes, allows me to do the following:

  echo "int add(int a, int b) { return a + b; }" > add.c
  ./out/bin/clang -O2 -S --target=wasm32-unknown-unknown add.c -o add.wack
  ./experimental/prototype-wasmate/wasmate.py add.wack > add.wast
  ./sexpr-wasm-prototype/out/sexpr-wasm add.wast -o add.wasm
  ./sexpr-wasm-prototype/third_party/v8-native-prototype/v8/v8/out/Release/d8 -e "print(WASM.instantiateModule(readbuffer('add.wasm'), {print:print}).add(42, 1337));"

As you'd expect, the d8 shell prints out the right value.

Reviewers: sunfish

Subscribers: jfb, llvm-commits, dschuff

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

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

7 years agoAdd emacs c++ mode hint.
Lang Hames [Fri, 16 Oct 2015 00:44:01 +0000 (00:44 +0000)]
Add emacs c++ mode hint.

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

7 years ago[llvm-readobj/ELF] Dump DT_VERDEF/DT_VERDEFNUM correctly.
Davide Italiano [Thu, 15 Oct 2015 22:04:55 +0000 (22:04 +0000)]
[llvm-readobj/ELF] Dump DT_VERDEF/DT_VERDEFNUM correctly.

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

7 years agoRevert "[safestack] Fast access to the unsafe stack pointer on AArch64/Android."
Evgeniy Stepanov [Thu, 15 Oct 2015 21:26:49 +0000 (21:26 +0000)]
Revert "[safestack] Fast access to the unsafe stack pointer on AArch64/Android."

Breaks the hexagon buildbot.

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

7 years agoReplace a forward declaration with an #include.
Adrian Prantl [Thu, 15 Oct 2015 20:58:55 +0000 (20:58 +0000)]
Replace a forward declaration with an #include.
When building with modules the forward-declared inner class
DebugLocStream::ListBuilder causes clang to fall over.

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

7 years ago[safestack] Fast access to the unsafe stack pointer on AArch64/Android.
Evgeniy Stepanov [Thu, 15 Oct 2015 20:50:16 +0000 (20:50 +0000)]
[safestack] Fast access to the unsafe stack pointer on AArch64/Android.

Android libc provides a fixed TLS slot for the unsafe stack pointer,
and this change implements direct access to that slot on AArch64 via
__builtin_thread_pointer() + offset.

This change also moves more code into TargetLowering and its
target-specific subclasses to get rid of target-specific codegen
in SafeStackPass.

This change does not touch the ARM backend because ARM lowers
builting_thread_pointer as aeabi_read_tp, which is not available
on Android.

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

7 years ago[CMake] Adding LLVM_CREATE_XCODE_TOOLCHAIN to the CMake documentation page.
Chris Bieneman [Thu, 15 Oct 2015 20:12:08 +0000 (20:12 +0000)]
[CMake] Adding LLVM_CREATE_XCODE_TOOLCHAIN to the CMake documentation page.

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

7 years ago[CMake] [Darwin] Add support for generating Xcode-compatible toolchains that xcodebui...
Chris Bieneman [Thu, 15 Oct 2015 20:09:01 +0000 (20:09 +0000)]
[CMake] [Darwin] Add support for generating Xcode-compatible toolchains that xcodebuild and xcrun can search

Summary:
Sometimes you want to install a custom compiler and use it like the system compiler without overriding the system compiler. This patch lets you create xctoolchains that the darwin command line tools can use.

To use this patch set LLVM_CREATE_XCODE_TOOLCHAIN=On in your CMake invocation and build the `install-code-toolchain` target.

After installation you can set the envar EXTERNAL_TOOLCHAINS_DIR to your installed Toolchains directory, and the TOOLCHAINS envar to the toolchain identifier (ex org.llvm.3.8.0svn). This will then cause /usr/bin/clang to call your newly installed clang.

Reviewers: Bigcheese, bogner

Subscribers: tobiasfar, llvm-commits

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

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

7 years agoAdd a missing include of cstddef needed for size_t.
Adrian Prantl [Thu, 15 Oct 2015 19:41:54 +0000 (19:41 +0000)]
Add a missing include of cstddef needed for size_t.

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

7 years agox86: preserve flags when folding atomic operations
JF Bastien [Thu, 15 Oct 2015 18:24:52 +0000 (18:24 +0000)]
x86: preserve flags when folding atomic operations

D4796 taught LLVM to fold some atomic integer operations into a single
instruction. The pattern was unaware that the instructions clobbered
flags. I fixed some of this issue in D13680 but had missed INC/DEC.

This patch adds the missing EFLAGS definition.

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

7 years agodocs: Stop using DEBUG() without DEBUG_TYPE in the ProgrammersManual
Justin Bogner [Thu, 15 Oct 2015 18:17:44 +0000 (18:17 +0000)]
docs: Stop using DEBUG() without DEBUG_TYPE in the ProgrammersManual

The DEBUG() macro has required that a DEBUG_TYPE be set since r206822.
Update the programmers manual to reflect that, and also update the
wording to point out that DEBUG_TYPE should be defined after #includes.

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

7 years ago[SelectionDAG] Remove dead code. NFC.
Benjamin Kramer [Thu, 15 Oct 2015 17:54:06 +0000 (17:54 +0000)]
[SelectionDAG] Remove dead code. NFC.

Carefully selected parts without deleting graph stuff and dumping methods.

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

7 years ago[AsmPrinter] Prune dead code. NFC.
Benjamin Kramer [Thu, 15 Oct 2015 17:16:32 +0000 (17:16 +0000)]
[AsmPrinter] Prune dead code. NFC.

I left all (dead) print and dump methods in place.

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

7 years agoChange test to use FileCheck rather than grep.
Kevin B. Smith [Thu, 15 Oct 2015 17:05:12 +0000 (17:05 +0000)]
Change test to use FileCheck rather than grep.
Differential Revision: http://reviews.llvm.org/D13751

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

7 years agoRevert 250343 and 250344
Philip Reames [Thu, 15 Oct 2015 16:51:00 +0000 (16:51 +0000)]
Revert 250343 and 250344

Turns out this approach is buggy.  In discussion about follow on work, Sanjoy pointed out that we could be subject to circular logic problems.

Consider:
 if (i u< L) leave()
 if ((i + 1) u< L) leave()
 print(a[i] + a[i+1])

If we know that L is less than UINT_MAX, we could possible prove (in a control dependent way) that i + 1 does not overflow.  This gives us:
 if (i u< L) leave()
 if ((i +nuw 1) u< L) leave()
 print(a[i] + a[i+1])

If we now do the transform this patch proposed, we end up with:
 if ((i +nuw 1) u< L) leave_appropriately()
 print(a[i] + a[i+1])

That would be a miscompile when i==-1.  The problem here is that the control dependent nuw bits got used to prove something about the first condition.  That's obviously invalid.

This won't happen today, but since I plan to enhance LVI/CVP with exactly that transform at some point in the not too distant future...

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

7 years agox86 FP atomic codegen: don't drop globals, stack
JF Bastien [Thu, 15 Oct 2015 16:46:29 +0000 (16:46 +0000)]
x86 FP atomic codegen: don't drop globals, stack

Summary:
x86 codegen is clever about generating good code for relaxed
floating-point operations, but it was being silly when globals and
immediates were involved, forgetting where the global was and
loading/storing from/to the wrong place. The same applied to hard-coded
address immediates.

Don't let it forget about the displacement.

This fixes https://llvm.org/bugs/show_bug.cgi?id=25171

A very similar bug when doing floating-points atomics to the stack is
also fixed by this patch.

This fixes https://llvm.org/bugs/show_bug.cgi?id=25144

Reviewers: pete

Subscribers: llvm-commits, majnemer, rsmith

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

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

7 years agoSample Profiles - Adjust integer types. Mostly NFC.
Diego Novillo [Thu, 15 Oct 2015 16:36:21 +0000 (16:36 +0000)]
Sample Profiles - Adjust integer types. Mostly NFC.

This adjusts all integers in the reader/writer to reflect the types
stored on profile files. They should all be unsigned 32-bit or 64-bit
values. Changed all associated internal types to be uint32_t or
uint64_t.

The only place that needed some adjustments is in the sample profile
transformation. Altough the weight read from the profile are 64-bit
values, the internal API for branch weights only accepts 32-bit values.
The pass now saturates weights that overflow uint32_t.

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

7 years agoPrevent assertion with "llc -debug" and anonymous symbols.
Tim Northover [Thu, 15 Oct 2015 16:18:27 +0000 (16:18 +0000)]
Prevent assertion with "llc -debug" and anonymous symbols.

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

7 years agoLit: Rework r249161; Move RLIMIT_NPROC to main.py.
NAKAMURA Takumi [Thu, 15 Oct 2015 15:37:13 +0000 (15:37 +0000)]
Lit: Rework r249161; Move RLIMIT_NPROC to main.py.

The message "raised the process limit..." prevented the progress bar.

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

7 years ago[ScalarOpts] Remove dead code.
Benjamin Kramer [Thu, 15 Oct 2015 15:08:58 +0000 (15:08 +0000)]
[ScalarOpts] Remove dead code.

Does not touch debug dumpers. NFC.

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

7 years agoRecommit r250345, it was reverted in r250366 to investigate a bot failure.
Manman Ren [Thu, 15 Oct 2015 14:59:40 +0000 (14:59 +0000)]
Recommit r250345, it was reverted in r250366 to investigate a bot failure.

Our internal bot is still red after r250366.

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

7 years ago[mips][ias] Implement ulh macro.
Daniel Sanders [Thu, 15 Oct 2015 14:52:58 +0000 (14:52 +0000)]
[mips][ias] Implement ulh macro.

Summary:
This macro is needed to prevent test/CodeGen/Mips/2008-08-01-AsmInline.ll from
failing after the integrated assembler is enabled by default.

Reviewers: vkalintiris

Subscribers: llvm-commits, dsanders

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

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

7 years agoRequire Windows API of version 6.1 (Windows 7).
Pawel Bylica [Thu, 15 Oct 2015 14:50:31 +0000 (14:50 +0000)]
Require Windows API of version 6.1 (Windows 7).

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

7 years ago[NVPTX] Remove dead code.
Benjamin Kramer [Thu, 15 Oct 2015 14:45:41 +0000 (14:45 +0000)]
[NVPTX] Remove dead code.

I left helpers that look useful for debugging alone. NFC.

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

7 years ago[mips][mips16] MIPS16 is not a CPU/Architecture but is an ASE.
Daniel Sanders [Thu, 15 Oct 2015 14:34:23 +0000 (14:34 +0000)]
[mips][mips16] MIPS16 is not a CPU/Architecture but is an ASE.

Summary:
The -mcpu=mips16 option caused the Integrated Assembler to crash because
it couldn't figure out the architecture revision number to write to the
.MIPS.abiflags section. This CPU definition has been removed because, like
microMIPS, MIPS16 is an ASE to a base architecture.

Reviewers: vkalintiris

Subscribers: rkotler, llvm-commits, dsanders

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

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

7 years ago[X86] Rip out orphaned method declarations and other dead code. NFC.
Benjamin Kramer [Thu, 15 Oct 2015 14:09:59 +0000 (14:09 +0000)]
[X86] Rip out orphaned method declarations and other dead code. NFC.

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

7 years ago[DebugInfo] Remove dead forwarding accessors. NFC.
Benjamin Kramer [Thu, 15 Oct 2015 13:56:02 +0000 (13:56 +0000)]
[DebugInfo] Remove dead forwarding accessors. NFC.

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

7 years agoSilencing a -Wtype-limits warning; an unsigned value will always be >= 0; NFC.
Aaron Ballman [Thu, 15 Oct 2015 13:55:43 +0000 (13:55 +0000)]
Silencing a -Wtype-limits warning; an unsigned value will always be >= 0; NFC.

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

7 years agoAVX512: Implemented DAG lowering for shuff62x2/shufi62x2 instructions ( shuffle packe...
Igor Breger [Thu, 15 Oct 2015 13:29:07 +0000 (13:29 +0000)]
AVX512: Implemented DAG lowering for shuff62x2/shufi62x2 instructions ( shuffle packed values at 128-bit granularity )

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

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

7 years ago[CMake] check-llvm requires llvm-pdbdump.
NAKAMURA Takumi [Thu, 15 Oct 2015 13:22:38 +0000 (13:22 +0000)]
[CMake] check-llvm requires llvm-pdbdump.

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

7 years agoAVX512: Implemented encoding and intrinsics for vpternlogd/q.
Igor Breger [Thu, 15 Oct 2015 12:33:24 +0000 (12:33 +0000)]
AVX512: Implemented encoding and intrinsics for vpternlogd/q.

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

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

7 years agoAVX-512: Fixed a bug in shuffle lowering 32-bit mode
Elena Demikhovsky [Thu, 15 Oct 2015 11:35:33 +0000 (11:35 +0000)]
AVX-512: Fixed a bug in shuffle lowering 32-bit mode

AVX-512 bit shuffle fails on 32 bit since we create a vector of 64-bit constants.
I split 8x64-bit const vector to 16x32 on 32-bit mode.

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

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

7 years ago[x86] Merge test pr24562.ll into x86-fold-pshufb.ll. NFC.
Andrea Di Biagio [Thu, 15 Oct 2015 09:54:25 +0000 (09:54 +0000)]
[x86] Merge test pr24562.ll into x86-fold-pshufb.ll. NFC.

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

7 years agoMake windows.h less evil.
Benjamin Kramer [Thu, 15 Oct 2015 09:38:45 +0000 (09:38 +0000)]
Make windows.h less evil.

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

7 years ago[llvm-pdbdump] Remove oddly placed parens that MSVC doesn't like
Benjamin Kramer [Thu, 15 Oct 2015 09:32:54 +0000 (09:32 +0000)]
[llvm-pdbdump] Remove oddly placed parens that MSVC doesn't like

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

7 years agoDon't pretend AMDGPU backend knows how to custom-lower UDIVREM for vector types;...
Artyom Skrobov [Thu, 15 Oct 2015 09:18:47 +0000 (09:18 +0000)]
Don't pretend AMDGPU backend knows how to custom-lower UDIVREM for vector types; it can't

Reviewers: arsenm, jvesely, tstellarAMD

Subscribers: arsenm, llvm-commits

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

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