OSDN Git Service

android-x86/external-llvm.git
7 years ago[WebAssembly] Define the `end` opcode value.
Dan Gohman [Mon, 24 Oct 2016 20:32:04 +0000 (20:32 +0000)]
[WebAssembly] Define the `end` opcode value.

CFGStackify differentiates between END_LOOP and END_BLOCK, but wasm
itself doesn't. For now, just use the same opcode for both.

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

7 years ago[WebAssembly] Update opcode values according to recent spec changes.
Dan Gohman [Mon, 24 Oct 2016 20:21:49 +0000 (20:21 +0000)]
[WebAssembly] Update opcode values according to recent spec changes.

This corresponds to the "0xd" opcode renumbering.

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

7 years ago[WebAssembly] Add an option to make get_local/set_local explicit.
Dan Gohman [Mon, 24 Oct 2016 19:49:43 +0000 (19:49 +0000)]
[WebAssembly] Add an option to make get_local/set_local explicit.

This patch adds a pass, controlled by an option and off by default for
now, for making implicit get_local/set_local explicit. This simplifies
emitting wasm with MC.

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

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

7 years agoMerge two if conditions into one. NFCI.
Davide Italiano [Mon, 24 Oct 2016 19:41:47 +0000 (19:41 +0000)]
Merge two if conditions into one. NFCI.

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

7 years agoTarget: Change various section classifiers in TargetLoweringObjectFile to take a...
Peter Collingbourne [Mon, 24 Oct 2016 19:23:39 +0000 (19:23 +0000)]
Target: Change various section classifiers in TargetLoweringObjectFile to take a GlobalObject.

These functions are about classifying a global which will actually be
emitted, so it does not make sense for them to take a GlobalValue which may
for example be an alias.

Change the Mach-O object writer and the Hexagon, Lanai and MIPS backends to
look through aliases before using TargetLoweringObjectFile interfaces. These
are functional changes but all appear to be bug fixes.

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

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

7 years ago[x86] add tests for {-1,0,1} select of constants
Sanjay Patel [Mon, 24 Oct 2016 19:13:29 +0000 (19:13 +0000)]
[x86] add tests for {-1,0,1} select of constants

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

7 years ago[llvm] Remove redundant --check-prefix=CHECK from tests
Mandeep Singh Grang [Mon, 24 Oct 2016 18:57:55 +0000 (18:57 +0000)]
[llvm] Remove redundant --check-prefix=CHECK from tests

Reviewers: MatzeB, mcrosier, rengolin

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

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

7 years agoCodeGen: Do not add a global's address space to the folding set profile.
Peter Collingbourne [Mon, 24 Oct 2016 18:56:09 +0000 (18:56 +0000)]
CodeGen: Do not add a global's address space to the folding set profile.

It is already part of the type (which is part of the global, which is already
being added), so there's no need to do it.

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

7 years agoadd-discriminators: Fix handling of lexical scopes.
Adrian Prantl [Mon, 24 Oct 2016 18:23:51 +0000 (18:23 +0000)]
add-discriminators: Fix handling of lexical scopes.

This fixes a bug in the handling of lexical scopes, when more than one
scope is defined on the same line or functions are inlined into call
sites that are on the same line as the function definition. This
situation can easily happen in macro expansions.

The problem is solved by introducing a SmallDenseMap<DIScope *,
DILexicalBlockFile *, 1> that keeps track of all the different lexical
scopes that share a line/file location.

Fixes PR30681.

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

7 years agoClarify that MSVC is not the issue here anymore.
Benjamin Kramer [Mon, 24 Oct 2016 18:11:05 +0000 (18:11 +0000)]
Clarify that MSVC is not the issue here anymore.

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

7 years agoRevert r284972 and remove other defaulted copy/move constructors/=
Krzysztof Parzyszek [Mon, 24 Oct 2016 17:40:46 +0000 (17:40 +0000)]
Revert r284972 and remove other defaulted copy/move constructors/=

David Blaikie pointed out that we get them for free without having to
write anything.

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

7 years ago[PPC] Generate positive FP zero using xor insn instead of loading from constant area
Ehsan Amiri [Mon, 24 Oct 2016 17:31:09 +0000 (17:31 +0000)]
[PPC] Generate positive FP zero using xor insn instead of loading from constant area

https://reviews.llvm.org/D23614

Currently we load +0.0 from constant area. That can change to be generated using
XOR instruction.

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

7 years agoReleaseNotes: mention new compiler requirements
Hans Wennborg [Mon, 24 Oct 2016 17:29:52 +0000 (17:29 +0000)]
ReleaseNotes: mention new compiler requirements

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

7 years agoRevert r284580+r284917. ("Synthesize TBB/TBH instructions")
Eli Friedman [Mon, 24 Oct 2016 17:20:50 +0000 (17:20 +0000)]
Revert r284580+r284917. ("Synthesize TBB/TBH instructions")

The optimization has correctness issues, so reverting for now to fix tests
on thumb1 targets.

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

