platform/upstream/llvm.git
8 years ago[TSAN] Fix test java_race_pc
Sagar Thakur [Wed, 2 Mar 2016 13:53:22 +0000 (13:53 +0000)]
[TSAN] Fix test java_race_pc

Incremented the pc for each architecture in accordance with StackTrace:GetPreviousInstructionPC

Reviewers: samsonov, dvyukov
Subscribers: llvm-commits, mohit.bhakkad, jaydeep
Differential: http://reviews.llvm.org/D17802
llvm-svn: 262483

8 years agoUpgrade the arm/thumb architecture used by the disassembler
Tamas Berghammer [Wed, 2 Mar 2016 12:42:43 +0000 (12:42 +0000)]
Upgrade the arm/thumb architecture used by the disassembler

Previously we were using thumbv7 and armv8.1a what ended up showing a
few undefined instruction when disassembling code. This CL update the
architectures used to armv8.2a and thumbv8.2a (newest available) so we
display all instruction in the disassambly.

llvm-svn: 262482

8 years ago[CLANG] [AVX512] [BUILTIN] Adding PSRA{W|WI}{128|256|512}.
Michael Zuckerman [Wed, 2 Mar 2016 12:06:06 +0000 (12:06 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding PSRA{W|WI}{128|256|512}.

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

llvm-svn: 262481

8 years ago[LLVM][AVX512]PSRAWI Change imm8 to int.
Michael Zuckerman [Wed, 2 Mar 2016 12:05:07 +0000 (12:05 +0000)]
[LLVM][AVX512]PSRAWI Change imm8 to int.

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

llvm-svn: 262480

8 years agoRevert "[RT] Make tsan tests more portable"
Renato Golin [Wed, 2 Mar 2016 11:54:07 +0000 (11:54 +0000)]
Revert "[RT] Make tsan tests more portable"

This reverts commit r262476, as it broken the AArch64 VMA42 buildbot.

llvm-svn: 262479

8 years ago[X86][SSE] Lower 128-bit MOVDDUP with existing VBROADCAST mechanisms
Simon Pilgrim [Wed, 2 Mar 2016 11:43:05 +0000 (11:43 +0000)]
[X86][SSE] Lower 128-bit MOVDDUP with existing VBROADCAST mechanisms

We have a number of useful lowering strategies for VBROADCAST instructions (both from memory and register element 0) which the 128-bit form of the MOVDDUP instruction can make use of.

This patch tweaks lowerVectorShuffleAsBroadcast to enable it to broadcast 2f64 args using MOVDDUP as well.

It does require a slight tweak to the lowerVectorShuffleAsBroadcast mechanism as the existing MOVDDUP lowering uses isShuffleEquivalent which can match binary shuffles that can lower to (unary) broadcasts.

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

llvm-svn: 262478

8 years agoRevert "[AMDGPU] table-driven parser/printer for amd_kernel_code_t structure fields"
Nikolay Haustov [Wed, 2 Mar 2016 11:16:56 +0000 (11:16 +0000)]
Revert "[AMDGPU] table-driven parser/printer for amd_kernel_code_t structure fields"

Build failure with clang.

llvm-svn: 262477

8 years ago[RT] Make tsan tests more portable
Renato Golin [Wed, 2 Mar 2016 11:10:02 +0000 (11:10 +0000)]
[RT] Make tsan tests more portable

by avoiding potential races when scanning stdout and stderr output.

Patch by Maxim Kuvyrkov.

llvm-svn: 262476

8 years agoRevert "[AMDGPU] Using table-driven amd_kernel_code_t field parser in assembler."
Nikolay Haustov [Wed, 2 Mar 2016 10:54:21 +0000 (10:54 +0000)]
Revert "[AMDGPU] Using table-driven amd_kernel_code_t field parser in assembler."

Build failure with clang.

llvm-svn: 262475

8 years ago[AMDGPU] Using table-driven amd_kernel_code_t field parser in assembler.
Nikolay Haustov [Wed, 2 Mar 2016 10:36:30 +0000 (10:36 +0000)]
[AMDGPU] Using table-driven amd_kernel_code_t field parser in assembler.

complementary patch to table-driven amd_kernel_code_t field parser/printer utility. lit tests passed.

Patch by: Valery Pykhtin

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

llvm-svn: 262474

8 years ago[AMDGPU] table-driven parser/printer for amd_kernel_code_t structure fields
Nikolay Haustov [Wed, 2 Mar 2016 10:36:25 +0000 (10:36 +0000)]
[AMDGPU] table-driven parser/printer for amd_kernel_code_t structure fields

This is going to be used in .hsatext disassembler and can be used
in current assembler parser (lit tests passed on parsing).
Code using this helpers isn't included in this patch.

Benefits:

unified approach
fast field name lookup on parsing
Later I would like to enhance some of the field naming/syntax using this code.

Patch by: Valery Pykhtin

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

llvm-svn: 262473

8 years agolibfuzzer: fix compiler warnings
Dmitry Vyukov [Wed, 2 Mar 2016 09:54:40 +0000 (09:54 +0000)]
libfuzzer: fix compiler warnings

- unused sigaction/setitimer result (used in assert)
- unchecked fscanf return value
- signed/unsigned comparison

llvm-svn: 262472

8 years ago[CLANG] [AVX512] [BUILTIN] Adding PSRAV
Michael Zuckerman [Wed, 2 Mar 2016 09:05:46 +0000 (09:05 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding PSRAV

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

llvm-svn: 262471

8 years ago[clang-tidy] Make 'modernize-pass-by-value' fix work on header files.
Haojian Wu [Wed, 2 Mar 2016 09:01:25 +0000 (09:01 +0000)]
[clang-tidy] Make 'modernize-pass-by-value' fix work on header files.

Reviewers: alexfh

Subscribers: jbcoe, cfe-commits

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

llvm-svn: 262470

8 years ago[test/vptr-non-unique-typeinfo] Address Samsonov's post-commit review
Filipe Cabecinhas [Wed, 2 Mar 2016 08:30:40 +0000 (08:30 +0000)]
[test/vptr-non-unique-typeinfo] Address Samsonov's post-commit review

Reviewers: samsonov

Subscribers: llvm-commits

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

llvm-svn: 262469

8 years ago[X86] Remove unnecessary call to isReg from emitter's DestMem handling for VEX prefix...
Craig Topper [Wed, 2 Mar 2016 07:32:45 +0000 (07:32 +0000)]
[X86] Remove unnecessary call to isReg from emitter's DestMem handling for VEX prefix. The operand is always a register. NFC

llvm-svn: 262468

8 years ago[X86] Make X86MCCodeEmitter::DetermineREXPrefix locate operands more like how VEX...
Craig Topper [Wed, 2 Mar 2016 07:32:43 +0000 (07:32 +0000)]
[X86] Make X86MCCodeEmitter::DetermineREXPrefix locate operands more like how VEX prefix handling does.

llvm-svn: 262467

8 years ago[Sema] PR26444 fix crash when alignment value is >= 2**16
David Majnemer [Wed, 2 Mar 2016 06:48:47 +0000 (06:48 +0000)]
[Sema] PR26444 fix crash when alignment value is >= 2**16

Sema allows max values up to 2**28, use unsigned instead of unsiged
short to hold values that large.

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

Patch by Don Hinton!

llvm-svn: 262466

8 years ago[X86] Permit reading of the FLAGS register without it being previously defined
David Majnemer [Wed, 2 Mar 2016 06:46:52 +0000 (06:46 +0000)]
[X86] Permit reading of the FLAGS register without it being previously defined

We modeled the RDFLAGS{32,64} operations as "using" {E,R}FLAGS.
While technically correct, this is not be desirable for folks who want
to examine aspects of the FLAGS register which are not related to
computation like whether or not CPUID is a valid instruction.

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

llvm-svn: 262465

8 years ago[X86] Remove assertion I accidentally left in.
Craig Topper [Wed, 2 Mar 2016 06:35:22 +0000 (06:35 +0000)]
[X86] Remove assertion I accidentally left in.

llvm-svn: 262464

8 years ago[modules] addHeaderInclude() can't fail.
Davide Italiano [Wed, 2 Mar 2016 06:09:18 +0000 (06:09 +0000)]
[modules] addHeaderInclude() can't fail.

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

llvm-svn: 262463

8 years ago[X86] Be more structured about how we capture the register number when it is encoded...
Craig Topper [Wed, 2 Mar 2016 06:06:18 +0000 (06:06 +0000)]
[X86] Be more structured about how we capture the register number when it is encoded in bits 7:4 of the immediate.

For some instructions the register is not the last operand and the immediate handling had to detect this and hardcode the index to find it. It also required CurOp to be pointing at the last operand handled in the Form switch whereas for any instruction it would be pointing at the next operand.

Now we just capture the value in the Form switch when we know exactly where it is and the CurOp pointer can behave normally.

llvm-svn: 262462

8 years ago[ELF] Fix reading of PC values of FDEs
Simon Atanasyan [Wed, 2 Mar 2016 05:38:42 +0000 (05:38 +0000)]
[ELF] Fix reading of PC values of FDEs

The patch fixes two related problems:
- If CIE augmentation string has 'L' token the CIE contains a byte
  defines LSDA encoding. We should skip this byte in `getFdeEncoding`
  routine. Before this fix we do not skip it and if the next token
  is 'R' treat this byte as FDE encoding.
- FDE encoding format has separate flags e.g. DW_EH_PE_pcrel for
  definition of relative pointers. We should add .eh_frame address to
  the PC value iif the DW_EH_PE_pcrel is specified.

http://www.airs.com/blog/archives/460

There is one more not fixed problem in this code. If PC value is encoded
using signed relative format e.g. DW_EH_PE_sdata4 | DW_EH_PE_pcrel we
should sign extend result of read32 to perform calculation correctly.
I am going to fix that in a separate patch.

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

llvm-svn: 262461

8 years ago[OPENMP 4.5] Codegen for data members in 'reduction' clause.
Alexey Bataev [Wed, 2 Mar 2016 04:57:40 +0000 (04:57 +0000)]
[OPENMP 4.5] Codegen for data members in 'reduction' clause.

OpenMP 4.5 allows to privatize non-static data members of current class
in non-static member functions. Patch supports codegen for non-static
data members in 'reduction' clauses.

llvm-svn: 262460

8 years ago[SCEV] Minor naming, braces cleanup; NFC
Sanjoy Das [Wed, 2 Mar 2016 04:52:22 +0000 (04:52 +0000)]
[SCEV] Minor naming, braces cleanup; NFC

llvm-svn: 262459

8 years ago[X86] Use MCPhysReg and uint16_t for static arrays of registers and opcodes respectiv...
Craig Topper [Wed, 2 Mar 2016 04:42:31 +0000 (04:42 +0000)]
[X86] Use MCPhysReg and uint16_t for static arrays of registers and opcodes respectively should reduce size tiny bit. NFC

llvm-svn: 262458

8 years agoAMDGPU: Fix bug 26659.
Matt Arsenault [Wed, 2 Mar 2016 04:12:39 +0000 (04:12 +0000)]
AMDGPU: Fix bug 26659.

Fix checking the same instruction twice instead of the
second branch that uses vccz. I don't think this matters
currently because s_branch_vccnz is always used currently.

llvm-svn: 262457

8 years agoAMDGPU: Cleanup suggested in bug 23960
Matt Arsenault [Wed, 2 Mar 2016 04:05:14 +0000 (04:05 +0000)]
AMDGPU: Cleanup suggested in bug 23960

llvm-svn: 262456

8 years agoBug 20810: Use report_fatal_error instead of unreachable
Matt Arsenault [Wed, 2 Mar 2016 03:33:55 +0000 (03:33 +0000)]
Bug 20810: Use report_fatal_error instead of unreachable

llvm-svn: 262455

8 years agoAdd a comment with a rational for the unusual code structure
Sanjoy Das [Wed, 2 Mar 2016 02:56:29 +0000 (02:56 +0000)]
Add a comment with a rational for the unusual code structure

llvm-svn: 262454

8 years agoQualify getRangeForAffineAR with this-> for MSVC
Sanjoy Das [Wed, 2 Mar 2016 02:44:08 +0000 (02:44 +0000)]
Qualify getRangeForAffineAR with this-> for MSVC

llvm-svn: 262453

8 years agoAttempt to fix ASAN failure in a MemorySSA test.
George Burgess IV [Wed, 2 Mar 2016 02:35:04 +0000 (02:35 +0000)]
Attempt to fix ASAN failure in a MemorySSA test.

llvm-svn: 262452

8 years agoPerturb code in an attempt to appease MSVC
Sanjoy Das [Wed, 2 Mar 2016 02:34:20 +0000 (02:34 +0000)]
Perturb code in an attempt to appease MSVC

For some reason MSVC seems to think I'm calling getConstant() from a
static context.  Try to avoid this issue by explicitly specifying
'this->' (though I'm not confident that this will actually work).

llvm-svn: 262451

8 years agoFix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other...
Eugene Zelenko [Wed, 2 Mar 2016 02:18:18 +0000 (02:18 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other minor fixes.

llvm-svn: 262450

8 years agoMore code permutation to appease MSVC
Sanjoy Das [Wed, 2 Mar 2016 02:15:42 +0000 (02:15 +0000)]
More code permutation to appease MSVC

llvm-svn: 262449

8 years agoRemove "auto" to appease the MSVC bots
Sanjoy Das [Wed, 2 Mar 2016 01:59:37 +0000 (01:59 +0000)]
Remove "auto" to appease the MSVC bots

llvm-svn: 262448

8 years agoUse C++11 initializers for data members.
Rui Ueyama [Wed, 2 Mar 2016 01:49:27 +0000 (01:49 +0000)]
Use C++11 initializers for data members.

llvm-svn: 262447

8 years agoDAGCombiner: Make sure an integer is being truncated
Matt Arsenault [Wed, 2 Mar 2016 01:36:51 +0000 (01:36 +0000)]
DAGCombiner: Make sure an integer is being truncated

llvm-svn: 262446

8 years agoRemove more dead code.
Rui Ueyama [Wed, 2 Mar 2016 01:34:36 +0000 (01:34 +0000)]
Remove more dead code.

llvm-svn: 262445

8 years agoRemove default implementations that are always overridden by subclasses.
Rui Ueyama [Wed, 2 Mar 2016 01:34:34 +0000 (01:34 +0000)]
Remove default implementations that are always overridden by subclasses.

llvm-svn: 262444

8 years agoRemove more dead code.
Rui Ueyama [Wed, 2 Mar 2016 01:23:29 +0000 (01:23 +0000)]
Remove more dead code.

llvm-svn: 262443

8 years agoAdd a few dllimport/dllexport tests. NFC
Reid Kleckner [Wed, 2 Mar 2016 01:21:48 +0000 (01:21 +0000)]
Add a few dllimport/dllexport tests.  NFC

Summary:
This change just adds tests for some corner cases of dllimport/dllexport,
primarily for some static methods.

We plan to enable dllimport/dllexport support for the PS4, and these
additional tests are for points we previously were testing internally.

-Warren Ristow
SN Systems - Sony Computer Entertainment Group

Reviewers: rnk

Subscribers: silvas

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

llvm-svn: 262442

8 years agoFix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other...
Eugene Zelenko [Wed, 2 Mar 2016 01:09:03 +0000 (01:09 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other minor fixes.

llvm-svn: 262441

8 years agorevert r262424 because there's a *clang test* for AArch64 that checks -O3 asm output
Sanjay Patel [Wed, 2 Mar 2016 01:04:09 +0000 (01:04 +0000)]
revert r262424 because there's a *clang test* for AArch64 that checks -O3 asm output
that is broken by this change

llvm-svn: 262440

8 years agoFix SHARED_LIBS build
Daniel Berlin [Wed, 2 Mar 2016 00:58:48 +0000 (00:58 +0000)]
Fix SHARED_LIBS build

llvm-svn: 262439

8 years ago[SCEV] Make getRange smarter around selects
Sanjoy Das [Wed, 2 Mar 2016 00:57:54 +0000 (00:57 +0000)]
[SCEV] Make getRange smarter around selects

Have ScalarEvolution::getRange re-consider cases like "{C?A:B,+,C?P:Q}"
by factoring out "C" and computing RangeOf{A,+,P} union RangeOf({B,+,Q})
instead.

The latter can be easier to compute precisely in cases like
"{C?0:N,+,C?1:-1}" N is the backedge taken count of the loop; since in
such cases the latter form simplifies to [0,N+1) union [0,N+1).

llvm-svn: 262438

8 years ago[SCEV] Extract out a getRangeForAffineAR; NFC
Sanjoy Das [Wed, 2 Mar 2016 00:57:39 +0000 (00:57 +0000)]
[SCEV] Extract out a getRangeForAffineAR; NFC

Pure code-motion change.  Will be used later in making getRange more clever.

llvm-svn: 262437

8 years agoRemove dead code.
Rui Ueyama [Wed, 2 Mar 2016 00:43:37 +0000 (00:43 +0000)]
Remove dead code.

llvm-svn: 262436

8 years agoRemove remaining files of Core.
Rui Ueyama [Wed, 2 Mar 2016 00:37:50 +0000 (00:37 +0000)]
Remove remaining files of Core.

llvm-svn: 262435

8 years agoTidy up CMakefiles.
Rui Ueyama [Wed, 2 Mar 2016 00:31:34 +0000 (00:31 +0000)]
Tidy up CMakefiles.

llvm-svn: 262434

8 years agoRemove unused #include's.
Rui Ueyama [Wed, 2 Mar 2016 00:28:35 +0000 (00:28 +0000)]
Remove unused #include's.

llvm-svn: 262431

8 years ago[CMake] Add convenience target clang-test-depends to build test dependencies.
Chris Bieneman [Wed, 2 Mar 2016 00:27:15 +0000 (00:27 +0000)]
[CMake] Add convenience target clang-test-depends to build test dependencies.

This is useful when paired with the distribution targets to build prerequisites for running tests.

llvm-svn: 262429

8 years ago[CMake] Add convenience target llvm-test-depends to build test dependencies.
Chris Bieneman [Wed, 2 Mar 2016 00:27:14 +0000 (00:27 +0000)]
[CMake] Add convenience target llvm-test-depends to build test dependencies.

This is useful when paired with the distribution targets to build prerequisites for running tests.

llvm-svn: 262428

8 years ago[CMake] Add distribution target that is the "just-build" side of install-distribution
Chris Bieneman [Wed, 2 Mar 2016 00:27:12 +0000 (00:27 +0000)]
[CMake] Add distribution target that is the "just-build" side of install-distribution

This is just a convenience target to allow limiting what you build.

llvm-svn: 262427

8 years ago[InstCombine] convert 'isPositive' and 'isNegative' vector comparisons to shifts...
Sanjay Patel [Tue, 1 Mar 2016 23:55:18 +0000 (23:55 +0000)]
[InstCombine] convert 'isPositive' and 'isNegative' vector comparisons to shifts (PR26701)

As noted in the code comment, I don't think we can do the same transform that we do for
*scalar* integers comparisons to *vector* integers comparisons because it might pessimize
the general case.

Exhibit A for an incomplete integer comparison ISA remains x86 SSE/AVX: it only has EQ and GT
for integer vectors.

But we should now recognize all the variants of this construct and produce the optimal code
for the cases shown in:
https://llvm.org/bugs/show_bug.cgi?id=26701

llvm-svn: 262424

8 years agoMake a few utility functions file-scoped.
Rui Ueyama [Tue, 1 Mar 2016 23:52:04 +0000 (23:52 +0000)]
Make a few utility functions file-scoped.

makeErrorFile and parseMemberFiles are now used only in DarwinLdDriver.cpp.
This patch moves them to that file.

llvm-svn: 262423

8 years agoRemove dead code.
Rui Ueyama [Tue, 1 Mar 2016 23:48:03 +0000 (23:48 +0000)]
Remove dead code.

llvm-svn: 262422

8 years agoRemove CoreDriver.
Rui Ueyama [Tue, 1 Mar 2016 23:44:05 +0000 (23:44 +0000)]
Remove CoreDriver.

CoreDriver implements a driver for a hypothetical platform.
It is intended to be used in unittests. However, it is actually
redundant because the features are tested using the real driver
for the real platforms. So we can remove this.

http://reviews.llvm.org/D17698

llvm-svn: 262421

8 years agoclang-cl: Implement initial limited support for precompiled headers.
Nico Weber [Tue, 1 Mar 2016 23:16:44 +0000 (23:16 +0000)]
clang-cl: Implement initial limited support for precompiled headers.

In the gcc precompiled header model, one explicitly runs clang with `-x
c++-header` on a .h file to produce a gch file, and then includes the header
with `-include foo.h` and if a .gch file exists for that header it gets used.
This is documented at
http://clang.llvm.org/docs/UsersManual.html#precompiled-headers

cl.exe's model is fairly different, and controlled by the two flags /Yc and
/Yu. A pch file is generated as a side effect of a regular compilation when
/Ycheader.h is passed. While the compilation is running, the compiler keeps
track of #include lines in the main translation unit and writes everything up
to an `#include "header.h"` line into a pch file. Conversely, /Yuheader.h tells
the compiler to skip all code in the main TU up to and including `#include
"header.h"` and instead load header.pch. (It's also possible to use /Yc and /Yu
without an argument, in that case a `#pragma hrdstop` takes the role of
controlling the point where pch ends and real code begins.)

This patch implements limited support for this in that it requires the pch
header to be passed as a /FI force include flag – with this restriction,
it can be implemented almost completely in the driver with fairly small amounts
of code. For /Yu, this is trivial, and for /Yc a separate pch action is added
that runs before the actual compilation. After r261774, the first failing
command makes a compilation stop – this means if the pch fails to build the
main compilation won't run, which is what we want. However, in /fallback builds
we need to run the main compilation even if the pch build fails so that the
main compilation's fallback can run. To achieve this, add a ForceSuccessCommand
that pretends that the pch build always succeeded in /fallback builds (the main
compilation will then fail to open the pch and run the fallback cl.exe
invocation).

If /Yc /Yu are used in a setup that clang-cl doesn't implement yet, clang-cl
will now emit a "not implemented yet; flag ignored" warning that can be
disabled using -Wno-clang-cl-pch.

Since clang-cl doesn't yet serialize some important things (most notably
`pragma comment(lib, ...)`, this feature is disabled by default and only
enabled by an internal driver flag. Once it's more stable, this internal flag
will disappear.

(The default stdafx.h setup passes stdafx.h as explicit argument to /Yc but not
as /FI – instead every single TU has to `#include <stdafx.h>` as first thing it
does. Implementing support for this should be possible with the approach in
this patch with minimal frontend changes by passing a --stop-at / --start-at
flag from the driver to the frontend. This is left for a follow-up. I don't
think we ever want to support `#pragma hdrstop`, and supporting it with this
approach isn't easy: This approach relies on the driver knowing the pch
filename in advance, and `#pragma hdrstop(out.pch)` can set the output
filename, so the driver can't know about it in advance.)

clang-cl now also honors /Fp and puts pch files in the same spot that cl.exe
would put them, but the pch file format is of course incompatible. This has
ramifications on /fallback, so /Yc /Yu aren't passed through to cl.exe in
/fallback builds.

http://reviews.llvm.org/D17695

llvm-svn: 262420

8 years agoPerform InstructioinCombiningPass before SampleProfile pass.
Dehao Chen [Tue, 1 Mar 2016 22:53:02 +0000 (22:53 +0000)]
Perform InstructioinCombiningPass before SampleProfile pass.

Summary: SampleProfile pass needs to be performed after InstructionCombiningPass, which helps eliminate un-inlinable function calls.

Reviewers: davidxl, dnovillo

Subscribers: llvm-commits

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

llvm-svn: 262419

8 years agoUpdated SSE41 builtin tests to more closely match the llvm fast-isel equivalent tests
Simon Pilgrim [Tue, 1 Mar 2016 22:38:33 +0000 (22:38 +0000)]
Updated SSE41 builtin tests to more closely match the llvm fast-isel equivalent tests

llvm-svn: 262418

8 years ago[libFuzzer] deprecate exit_on_first flag
Kostya Serebryany [Tue, 1 Mar 2016 22:33:14 +0000 (22:33 +0000)]
[libFuzzer] deprecate exit_on_first flag

llvm-svn: 262417

8 years agollvm-dwp: Add missing copyright notice to llvm-dwp.cpp
David Blaikie [Tue, 1 Mar 2016 22:29:00 +0000 (22:29 +0000)]
llvm-dwp: Add missing copyright notice to llvm-dwp.cpp

Addressing feedback on IRC by Sean Silva.

llvm-svn: 262416

8 years ago[libFuzzer] add generic signal handlers so that libFuzzer can report at least somethi...
Kostya Serebryany [Tue, 1 Mar 2016 22:19:21 +0000 (22:19 +0000)]
[libFuzzer] add generic signal handlers so that libFuzzer can report at least something if ASan is not handlig the signals for us. Remove abort_on_timeout flag.

llvm-svn: 262415

8 years agoMangle extended qualifiers in the proper order and mangle the
John McCall [Tue, 1 Mar 2016 22:18:03 +0000 (22:18 +0000)]
Mangle extended qualifiers in the proper order and mangle the
ARC ownership-convention function type modifications.

According to the Itanium ABI, vendor extended qualifiers are
supposed to be mangled in reverse-alphabetical order before
any CVR qualifiers.  The ARC function type conventions are
plausibly order-significant (they are associated with the
function type), which permits us to ignore the need to correctly
inter-order them with any other vendor qualifiers on the parameter
and return types.

Implementing these rules correctly is technically an ABI break.
Apple is comfortable with the risk of incompatibility here for
the ARC features, and I believe that address-space qualification
is still uncommon enough to allow us to adopt the conforming
rule without serious risk.  Still, targets which make heavy
use of address space qualification may want to revert to the
non-conforming order.

llvm-svn: 262414

8 years agoFix --help message.
Rui Ueyama [Tue, 1 Mar 2016 22:17:09 +0000 (22:17 +0000)]
Fix --help message.

llvm-svn: 262413

8 years ago[X86][SSE41] Added missing fast-isel intrinsics tests
Simon Pilgrim [Tue, 1 Mar 2016 22:05:05 +0000 (22:05 +0000)]
[X86][SSE41] Added missing fast-isel intrinsics tests

Match IR generated in clang/test/CodeGen/sse41-builtins.c

llvm-svn: 262412

8 years ago[NFC] Convert tabs to spaces.
Colin LeMahieu [Tue, 1 Mar 2016 22:05:03 +0000 (22:05 +0000)]
[NFC] Convert tabs to spaces.

llvm-svn: 262411

8 years ago[X86][XOP] Regenerated intrinsics tests
Simon Pilgrim [Tue, 1 Mar 2016 21:58:50 +0000 (21:58 +0000)]
[X86][XOP] Regenerated intrinsics tests

llvm-svn: 262410

8 years agoExplicitly select IAS on one more RUN line in new embed-bitcode.c test.
Daniel Sanders [Tue, 1 Mar 2016 21:57:22 +0000 (21:57 +0000)]
Explicitly select IAS on one more RUN line in new embed-bitcode.c test.

This should fix clang-cmake-mips builder since MIPS does not have IAS enabled
by default (yet).

llvm-svn: 262409

8 years agoAArch64: Reenable CompleteModel for A53, A57 and Kryo models
Matthias Braun [Tue, 1 Mar 2016 21:55:35 +0000 (21:55 +0000)]
AArch64: Reenable CompleteModel for A53, A57 and Kryo models

The fixes in r262393 completed them as well.

llvm-svn: 262408

8 years agoFix bug with function resolution when using IR Interpreter
Ted Woodward [Tue, 1 Mar 2016 21:53:26 +0000 (21:53 +0000)]
Fix bug with function resolution when using IR Interpreter

Summary: Recent changes to the expression parser broke function name resolution when using the IR interpreter instead of JIT. This patch changes the IRMemoryMap ivar in InterpreterStackFrame to an IRExecutionUnitSP (which is a subclass), allowing InterpreterStackFrame::ResolveConstantValue() to call FindSymbol() on the name of the Value when it's a FunctionVal. It also changes IRExecutionUnit::FindInSymbols() to call GetFileAddress() on the symball if ResolveCallableAddress() fails and there is no valid Process.

Reviewers: spyffe

Subscribers: lldb-commits

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

llvm-svn: 262407

8 years ago[X86][AVX2] Regenerated 256-bit vector / 64-bit element permute tests
Simon Pilgrim [Tue, 1 Mar 2016 21:53:12 +0000 (21:53 +0000)]
[X86][AVX2] Regenerated 256-bit vector / 64-bit element permute tests

llvm-svn: 262406

8 years agoFix typo. NFC.
Tim Northover [Tue, 1 Mar 2016 21:45:22 +0000 (21:45 +0000)]
Fix typo. NFC.

llvm-svn: 262405

8 years agoFix non-synthesizable loop exit values.
Michael Kruse [Tue, 1 Mar 2016 21:44:06 +0000 (21:44 +0000)]
Fix non-synthesizable loop exit values.

Polly recognizes affine loops that ScalarEvolution does not, in
particular those with loop conditions that depend on hoisted invariant
loads. Check for SCEVAddRec dependencies on such loops and do not
consider their exit values as synthesizable because SCEVExpander would
generate them as expressions that depend on the original induction
variables. These are not available in generated code.

llvm-svn: 262404

8 years ago[X86][AVX2] Regenerated horizontal add/sub tests
Simon Pilgrim [Tue, 1 Mar 2016 21:43:55 +0000 (21:43 +0000)]
[X86][AVX2] Regenerated horizontal add/sub tests

llvm-svn: 262403

8 years ago[clang-format] Detect constructor initializers preceded by `noexcept`.
Daniel Jasper [Tue, 1 Mar 2016 21:41:58 +0000 (21:41 +0000)]
[clang-format] Detect constructor initializers preceded by `noexcept`.

Patch by Erik Kessler, thank you.

llvm-svn: 262402

8 years ago[X86][AVX2] Regenerated intrinsics tests
Simon Pilgrim [Tue, 1 Mar 2016 21:38:41 +0000 (21:38 +0000)]
[X86][AVX2] Regenerated intrinsics tests

llvm-svn: 262401

8 years ago[Hexagon] Modifying r262258 to only be in effect in the hand assembler path, not...
Colin LeMahieu [Tue, 1 Mar 2016 21:37:41 +0000 (21:37 +0000)]
[Hexagon] Modifying r262258 to only be in effect in the hand assembler path, not the integrated assembler.

llvm-svn: 262400

8 years agoTableGen: Display helpfull message for incomplete models.
Matthias Braun [Tue, 1 Mar 2016 21:36:12 +0000 (21:36 +0000)]
TableGen: Display helpfull message for incomplete models.

llvm-svn: 262399

8 years ago[X86][AVX] Fixed triple/arch clash in test case
Simon Pilgrim [Tue, 1 Mar 2016 21:33:08 +0000 (21:33 +0000)]
[X86][AVX] Fixed triple/arch clash in test case

We were specifying a x64 triple and then overriding with a x86 arch.

llvm-svn: 262398

8 years agoDAGCombiner: Turn truncate of a bitcasted vector to an extract
Matt Arsenault [Tue, 1 Mar 2016 21:31:53 +0000 (21:31 +0000)]
DAGCombiner: Turn truncate of a bitcasted vector to an extract

On AMDGPU where operations i64 operations are often bitcasted to v2i32
and back, this pattern shows up regularly where it breaks some
expected combines on i64, such as load width reducing.

This fixes some test failures in a future commit when i64 loads
are changed to promote.

llvm-svn: 262397

8 years agoAdd LLVMBuild for ObjectYAML.
Rafael Espindola [Tue, 1 Mar 2016 21:29:33 +0000 (21:29 +0000)]
Add LLVMBuild for ObjectYAML.

Should fix the DBUILD_SHARED_LIBS bots.

llvm-svn: 262396

8 years agoRevert "llvm-dwp: Keep ObjectFiles alive until object emission their contents can...
David Blaikie [Tue, 1 Mar 2016 21:24:04 +0000 (21:24 +0000)]
Revert "llvm-dwp: Keep ObjectFiles alive until object emission their contents can be referenced directly rather than copied"

Accidentally committed.

This reverts commit r262389.

llvm-svn: 262395

8 years ago[lanai] Add ELF enum value and relocations.
Jacques Pienaar [Tue, 1 Mar 2016 21:21:42 +0000 (21:21 +0000)]
[lanai] Add ELF enum value and relocations.

Add ELF enum value and relocations for Lanai backed.

General Lanai backend discussion on llvm-dev thread "[RFC] Lanai backend" (http://lists.llvm.org/pipermail/llvm-dev/2016-February/095118.html).

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

llvm-svn: 262394

8 years agoAArch64: Add missing schedinfo, check completeness for cyclone
Matthias Braun [Tue, 1 Mar 2016 21:20:31 +0000 (21:20 +0000)]
AArch64: Add missing schedinfo, check completeness for cyclone

This adds some missing generic schedule info definitions, enables
completeness checking for cyclone and fixes a typo uncovered by that.

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

llvm-svn: 262393

8 years ago[Power9] Implement new vector compare, extract, insert instructions
Kit Barton [Tue, 1 Mar 2016 20:51:57 +0000 (20:51 +0000)]
[Power9] Implement new vector compare, extract, insert instructions

This change implements the following vector operations:

  - Vector Compare Not Equal
    - vcmpneb(.) vcmpneh(.) vcmpnew(.)
    - vcmpnezb(.) vcmpnezh(.) vcmpnezw(.)
  - Vector Extract Unsigned
    - vextractub vextractuh vextractuw vextractd
    - vextublx vextubrx vextuhlx vextuhrx vextuwlx vextuwrx
  - Vector Insert
    - vinsertb vinserth vinsertw vinsertd

26 instructions.

Phabricator: http://reviews.llvm.org/D15916
llvm-svn: 262392

8 years ago[x86] use getBitcast()
Sanjay Patel [Tue, 1 Mar 2016 20:47:02 +0000 (20:47 +0000)]
[x86] use getBitcast()

This isn't quite NFC because some of the SDLocs may change which could
cause scheduling differences. But no regression tests are affected and
there is no functional change intended.

llvm-svn: 262391

8 years agoFix some warnings a bit harder/different
David Blaikie [Tue, 1 Mar 2016 20:41:17 +0000 (20:41 +0000)]
Fix some warnings a bit harder/different

This is an alternate fix to 262378 and a fix to a pessimizing-move
warning.

llvm-svn: 262390

8 years agollvm-dwp: Keep ObjectFiles alive until object emission their contents can be referenc...
David Blaikie [Tue, 1 Mar 2016 20:40:02 +0000 (20:40 +0000)]
llvm-dwp: Keep ObjectFiles alive until object emission their contents can be referenced directly rather than copied

llvm-svn: 262389

8 years ago Revert "[AArch64] Fix isLegalAddImmediate() to return true for valid negative...
Geoff Berry [Tue, 1 Mar 2016 20:28:52 +0000 (20:28 +0000)]
Revert "[AArch64] Fix isLegalAddImmediate() to return true for valid negative values."

    Revert r262248 in an attempt to fix the clang-native-aarch64-full
    bot and to investigate a performance regression in
    SingleSource/Benchmarks/CoyoteBench/huffbench

llvm-svn: 262388

8 years agoRevert "[mips] Promote the result of SETCC nodes to GPR width."
Vasileios Kalintiris [Tue, 1 Mar 2016 20:25:43 +0000 (20:25 +0000)]
Revert "[mips] Promote the result of SETCC nodes to GPR width."

This reverts commit r262316.

It seems that my change breaks an out-of-tree chromium buildbot, so
I'm reverting this in order to investigate the situation further.

llvm-svn: 262387

8 years agoNew file to track implementation status of new POWER9 instructions
Kit Barton [Tue, 1 Mar 2016 20:19:43 +0000 (20:19 +0000)]
New file to track implementation status of new POWER9 instructions

llvm-svn: 262386

8 years agoThis patch adds doxygen comments for the intrinsincs in the header file popcntintrin.h.
Ekaterina Romanova [Tue, 1 Mar 2016 20:04:57 +0000 (20:04 +0000)]
This patch adds doxygen comments for the intrinsincs in the header file popcntintrin.h.

The doxygen comments are automatically generated based on Sony's intrinsics documentation.

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

llvm-svn: 262385

8 years agoTableGen: Check scheduling models for completeness
Matthias Braun [Tue, 1 Mar 2016 20:03:21 +0000 (20:03 +0000)]
TableGen: Check scheduling models for completeness

TableGen checks at compiletime that for scheduling models with
"CompleteModel = 1" one of the following holds:

- Is marked with the hasNoSchedulingInfo flag
- The instruction is a subclass of Sched
- There are InstRW definitions in the scheduling model

Typical steps necessary to complete a model:

- Ensure all pseudo instructions that are expanded before machine
  scheduling (usually everything handled with EmitYYY() functions in
  XXXTargetLowering).
- If a CPU does not support some instructions mark the corresponding
  resource unsupported: "WriteRes<WriteXXX, []> { let Unsupported = 1; }".
- Add missing scheduling information.

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

llvm-svn: 262384

8 years agoTableGen: Add hasNoSchedulingInfo to instructions
Matthias Braun [Tue, 1 Mar 2016 20:03:11 +0000 (20:03 +0000)]
TableGen: Add hasNoSchedulingInfo to instructions

This introduces a new flag that indicates that a specific instruction
will never be present when the MachineScheduler runs and therefore needs
no scheduling information.

This is in preparation for an upcoming commit which checks completeness
of a scheduling model when tablegen runs.

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

llvm-svn: 262383

8 years agoReword a misleading comment discussing landingpads and SEH
Reid Kleckner [Tue, 1 Mar 2016 19:51:48 +0000 (19:51 +0000)]
Reword a misleading comment discussing landingpads and SEH

SEH doesn't use landingpads anymore.

llvm-svn: 262382

8 years ago[NVPTX] Annotate param loads/stores as mayLoad/mayStore.
Justin Lebar [Tue, 1 Mar 2016 19:44:22 +0000 (19:44 +0000)]
[NVPTX] Annotate param loads/stores as mayLoad/mayStore.

Summary:
Tablegen was unable to determine that param loads/stores were actually
reading or writing from memory.  I think this isn't a problem in
practice for param stores, because those occur in a block right before
we make our call.  But param loads don't have to at the very beginning
of a function, so should be annotated as mayLoad so we don't incorrectly
optimize them.

Reviewers: jholewinski

Subscribers: jholewinski, llvm-commits

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

llvm-svn: 262381

8 years ago[NVPTX] Remove workaround for tablegen crash in NVPTXInstrInfo.td.
Justin Lebar [Tue, 1 Mar 2016 19:44:20 +0000 (19:44 +0000)]
[NVPTX] Remove workaround for tablegen crash in NVPTXInstrInfo.td.

Summary: Looks like this was caused by a typo.

Reviewers: jholewinski

Subscribers: jholewinski, llvm-commits, tra

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

llvm-svn: 262380

8 years ago[MSVC Compat] Correctly handle finallys nested within finallys
David Majnemer [Tue, 1 Mar 2016 19:42:53 +0000 (19:42 +0000)]
[MSVC Compat] Correctly handle finallys nested within finallys

We'd lose track of the parent CodeGenFunction, leading us to get
confused with regard to which function a nested finally belonged to.

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

llvm-svn: 262379