7 years agoRemoved FIXME from include ordering comment
Simon Pilgrim [Mon, 24 Oct 2016 17:15:05 +0000 (17:15 +0000)]
Removed FIXME from include ordering comment

Nothing to fix, it's just the way it has to be.

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

7 years agoCheck the number of Args in LibCallsShrinkWrap.
Rong Xu [Mon, 24 Oct 2016 16:50:12 +0000 (16:50 +0000)]
Check the number of Args in LibCallsShrinkWrap.

Some library fucntions can have no argument.

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

7 years ago[AArch64] Optionally use the Newton series for reciprocal estimation
Evandro Menezes [Mon, 24 Oct 2016 16:14:58 +0000 (16:14 +0000)]
[AArch64] Optionally use the Newton series for reciprocal estimation

Add support for estimating the square root or its reciprocal and division or
reciprocal using the combiner generic Newton series.

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

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

7 years ago[ADT] static_assert that SmallDenseMap is instantiated with a power-of-two number...
Justin Lebar [Mon, 24 Oct 2016 16:06:53 +0000 (16:06 +0000)]
[ADT] static_assert that SmallDenseMap is instantiated with a power-of-two number of inline buckets.

Summary:
If you try to instantiate it with a non-power-of-two buckets, DenseMap
will assert at runtime (!) if we ever outgrow our inline storage.

I believe using a constexpr function inside of a static_assert is safe
now that we've unsupported MSVC 2013 and GCC < 4.8.

Reviewers: bkramer, qcolombet, escha

Subscribers: llvm-commits

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

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

7 years ago[EarlyCSE] Optimize MemoryPhis and reduce memory clobber queries w/ MemorySSA
Geoff Berry [Mon, 24 Oct 2016 15:54:00 +0000 (15:54 +0000)]
[EarlyCSE] Optimize MemoryPhis and reduce memory clobber queries w/ MemorySSA

Summary:
When using MemorySSA, re-optimize MemoryPhis when removing a store since
this may create MemoryPhis with all identical arguments.

Also, when using MemorySSA to check if two MemoryUses are reading from
the same version of the heap, use the defining access instead of calling
getClobberingAccess, since the latter can currently result in many more
AA calls.  Once the MemorySSA use optimization tracking changes are
done, we can remove this limitation, which should result in more loads
being CSE'd.

Reviewers: dberlin

Subscribers: mcrosier, llvm-commits

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

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

7 years ago[PPC] Better codegen for AND, ANY_EXT, SRL sequence
Ehsan Amiri [Mon, 24 Oct 2016 15:46:58 +0000 (15:46 +0000)]
[PPC] Better codegen for AND, ANY_EXT, SRL sequence

https://reviews.llvm.org/D24924

This improves the code generated for a sequence of AND, ANY_EXT, SRL instructions. This is a targetted fix for this special pattern. The pattern is generated by target independet dag combiner and so a more general fix may not be necessary. If we come across other similar cases, some ideas for handling it are discussed on the code review.

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

7 years ago[x86] regenerate checks
Sanjay Patel [Mon, 24 Oct 2016 15:43:40 +0000 (15:43 +0000)]
[x86] regenerate checks

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

7 years agoAMDGPU: Fix Two Address problems with v_movreld
Nicolai Haehnle [Mon, 24 Oct 2016 14:56:02 +0000 (14:56 +0000)]
AMDGPU: Fix Two Address problems with v_movreld

Summary:
The v_movreld machine instruction is used with three operands that are
in a sense tied to each other (the explicit VGPR_32 def and the implicit
VGPR_NN def and use). There is no way to express that using the currently
available operand bits, and indeed there are cases where the Two Address
instructions pass does the wrong thing.

This patch introduces a new set of pseudo instructions that are identical
in intended semantics as v_movreld, but they only have two tied operands.

Having to add a new set of pseudo instructions is admittedly annoying, but
it's a fairly straightforward and solid approach. The only alternative I
see is to try to teach the Two Address instructions pass about Three Address
instructions, and I'm afraid that's trickier and is going to end up more
fragile.

Note that v_movrels does not suffer from this problem, and so this patch
does not touch it.

This fixes several GL45-CTS.shaders.indexing.* tests.

Reviewers: tstellarAMD, arsenm

Subscribers: kzhuravl, wdng, yaxunl, llvm-commits, tony-tye

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

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

7 years agoRevert 284971.
Nico Weber [Mon, 24 Oct 2016 14:52:04 +0000 (14:52 +0000)]
Revert 284971.

It seems to break selfhost on some bots, see e.g.
http://lab.llvm.org:8011/builders/clang-x86-windows-msvc2015/builds/21
http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/20
http://lab.llvm.org:8011/builders/clang-ppc64be-linux-lnt/builds/22

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

7 years ago[MC] Fix Various End Of Line Comment checkings
Nirav Dave [Mon, 24 Oct 2016 14:35:29 +0000 (14:35 +0000)]
[MC] Fix Various End Of Line Comment checkings

Fix AsmParser lines to correctly handle end-of-line pre-processor
comments parsing when '#' is not the assembly line comment prefix.

Reviewers: rnk

Subscribers: llvm-commits

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

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

7 years ago[Chrono] Fix !HAVE_FUTIMENS build
Pavel Labath [Mon, 24 Oct 2016 14:19:28 +0000 (14:19 +0000)]
[Chrono] Fix !HAVE_FUTIMENS build

If we don't have futimens(), we fall back to futimes(), which only supports
microsecond timestamps. In that case, we need to explicitly cast away the extra
precision in setLastModificationAndAccessTime().

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

7 years agoRemove unused #includes of TimeValue.h. NFC.
Pavel Labath [Mon, 24 Oct 2016 14:00:26 +0000 (14:00 +0000)]
Remove unused #includes of TimeValue.h. NFC.

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

7 years ago[Object] Replace TimeValue with std::chrono
Pavel Labath [Mon, 24 Oct 2016 13:38:27 +0000 (13:38 +0000)]
[Object] Replace TimeValue with std::chrono

Summary:
Most of the changes are very straight-forward. The only choice I had to make was
to use second-precision time points in the Archive classes. I did this because
the archive files use that precision in the on-disk representation anyway.

Reviewers: rafael, zturner

Subscribers: llvm-commits

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

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

7 years agoAArch64 ILP32 relocations for assembly and ELF
Joel Jones [Mon, 24 Oct 2016 13:37:13 +0000 (13:37 +0000)]
AArch64 ILP32 relocations for assembly and ELF

Summary:
Add relocations for AArch64 ILP32. Includes:
  - Addition of definitions for R_AARCH32_*
  - Definition of new -target-abi: ilp32
  - Definition of data layout string
  - Tests for added relocations. Not comprehensive, but matches
    existing tests for 64-bit. Renames "CHECK-OBJ" to "CHECK-OBJ-LP64".
  - Tests for llvm-readobj

Reviewers: zatrazz, peter.smith, echristo, t.p.northover

Subscribers: aemerson, rengolin, mehdi_amini

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

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

7 years ago[RDF] Add default move constructors/assignment operators
Krzysztof Parzyszek [Mon, 24 Oct 2016 13:15:20 +0000 (13:15 +0000)]
[RDF] Add default move constructors/assignment operators

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

7 years ago[JumpThreading] Unfold selects that depend on the same condition
Pablo Barrio [Mon, 24 Oct 2016 13:04:45 +0000 (13:04 +0000)]
[JumpThreading] Unfold selects that depend on the same condition

Summary:
These are good candidates for jump threading. This enables later opts
(such as InstCombine) to combine instructions from the selects with
instructions out of the selects. SimplifyCFG will fold the select
again if unfolding wasn't worth it.

Patch by James Molloy and Pablo Barrio.

Reviewers: reames, bkramer, mcrosier, gberry, haicheng, jmolloy, sebpop

Subscribers: jojo, rengolin, llvm-commits

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

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

7 years agoFix windows builds by swapping windows.h and wincrypt.h ordering.
Simon Pilgrim [Mon, 24 Oct 2016 12:39:23 +0000 (12:39 +0000)]
Fix windows builds by swapping windows.h and wincrypt.h ordering.

We need to include windows.h first even though it breaks default include ordering rules

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

7 years agoRemove TimeValue usage from llvm/Support
Pavel Labath [Mon, 24 Oct 2016 10:59:17 +0000 (10:59 +0000)]
Remove TimeValue usage from llvm/Support

Summary:
This is a follow-up to D25416. It removes all usages of TimeValue from
llvm/Support library (except for the actual TimeValue declaration), and replaces
them with appropriate usages of std::chrono. To facilitate this, I have added
small utility functions for converting time points and durations into appropriate
OS-specific types (FILETIME, struct timespec, ...).

Reviewers: zturner, mehdi_amini

Subscribers: llvm-commits

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

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

7 years ago[mips] synci microMIPS instruction definition.
Simon Dardis [Mon, 24 Oct 2016 10:23:59 +0000 (10:23 +0000)]
[mips] synci microMIPS instruction definition.

Add synci to the microMIPS instruction definitions, mark the MIPS sync & synci
as not being part of microMIPS. This does not cover the sync instruction alias,
as that will be handled with a different patch. Add sync to the valid tests for
microMIPS.

Reviewers: vkalintiris

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

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

7 years ago[llvm-opt-report] Fix unroll-count reporting
Hal Finkel [Mon, 24 Oct 2016 05:07:18 +0000 (05:07 +0000)]
[llvm-opt-report] Fix unroll-count reporting

Fix the implementation of OptReportLocationInfo's operator < so that contexts
with different unroll counts are reported separately.

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

7 years ago[AVX-512] Remove masked pmin/pmax intrinsics and autoupgrade to native IR.
Craig Topper [Mon, 24 Oct 2016 04:04:16 +0000 (04:04 +0000)]
[AVX-512] Remove masked pmin/pmax intrinsics and autoupgrade to native IR.

Clang patch to replace 512-bit vector and 64-bit element versions with native IR will follow.

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

7 years ago[DAG] enhance computeKnownBits to handle SRL/SRA with vector splat constant
Sanjay Patel [Sun, 23 Oct 2016 23:13:31 +0000 (23:13 +0000)]
[DAG] enhance computeKnownBits to handle SRL/SRA with vector splat constant

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

7 years agoUse SDValue::getConstantOperandVal() helper. NFCI.
Simon Pilgrim [Sun, 23 Oct 2016 20:17:21 +0000 (20:17 +0000)]
Use SDValue::getConstantOperandVal() helper. NFCI.

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

7 years agoRemove LLVM_CONSTEXPR.
Justin Lebar [Sun, 23 Oct 2016 19:39:16 +0000 (19:39 +0000)]
Remove LLVM_CONSTEXPR.

Summary: With MSVC 2013 and GCC < 4.8 gone, we can use the "constexpr" keyword.

Reviewers: bkramer, mehdi_amini

Subscribers: llvm-commits

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

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

7 years ago[CostModel][X86] Added tests for current integer signed/unsigned remainder costs
Simon Pilgrim [Sun, 23 Oct 2016 18:35:02 +0000 (18:35 +0000)]
[CostModel][X86] Added tests for current integer signed/unsigned remainder costs

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

7 years ago[X86][SSE] Add SSE41/AVX1 costs for vector shifts.
Simon Pilgrim [Sun, 23 Oct 2016 16:49:04 +0000 (16:49 +0000)]
[X86][SSE] Add SSE41/AVX1 costs for vector shifts.

We were defaulting to SSE2 costs which weren't taking into account the availability of PBLENDW/PBLENDVB to improve merging of per-element shift results.

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

7 years ago[CostModel][X86] Added tests for current integer trunc costs
Simon Pilgrim [Sun, 23 Oct 2016 15:17:52 +0000 (15:17 +0000)]
[CostModel][X86] Added tests for current integer trunc costs

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

7 years agoUse APInt::isAllOnesValue instead of popcnt. NFCI.
Simon Pilgrim [Sun, 23 Oct 2016 15:09:44 +0000 (15:09 +0000)]
Use APInt::isAllOnesValue instead of popcnt. NFCI.

More obvious implementation and faster too.

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

7 years ago[AVR] Add the machine code disassembler
Dylan McKay [Sat, 22 Oct 2016 23:57:59 +0000 (23:57 +0000)]
[AVR] Add the machine code disassembler

This adds a super basic implementation of a machine code disassembler.

It doesn't support any operands with custom encoding.

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

7 years ago[X86][AVX512VL] Added support for combining target 256-bit shuffles to AVX512VL VPERMV3
Simon Pilgrim [Sat, 22 Oct 2016 20:15:39 +0000 (20:15 +0000)]
[X86][AVX512VL] Added support for combining target 256-bit shuffles to AVX512VL VPERMV3

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

7 years ago[X86][AVX512] Added support for combining target shuffles to AVX512 VPERMV3
Simon Pilgrim [Sat, 22 Oct 2016 19:53:59 +0000 (19:53 +0000)]
[X86][AVX512] Added support for combining target shuffles to AVX512 VPERMV3

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

7 years ago[lit] Add more testing instructions to README
Brian Gesiak [Sat, 22 Oct 2016 17:27:31 +0000 (17:27 +0000)]
[lit] Add more testing instructions to README

Summary:
r283710 introduced two regressions, one to llvm-lit, and the other to
lit executables that were installed via setuptools. Add instructions on
how to test for these regressions in the future.

Reviewers: ddunbar, delcypher, beanz, chapuni, cmatthews, echristo

Subscribers: llvm-commits, mehdi_amini

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

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

7 years ago[ARM] Fix crash in ConstantIslands
James Molloy [Sat, 22 Oct 2016 09:58:37 +0000 (09:58 +0000)]
[ARM] Fix crash in ConstantIslands

tPCRelJT may not be the first instruction in a block. Check that instead of dereferencing a broken iterator.

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

7 years ago[X86] Apply the Update LLC Test Checks tool on the mmx-bitcast test
Zvi Rackover [Sat, 22 Oct 2016 07:15:00 +0000 (07:15 +0000)]
[X86] Apply the Update LLC Test Checks tool on the mmx-bitcast test

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

7 years ago[X86] Add support for printing shuffle comments for VALIGN instructions.
Craig Topper [Sat, 22 Oct 2016 06:51:56 +0000 (06:51 +0000)]
[X86] Add support for printing shuffle comments for VALIGN instructions.

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

7 years ago[X86] Add support for lowering v4i64 and v8i64 shuffles directly to PALIGNR. I think...
Craig Topper [Sat, 22 Oct 2016 06:51:52 +0000 (06:51 +0000)]
[X86] Add support for lowering v4i64 and v8i64 shuffles directly to PALIGNR. I think shuffle combine can figure it out later, but we should try to get it right up front.

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

7 years ago[X86] Remove unnecessary AVX2 check that was already covered by an assertion earlier...
Craig Topper [Sat, 22 Oct 2016 06:51:49 +0000 (06:51 +0000)]
[X86] Remove unnecessary AVX2 check that was already covered by an assertion earlier in the function. NFC

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

7 years ago[X86] Remove 128-bit lane handling from the main loop of matchVectorShuffleAsByteRota...
Craig Topper [Sat, 22 Oct 2016 06:51:44 +0000 (06:51 +0000)]
[X86] Remove 128-bit lane handling from the main loop of matchVectorShuffleAsByteRotate. Instead check for is128LaneRepeatedSuffleMask before the loop and just loop over the repeated mask.

I plan to use the loop to support VALIGND/Q shuffles so this makes it easier to reuse.

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

7 years ago[X86][SSE] Use getConstVector helper for VPERMV mask generation. NFCI.
Simon Pilgrim [Sat, 22 Oct 2016 06:18:36 +0000 (06:18 +0000)]
[X86][SSE] Use getConstVector helper for VPERMV mask generation. NFCI.

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

7 years agoNow that VS2013 is gone, make a memoryssa structure an anonymous union again
Daniel Berlin [Sat, 22 Oct 2016 04:15:41 +0000 (04:15 +0000)]
Now that VS2013 is gone, make a memoryssa structure an anonymous union again

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

7 years ago[libFuzzer] mutation: insert the size of the input in bytes as one of the ways to...
Kostya Serebryany [Sat, 22 Oct 2016 03:48:53 +0000 (03:48 +0000)]
[libFuzzer] mutation: insert the size of the input in bytes as one of the ways to mutate a binary integer

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

7 years ago[BasicAA] Fix - missed alias in GEP expressions
Gerolf Hoflehner [Sat, 22 Oct 2016 02:41:39 +0000 (02:41 +0000)]
[BasicAA] Fix -  missed alias in GEP expressions

In BasicAA GEP operand values get adjusted ("wrap-around") based on the
pointersize. Otherwise, in non-64b modes, AA could report false negatives.
However, a wrap-around is valid only for a fully evaluated expression.
It had been introduced to fix an alias problem in
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160118/326163.html.
This commit restricts the wrap-around to constant gep operands only where the
value is known at compile-time.

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

7 years ago[CtorUtils] Modernize. No functional changes intended.
Davide Italiano [Sat, 22 Oct 2016 01:21:24 +0000 (01:21 +0000)]
[CtorUtils] Modernize. No functional changes intended.

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

7 years ago[libFuzzer] typo in a test
Kostya Serebryany [Sat, 22 Oct 2016 01:07:38 +0000 (01:07 +0000)]
[libFuzzer] typo in a test

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

7 years ago[libFuzzer] add a test for asan's strict_string_checks=1
Kostya Serebryany [Sat, 22 Oct 2016 00:05:44 +0000 (00:05 +0000)]
[libFuzzer] add a test for asan's strict_string_checks=1

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

7 years agoFix map insertion that is elided in release build.
David L. Jones [Fri, 21 Oct 2016 23:30:39 +0000 (23:30 +0000)]
Fix map insertion that is elided in release build.

The assert() macro doesn't actually execute its body in Release builds, so using
it to check cache invariants requires that the insertion be outside of the
assert() statement. This change does that, and also makes sure to return the
actual map contents.

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

7 years ago[x86] add test for missing vector SRA combine via computeKnownBits
Sanjay Patel [Fri, 21 Oct 2016 23:02:31 +0000 (23:02 +0000)]
[x86] add test for missing vector SRA combine via computeKnownBits

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

7 years ago[ADT] Don't rely on string literals not being convertible to non-const char* in Cache...
Justin Lebar [Fri, 21 Oct 2016 22:10:23 +0000 (22:10 +0000)]
[ADT] Don't rely on string literals not being convertible to non-const char* in CachedHashString.

The build was breaking on some platforms because we assumed that
CachedHashString("foo") would match the CachedHashString(StringRef)
constructor rather than the CachedHashString(char*) constructor.

To fix this, provide a CachedHashString(const char*) constructor, and
add a dummy argument to the old CachedHashString(char*) constructor.

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

7 years ago[AMDGPU] Perform uchar to float combine for ISD::SINT_TO_FP
Konstantin Zhuravlyov [Fri, 21 Oct 2016 22:10:03 +0000 (22:10 +0000)]
[AMDGPU] Perform uchar to float combine for ISD::SINT_TO_FP

This will prevent following regression when enabling i16 support (D18049):
  test/CodeGen/AMDGPU/cvt_f32_ubyte.ll

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

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

7 years agoSwitch SmallSetVector to use DenseSet when it overflows its inline space.
Justin Lebar [Fri, 21 Oct 2016 21:45:01 +0000 (21:45 +0000)]
Switch SmallSetVector to use DenseSet when it overflows its inline space.

Summary:
SetVector already used DenseSet, but SmallSetVector used std::set.  This
leads to surprising performance differences.  Moreover, it means that
the set of key types accepted by SetVector and SmallSetVector are
quite different!

In order to make this change, we had to convert some callsites that used
SmallSetVector<std::string, N> to use SmallSetVector<CachedHashString, N>
instead.

Reviewers: timshen

Subscribers: llvm-commits

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

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

7 years agoSupport: Annotate Error and Expected<> with LLVM_NODISCARD
Justin Bogner [Fri, 21 Oct 2016 21:01:12 +0000 (21:01 +0000)]
Support: Annotate Error and Expected<> with LLVM_NODISCARD

It's always a mistake to ignore return values with Error or Expected
types.

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

7 years agofixed typo in InstrProf.h; NFC
Bob Haarman [Fri, 21 Oct 2016 20:38:37 +0000 (20:38 +0000)]
fixed typo in InstrProf.h; NFC

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

7 years ago[ADT] Get rid of use of LLVM_NOEXCEPT in CachedHashString.h.
Justin Lebar [Fri, 21 Oct 2016 20:28:00 +0000 (20:28 +0000)]
[ADT] Get rid of use of LLVM_NOEXCEPT in CachedHashString.h.

LLVM_NOEXCEPT is no longer necessary (yay).

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

7 years agoAMDGPU/SI: Fix crash caused by r284267
Tom Stellard [Fri, 21 Oct 2016 20:25:11 +0000 (20:25 +0000)]
AMDGPU/SI: Fix crash caused by r284267

Reviewers: arsenm, nhaehnle

Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, llvm-commits

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

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

7 years ago[DAG] enhance computeKnownBits to handle SHL with vector splat constant
Sanjay Patel [Fri, 21 Oct 2016 20:16:27 +0000 (20:16 +0000)]
[DAG] enhance computeKnownBits to handle SHL with vector splat constant

Also, use APInt to avoid crashing on types larger than vNi64.

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

7 years ago[ADT] Compare strings' hashes first before comparing their values.
Justin Lebar [Fri, 21 Oct 2016 20:10:51 +0000 (20:10 +0000)]
[ADT] Compare strings' hashes first before comparing their values.

Summary:
We already have the hashes in hand, and comparing hashes should be much
more discriminatory than comparing the StringRefs' sizes.

Reviewers: rafael

Subscribers: llvm-commits

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

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

7 years ago[ADT] Add CachedHashString.
Justin Lebar [Fri, 21 Oct 2016 20:10:48 +0000 (20:10 +0000)]
[ADT] Add CachedHashString.

Summary:
This is like CachedHashStringRef, but owns its data.

This lets us use strings inside of DenseMaps.

Reviewers: timshen

Subscribers: llvm-commits

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

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

7 years ago[IR] Add DenseMapInfo<CallSite>.
Justin Lebar [Fri, 21 Oct 2016 20:10:44 +0000 (20:10 +0000)]
[IR] Add DenseMapInfo<CallSite>.

Summary:
A CallSite is basically an Instruction*, and you can put Instruction*s
into DenseMaps, so you should be able to do the same with CallSites.

This is used in a later patch.

Reviewers: timshen

Subscribers: llvm-commits

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

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

7 years ago[SCEV] Memoize visitMulExpr results in SCEVRewriteVisitor.
Li Huang [Fri, 21 Oct 2016 20:05:21 +0000 (20:05 +0000)]
[SCEV] Memoize visitMulExpr results in SCEVRewriteVisitor.

Summary:
When SCEVRewriteVisitor traverses the SCEV DAG, it may visit the same SCEV
multiple times if this SCEV is referenced by multiple other SCEVs. This has
exponential time complexity in the worst case. Memoizing the results will
avoid re-visiting the same SCEV. Add a map to save the results, and override
the visit function of SCEVVisitor. Now SCEVRewriteVisitor only visit each
SCEV once and thus returns the same result for the same input SCEV.

This patch fixes PR18606, PR18607.

Reviewers: Sanjoy Das, Mehdi Amini, Michael Zolotukhin

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

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

7 years agoFix a bug in the code of llvm-cxxdump in dumpArchive() when
Kevin Enderby [Fri, 21 Oct 2016 20:03:14 +0000 (20:03 +0000)]
Fix a bug in the code of llvm-cxxdump in dumpArchive() when
iterating over an archive with object and non-object members that
would cause an Abort because to was not calling consumeError()
when the code was wanting to ignore a non-object file.

Found by Justin Bogner!

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

7 years ago[libFuzzer] mention one more trophie
Kostya Serebryany [Fri, 21 Oct 2016 20:01:45 +0000 (20:01 +0000)]
[libFuzzer] mention one more trophie

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

7 years agoAnalysis: Move llvm::getConstantRangeFromMetadata to IR library.
Peter Collingbourne [Fri, 21 Oct 2016 19:59:26 +0000 (19:59 +0000)]
Analysis: Move llvm::getConstantRangeFromMetadata to IR library.

We're about to start using it there.

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

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

7 years agoX86: Improve BT instruction selection for 64-bit values.
Peter Collingbourne [Fri, 21 Oct 2016 19:57:55 +0000 (19:57 +0000)]
X86: Improve BT instruction selection for 64-bit values.

If a 64-bit value is tested against a bit which is known to be in the range
[0..31) (modulo 64), we can use the 32-bit BT instruction, which has a slightly
shorter encoding.

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

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

7 years ago[X86][AVX512BWVL] Added support for lowering v16i16 shuffles to AVX512BWVL vpermw
Simon Pilgrim [Fri, 21 Oct 2016 19:54:38 +0000 (19:54 +0000)]
[X86][AVX512BWVL] Added support for lowering v16i16 shuffles to AVX512BWVL vpermw

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

7 years ago[pdb] added support for dumping globals stream
Bob Haarman [Fri, 21 Oct 2016 19:43:19 +0000 (19:43 +0000)]
[pdb] added support for dumping globals stream

Summary: This adds support for dumping the globals stream from PDB files using llvm-pdbdump, similar to the support we have for the publics stream.

Reviewers: ruiu, zturner

Subscribers: beanz, mgorny, modocache

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

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

7 years ago[X86][AVX512BWVL] Added support for combining target v16i16 shuffles to AVX512BWVL...
Simon Pilgrim [Fri, 21 Oct 2016 19:40:29 +0000 (19:40 +0000)]
[X86][AVX512BWVL] Added support for combining target v16i16 shuffles to AVX512BWVL vpermw

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

7 years ago[X86][AVX512] Added support for combining target shuffles to AVX512 vpermpd/vpermq...
Simon Pilgrim [Fri, 21 Oct 2016 19:18:09 +0000 (19:18 +0000)]
[X86][AVX512] Added support for combining target shuffles to AVX512 vpermpd/vpermq/vpermps/vpermd/vpermw

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

7 years ago[RDF] Use RegisterId typedef more consistently, NFC
Krzysztof Parzyszek [Fri, 21 Oct 2016 19:12:13 +0000 (19:12 +0000)]
[RDF] Use RegisterId typedef more consistently, NFC

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

7 years ago[StripGCRelocates] New pass to remove gc.relocates added by RS4GC
Anna Thomas [Fri, 21 Oct 2016 18:43:16 +0000 (18:43 +0000)]
[StripGCRelocates] New pass to remove gc.relocates added by RS4GC

Summary:
Utility pass to remove gc.relocates created by rewrite statepoints for GC.
With respect to safepoint verification, the IR generated would be incorrect, and cannot run
as such.

This would be a single transformation on the final optimized IR.
The benefit of the pass is for easy analysis when the IRs are 'polluted' by too
many gc.relocates.
Added tests.

test run: All RS4GC tests with -verify option. Local downstream tests on large
IR files. This also works when the pointer being gc.relocated is another
gc.relocate.

Reviewers: sanjoy, reames

Subscribers: beanz, mgorny, llvm-commits

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

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

7 years agoFor llvm-objdump for Mach-O files add printing of
Kevin Enderby [Fri, 21 Oct 2016 18:22:35 +0000 (18:22 +0000)]
For llvm-objdump for Mach-O files add printing of
the ARM_THREAD_STATE in the same format as
otool-classic(1) on darwin.

Also remove an extra space in printing the initprot to make
the output match otool-classic(1) on darwin.

rdar://28851457

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

7 years ago[DAG] fold negation of sign-bit
Sanjay Patel [Fri, 21 Oct 2016 17:24:26 +0000 (17:24 +0000)]
[DAG] fold negation of sign-bit

0 - X --> 0, if the sub is NUW
0 - X --> 0, if X is 0 or the minimum signed value and the sub is NSW
0 - X --> X, if X is 0 or the minimum signed value

This is the DAG equivalent of:
https://reviews.llvm.org/rL284649

plus the fold for the NUW case which already existed in InstSimplify.

Note that we miss a vector fold because of a deficiency in the DAG version of
computeKnownBits().

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

7 years ago[x86] add tests for potential negation folds
Sanjay Patel [Fri, 21 Oct 2016 16:56:29 +0000 (16:56 +0000)]
[x86] add tests for potential negation folds

These are the backend equivalents for the tests added in r284627.
The patterns may emerge late, so we should have folds for these in the DAG too.

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

7 years ago[Hexagon] Handle spills of partially defined double vector registers
Krzysztof Parzyszek [Fri, 21 Oct 2016 16:38:29 +0000 (16:38 +0000)]
[Hexagon] Handle spills of partially defined double vector registers

After register allocation it is possible to have a spill of a register
that is only partially defined. That in itself it fine, but creates a
problem for double vector registers. Stores of such registers are pseudo
instructions that are expanded into pairs of individual vector stores,
and in case of a partially defined source, one of the stores may use
an entirely undefined register. To avoid this, track the defined parts
and only generate actual stores for those.

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

7 years ago[WebAssembly] Fix for 0xc call_indirect changes
Derek Schuff [Fri, 21 Oct 2016 16:38:07 +0000 (16:38 +0000)]
[WebAssembly] Fix for 0xc call_indirect changes

Summary:
Need to reorder the operands to have the callee as the last argument.
Adds a pseudo-instruction, and a pass to lower it into a real
call_indirect.

This is the first of two options for how to fix the problem.

Reviewers: dschuff, sunfish

Subscribers: jfb, beanz, mgorny, llvm-commits

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

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

7 years agoSet the vectorizer MaxInterleaveFactor for Exynos.
Abderrazek Zaafrani [Fri, 21 Oct 2016 16:28:27 +0000 (16:28 +0000)]
Set the vectorizer MaxInterleaveFactor for Exynos.

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

7 years agoFix -Wunused-variable warning in libFuzzer
Reid Kleckner [Fri, 21 Oct 2016 16:26:27 +0000 (16:26 +0000)]
Fix -Wunused-variable warning in libFuzzer

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

7 years ago[X86][SSE] Regenerated sext/zext constant folding tests and added i686 tests
Simon Pilgrim [Fri, 21 Oct 2016 16:22:16 +0000 (16:22 +0000)]
[X86][SSE] Regenerated sext/zext constant folding tests and added i686 tests

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

7 years ago[X86] Use DAG::getBuildVector helper wrapper where possible. NFCI.
Simon Pilgrim [Fri, 21 Oct 2016 16:07:51 +0000 (16:07 +0000)]
[X86] Use DAG::getBuildVector helper wrapper where possible. NFCI.

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

7 years ago[MachineMemOperand][AtomicSDNode] Remove getSuccessOrdering()
Konstantin Zhuravlyov [Fri, 21 Oct 2016 16:02:35 +0000 (16:02 +0000)]
[MachineMemOperand][AtomicSDNode] Remove getSuccessOrdering()

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

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

7 years ago[X86][SSE] Regenerated chained pmovsx store tests and added i686 tests
Simon Pilgrim [Fri, 21 Oct 2016 15:51:24 +0000 (15:51 +0000)]
[X86][SSE] Regenerated chained pmovsx store tests and added i686 tests

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

7 years agoTest commit
Abderrazek Zaafrani [Fri, 21 Oct 2016 15:24:08 +0000 (15:24 +0000)]
Test commit

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

7 years ago[LVI] Fix a bug with a guard being the very first instruction in a BB not taken into...
Artur Pilipenko [Fri, 21 Oct 2016 15:02:21 +0000 (15:02 +0000)]
[LVI] Fix a bug with a guard being the very first instruction in a BB not taken into account

While looking for guards use reverse iterator and scan up to rend() not to begin()

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

7 years agofix variable names; NFCI
Sanjay Patel [Fri, 21 Oct 2016 14:58:30 +0000 (14:58 +0000)]
fix variable names; NFCI

Because we're just 'or-ing' these 2 variables later in the code, I
don't think there's a logical bug here, but of course the string with
"no size" is the one that should have the size suffix stripped off.

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

7 years ago[AMDGPU][mc] Fix ds_min/max[_rtn]_f32 - extra source operand removed.
Artem Tamazov [Fri, 21 Oct 2016 14:49:22 +0000 (14:49 +0000)]
[AMDGPU][mc] Fix ds_min/max[_rtn]_f32 - extra source operand removed.

Fixes Bug 28215. Lit tests updated.

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

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

7 years ago[DAG] use SDNode flags 'nsz' to enable fadd/fsub with zero folds
Sanjay Patel [Fri, 21 Oct 2016 14:36:58 +0000 (14:36 +0000)]
[DAG] use SDNode flags 'nsz' to enable fadd/fsub with zero folds

As discussed in D24815, let's start the process of killing off the broken fast-math global
state housed in TargetOptions and eliminate the need for function-level fast-math attributes.

Here we enable two similar folds that are possible when we don't care about signed-zero:
fadd nsz x, 0 --> x
fsub nsz 0, x --> -x

Note that although the test cases include a 'sin' function call, I'm side-stepping the
FMF-on-calls question (and lack of support in the DAG) for now. It's not needed for these
tests - isNegatibleForFree/GetNegatedExpression just look through a ISD::FSIN node.

Also, when we create an FNEG node and propagate the Flags of the FSUB to it, this doesn't
actually do anything today because Flags are silently dropped for any node that is not a
binary operator.

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

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

7 years ago[X86][AVX2] Begun generalizing lowering to VPERMD/VPERMPS in preparation for AVX512...
Simon Pilgrim [Fri, 21 Oct 2016 13:00:47 +0000 (13:00 +0000)]
[X86][AVX2] Begun generalizing lowering to VPERMD/VPERMPS in preparation for AVX512 support.

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