]> granicus.if.org Git - llvm/log
llvm
8 years ago[Thumb-1] TBB generation: spot redefinitions of index register
James Molloy [Mon, 13 Feb 2017 14:07:39 +0000 (14:07 +0000)]
[Thumb-1] TBB generation: spot redefinitions of index register

We match a sequence of 3-4 instructions into a tTBB pseudo. One of our checks is that
a particular register in that sequence is killed (so it can be clobbered by the pseudo).

We weren't noticing if an errant MOV or other instruction had infiltrated the
sequence we were walking. If it had, and it defined the register we've already
identified as killed, it makes it live across the tBR_JT and thus unclobberable.

Notice this case and bail out.

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

8 years ago[ARM] Register ConstantIslands with the pass manager
James Molloy [Mon, 13 Feb 2017 14:07:25 +0000 (14:07 +0000)]
[ARM] Register ConstantIslands with the pass manager

This allows us to use -stop-before/-stop-after/-run-pass - we can now write
.mir tests.

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

8 years ago[Assembler] Improve diagnostics for inline assembly.
Sanne Wouda [Mon, 13 Feb 2017 13:58:00 +0000 (13:58 +0000)]
[Assembler] Improve diagnostics for inline assembly.

Summary:
Keep a vector of LocInfos around; one for each call to EmitInlineAsm.
Since each call to EmitInlineAsm creates a new buffer in the inline asm
SourceMgr, we can use the buffer number to map to the right LocInfo.

Reviewers: rengolin, grosbach, rnk, echristo

Reviewed By: rnk

Subscribers: mehdi_amini, llvm-commits

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

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

8 years ago[X86][SSE] Add more thorough extract to store tests
Simon Pilgrim [Mon, 13 Feb 2017 13:40:12 +0000 (13:40 +0000)]
[X86][SSE] Add more thorough extract to store tests

Added v4i32 and v2i64 tests and test on i686 as well as x86_64.

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

8 years ago[ARM] Use VCMP, not VCMPE, for floating point equality comparisons
James Molloy [Mon, 13 Feb 2017 12:32:47 +0000 (12:32 +0000)]
[ARM] Use VCMP, not VCMPE, for floating point equality comparisons

When generating a floating point comparison we currently unconditionally
generate VCMPE. This has the sideeffect of setting the cumulative Invalid
bit in FPSCR if any of the operands are QNaN.

It is expected that use of a relational predicate on a QNaN value should
raise Invalid. Quoting from the C standard:

  The relational and equality operators support the usual mathematical
  relationships between numeric values. For any ordered pair of numeric
  values exactly one of relationships the less, greater, equal and is true.
  Relational operators may raise the floating-point exception when argument
  values are NaNs.

The standard doesn't explicitly state the expectation for equality operators,
but the implication and obvious expectation is that equality operators
should not raise Invalid on a QNaN input, as those predicates are wholly
defined on unordered inputs (to return not equal).

Therefore, add a new operand to ARMISD::FPCMP and FPCMPZ indicating if
QNaN should raise Invalid, and pipe that through to TableGen.

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

8 years ago[X86][SSE] Create matchVectorShuffleWithUNPCK helper function.
Simon Pilgrim [Mon, 13 Feb 2017 11:52:58 +0000 (11:52 +0000)]
[X86][SSE] Create matchVectorShuffleWithUNPCK helper function.

Currently only used by target shuffle combining - will use it for lowering as well in a future patch.

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

8 years ago[X86] Improve readability of test/CodeGen/X86/lzcnt-zext-cmp.ll by adding a common...
Pierre Gousseau [Mon, 13 Feb 2017 09:57:17 +0000 (09:57 +0000)]
[X86] Improve readability of test/CodeGen/X86/lzcnt-zext-cmp.ll by adding a common check prefix ALL. NFC.

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

8 years ago[X86][AVX512] Fix operand classes for some AVX512 instructions to keep consistency...
Ayman Musa [Mon, 13 Feb 2017 09:55:48 +0000 (09:55 +0000)]
[X86][AVX512] Fix operand classes for some AVX512 instructions to keep consistency between VEX/EVEX versions of the same instruction.

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

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

8 years agoCompile time decreasing in the case we're dealing with Machine Combiner.
Andrew V. Tischenko [Mon, 13 Feb 2017 09:43:37 +0000 (09:43 +0000)]
Compile time decreasing in the case we're dealing with Machine Combiner.
Before this patch compile time was about 21s (see below). After this patch
we have less than 2s (see bellow).

  Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz

    DAGCombiner - trunk
        time ./llc spill_fdiv.ll -o /dev/null -enable-unsafe-fp-math
        real  0m1.685s

    DAGCombiner + Speed patch
        time ./llc spill_fdiv.ll -o /dev/null -enable-unsafe-fp-math
        real  0m1.655s

    MachineCombiner w/o Speed patch
        time ./llc spill_fdiv.ll -o /dev/null -enable-unsafe-fp-math
        real  0m21.614s

    MachineCombiner + Speed patch
        time ./llc spill_fdiv.ll -o /dev/null -enable-unsafe-fp-math
        real  0m1.593s

The test spill_fdiv.ll  is attached to D29627
D29627 should be closed.

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

8 years ago[SLP] Fix for PR31690: Allow using of extra values in horizontal
Alexey Bataev [Mon, 13 Feb 2017 08:01:26 +0000 (08:01 +0000)]
[SLP] Fix for PR31690: Allow using of extra values in horizontal
reductions.

Currently, LLVM supports vectorization of horizontal reduction
instructions with initial value set to 0. Patch supports vectorization
of reduction with non-zero initial values. Also, it supports a
vectorization of instructions with some extra arguments, like:
```
float f(float x[], int a, int b) {
  float p = a % b;
  p += x[0] + 3;
  for (int i = 1; i < 32; i++)
    p += x[i];
  return p;
}
```
Patch allows vectorization of this kind of horizontal reductions.

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

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

8 years ago[DAGCombiner] Teach DAG combine that inserting an extract_subvector result into the...
Craig Topper [Mon, 13 Feb 2017 04:53:33 +0000 (04:53 +0000)]
[DAGCombiner] Teach DAG combine that inserting an extract_subvector result into the same location of a an undef vector can just use the original input to the extract.

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

8 years ago[X86] Genericize the handling of INSERT_SUBVECTOR from an EXTRACT_SUBVECTOR to suppor...
Craig Topper [Mon, 13 Feb 2017 04:53:29 +0000 (04:53 +0000)]
[X86] Genericize the handling of INSERT_SUBVECTOR from an EXTRACT_SUBVECTOR to support 512-bit vectors with 128-bit or 256-bit subvectors.

We now detect that both the extract and insert indices are non-zero and convert to a shuffle. This will be lowered as a blend for 256-bit vectors or as a vshuf operations for 512-bit vectors.

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

8 years ago[DAGCombiner] Remove the half vector width check for the combine of EXTRACT_SUBVECTOR...
Craig Topper [Sun, 12 Feb 2017 23:49:49 +0000 (23:49 +0000)]
[DAGCombiner] Remove the half vector width check for the combine of EXTRACT_SUBVECTOR from an INSERT_SUBVECTOR.

This gives more parallelism opportunities for AVX-512 when dealing with 128-bit extracts from 512-bit vectors.

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

8 years ago[X86] Don't let LowerEXTRACT_SUBVECTOR call getNode for EXTRACT_SUBVECTOR.
Craig Topper [Sun, 12 Feb 2017 23:49:46 +0000 (23:49 +0000)]
[X86] Don't let LowerEXTRACT_SUBVECTOR call getNode for EXTRACT_SUBVECTOR.

This results in the simplifications inside of getNode running while we're legalizing nodes popped off the worklist during the final DAG combine. This basically makes a DAG combine like operation occur during this legalize step, but we don't handle something quite the same way. I think we don't recursively added the removed nodes to the DAG combiner worklist.

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

8 years agoNewGVN: Update a number of xfailed tests to either be correct or note
Daniel Berlin [Sun, 12 Feb 2017 23:28:06 +0000 (23:28 +0000)]
NewGVN: Update a number of xfailed tests to either be correct or note
why they fail.

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

8 years agoNewGVN: We really pass TBAA if we enable DCE and fix the test. Note that GVN eliminat...
Daniel Berlin [Sun, 12 Feb 2017 23:24:47 +0000 (23:24 +0000)]
NewGVN: We really pass TBAA if we enable DCE and fix the test. Note that GVN eliminates no-use readonly/readnone calls, even if they are not marked nounwind. NewGVN only eliminates them if they are marked nounwind, and thus, trivially dead.

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

8 years agoNewGVN: Reverse order of congruence class elimination to maximize trivial deadness
Daniel Berlin [Sun, 12 Feb 2017 23:24:45 +0000 (23:24 +0000)]
NewGVN: Reverse order of congruence class elimination to maximize trivial deadness

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

8 years agoNewGVN: Use shouldSwapOperands in one more place
Daniel Berlin [Sun, 12 Feb 2017 23:24:42 +0000 (23:24 +0000)]
NewGVN: Use shouldSwapOperands in one more place

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

8 years ago[TargetLowering] fix SETCC SETLT folding with FP types
Sanjay Patel [Sun, 12 Feb 2017 23:07:52 +0000 (23:07 +0000)]
[TargetLowering] fix SETCC SETLT folding with FP types

The bug was introduced with:
https://reviews.llvm.org/rL294863

...and manifests as a selection failure in x86, but that's actually
another bug. This fix prevents wrong codegen with -0.0, but in the
more common case when we have NSZ and NNAN (-ffast-math), we should
still be able to fold this setcc/compare.

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

8 years agoRevert accidental commit titled "testing"
Daniel Berlin [Sun, 12 Feb 2017 22:40:10 +0000 (22:40 +0000)]
Revert accidental commit titled "testing"

This reverts commit r294919

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

8 years agoNewGVN: Apply the fast math flags fix in r267113 to NewGVN as well.
Daniel Berlin [Sun, 12 Feb 2017 22:25:20 +0000 (22:25 +0000)]
NewGVN: Apply the fast math flags fix in r267113 to NewGVN as well.

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

8 years agoPredicateInfo: Handle critical edges
Daniel Berlin [Sun, 12 Feb 2017 22:12:20 +0000 (22:12 +0000)]
PredicateInfo: Handle critical edges

Summary:
This adds support for placing predicateinfo such that it affects critical edges.

This fixes the issues mentioned by Nuno on the mailing list.

Depends on D29519

Reviewers: davide, nlopes

Subscribers: llvm-commits

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

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

8 years agoNewGVN: Fix missed call that should be to shouldSwapOperands
Daniel Berlin [Sun, 12 Feb 2017 22:02:47 +0000 (22:02 +0000)]
NewGVN: Fix missed call that should be to shouldSwapOperands

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

8 years agotesting
Daniel Berlin [Sun, 12 Feb 2017 22:02:20 +0000 (22:02 +0000)]
testing

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

8 years ago[X86] Fix typo in function name. NFCI.
Simon Pilgrim [Sun, 12 Feb 2017 20:53:44 +0000 (20:53 +0000)]
[X86] Fix typo in function name. NFCI.

convertBitVectorToUnsiged - convertBitVectorToUnsigned

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

8 years agollvm-readobj: process FreeBSD core notes
Saleem Abdulrasool [Sun, 12 Feb 2017 18:55:33 +0000 (18:55 +0000)]
llvm-readobj: process FreeBSD core notes

core files on FreeBSD have additional notes to capture state.  Process
those notes when dumping the notes.

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

8 years ago[AVX-512] Add various EVEX move instructions to load folding tables using the VEX...
Craig Topper [Sun, 12 Feb 2017 18:47:46 +0000 (18:47 +0000)]
[AVX-512] Add various EVEX move instructions to load folding tables using the VEX equivalents as a guide.

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

8 years ago[AVX-512] Add VMOV64toSDZrm CodeGenOnly instruction based on the same instruction...
Craig Topper [Sun, 12 Feb 2017 18:47:44 +0000 (18:47 +0000)]
[AVX-512] Add VMOV64toSDZrm CodeGenOnly instruction based on the same instruction from AVX/SSE.

I can't prove that we can select this instruction or the AVX/SSE version, but I'm adding it for consistency for now so I can continue matching the load folding tables.

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

8 years ago[X86] Fix a couple instruction names to use 'mr' instead of 'rm' to indicate they...
Craig Topper [Sun, 12 Feb 2017 18:47:40 +0000 (18:47 +0000)]
[X86] Fix a couple instruction names to use 'mr' instead of 'rm' to indicate they are stores. AVX-512 version was already named with 'mr'.

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

8 years ago[AVX-512] Add VPEXTRD/Q to load folding tables.
Craig Topper [Sun, 12 Feb 2017 18:47:37 +0000 (18:47 +0000)]
[AVX-512] Add VPEXTRD/Q to load folding tables.

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

8 years ago[X86][SSE] Update argument names to match function name. NFCI.
Simon Pilgrim [Sun, 12 Feb 2017 16:46:41 +0000 (16:46 +0000)]
[X86][SSE] Update argument names to match function name. NFCI.

The target shuffle match function arguments were using the term 'Ops' but the function names referred to them as 'Inputs' - use 'Inputs' consistently.

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

8 years ago[InstCombine] fold icmp sgt/slt (add nsw X, C2), C --> icmp sgt/slt X, (C - C2)
Sanjay Patel [Sun, 12 Feb 2017 16:40:30 +0000 (16:40 +0000)]
[InstCombine] fold icmp sgt/slt (add nsw X, C2), C --> icmp sgt/slt X, (C - C2)

I found one special case of this transform for 'slt 0', so I removed that and added the general transform.

Alive code to check correctness:

Name: slt_no_overflow
Pre: WillNotOverflowSignedSub(C1, C2)
%a = add nsw i8 %x, C2
%b = icmp slt %a, C1
  =>
%b = icmp slt %x, C1 - C2

Name: sgt_no_overflow
Pre: WillNotOverflowSignedSub(C1, C2)
%a = add nsw i8 %x, C2
%b = icmp sgt %a, C1
  =>
%b = icmp sgt %x, C1 - C2

http://rise4fun.com/Alive/MH

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

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

8 years ago[ValueTracking] use nonnull argument attribute to eliminate null checks
Sanjay Patel [Sun, 12 Feb 2017 15:35:34 +0000 (15:35 +0000)]
[ValueTracking] use nonnull argument attribute to eliminate null checks

Enhancing value tracking's analysis of null-ness was suggested in D27855, so here's a first attempt at that.

This is part of solving:
https://llvm.org/bugs/show_bug.cgi?id=28430

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

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

8 years ago[X86][AVX2] Add support for combining target shuffles to VPMOVZX
Simon Pilgrim [Sun, 12 Feb 2017 14:31:23 +0000 (14:31 +0000)]
[X86][AVX2] Add support for combining target shuffles to VPMOVZX

Initial 256-bit vector support - 512-bit support requires extra checks for AVX512BW support (PMOVZXBW) that will be handled in a future patch.

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

8 years agoAMDGPU::expandMemIntrinsicUses(): Fix an uninitialized variable. This function return...
NAKAMURA Takumi [Sun, 12 Feb 2017 13:15:31 +0000 (13:15 +0000)]
AMDGPU::expandMemIntrinsicUses(): Fix an uninitialized variable. This function returned true or undef.

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

8 years ago[LV/LoopAccess] Check statically if an unknown dependence distance can be
Dorit Nuzman [Sun, 12 Feb 2017 09:32:53 +0000 (09:32 +0000)]
[LV/LoopAccess] Check statically if an unknown dependence distance can be
proven larger than the loop-count

This fixes PR31098: Try to resolve statically data-dependences whose
compile-time-unknown distance can be proven larger than the loop-count,
instead of resorting to runtime dependence checking (which are not always
possible).

For vectorization it is sufficient to prove that the dependence distance
is >= VF; But in some cases we can prune unknown dependence distances early,
and even before selecting the VF, and without a runtime test, by comparing
the distance against the loop iteration count. Since the vectorized code
will be executed only if LoopCount >= VF, proving distance >= LoopCount
also guarantees that distance >= VF. This check is also equivalent to the
Strong SIV Test.

Reviewers: mkuper, anemet, sanjoy

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

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

8 years agoAVX-512: Fixed DWARF register numbers for XMM16-31
Elena Demikhovsky [Sun, 12 Feb 2017 07:56:50 +0000 (07:56 +0000)]
AVX-512: Fixed DWARF register numbers for XMM16-31

The reference is here:
https://software.intel.com/sites/default/files/article/402129/mpx-linux64-abi.pdf

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

8 years ago[LTO] Remove useless redirection from test. NFCI.
Davide Italiano [Sun, 12 Feb 2017 05:43:25 +0000 (05:43 +0000)]
[LTO] Remove useless redirection from test. NFCI.

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

8 years ago[PM] Add devirtualization-based iteration utility into the new PM's
Chandler Carruth [Sun, 12 Feb 2017 05:38:04 +0000 (05:38 +0000)]
[PM] Add devirtualization-based iteration utility into the new PM's
default pipeline.

A clang with this patch built with ASan and asserts can build all of the
test-suite as well, so it seems to not uncover any latent problems.

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

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

8 years ago[PM] Enable GlobalsAA in the new PM's pipeline by default.
Chandler Carruth [Sun, 12 Feb 2017 05:34:04 +0000 (05:34 +0000)]
[PM] Enable GlobalsAA in the new PM's pipeline by default.

All the invalidation issues and bugs in this seem to be fixed, it has
survived a full build of the test suite plus SPEC with asserts and ASan
enabled on the Clang binary used.

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

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

8 years ago[lib/LTO] Add support for hotness optremarks in the new API.
Davide Italiano [Sun, 12 Feb 2017 05:05:35 +0000 (05:05 +0000)]
[lib/LTO] Add support for hotness optremarks in the new API.

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

8 years ago[LTO] Simplify this test quite a bit, @func2 is unused/unneeded.
Davide Italiano [Sun, 12 Feb 2017 03:47:54 +0000 (03:47 +0000)]
[LTO] Simplify this test quite a bit, @func2 is unused/unneeded.

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

8 years ago[llvm-lto2] Fix typo in error message.
Davide Italiano [Sun, 12 Feb 2017 03:42:09 +0000 (03:42 +0000)]
[llvm-lto2] Fix typo in error message.

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

8 years ago[lib/LTO] Initial support for optimization remarks in the new API.
Davide Italiano [Sun, 12 Feb 2017 03:31:30 +0000 (03:31 +0000)]
[lib/LTO] Initial support for optimization remarks in the new API.

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

8 years agoKaleidoscope-Ch7: Add TranformUtils for llvm::createPromoteMemoryToRegisterPass(...
NAKAMURA Takumi [Sun, 12 Feb 2017 01:18:32 +0000 (01:18 +0000)]
Kaleidoscope-Ch7: Add TranformUtils for llvm::createPromoteMemoryToRegisterPass() added in r294870.

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

8 years ago[X86] Update test case I missed in r294876.
Craig Topper [Sat, 11 Feb 2017 23:23:11 +0000 (23:23 +0000)]
[X86] Update test case I missed in r294876.

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

8 years ago[X86] Move code for using blendi for insert_subvector out to an isel pattern. This...
Craig Topper [Sat, 11 Feb 2017 22:57:12 +0000 (22:57 +0000)]
[X86] Move code for using blendi for insert_subvector out to an isel pattern. This gives the DAG combiner more opportunity to optimize without needing to dig through the blend.

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

8 years ago[DAGCombiner] Make the combine of INSERT_SUBVECTOR into a CONCAT_VECTOR more generic...
Craig Topper [Sat, 11 Feb 2017 22:57:09 +0000 (22:57 +0000)]
[DAGCombiner] Make the combine of INSERT_SUBVECTOR into a CONCAT_VECTOR more generic to support larger concats.

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

8 years ago[X86][SSE] Use VSEXT/VZEXT constant folding for SIGN_EXTEND_VECTOR_INREG/ZERO_EXTEND_...
Simon Pilgrim [Sat, 11 Feb 2017 22:47:06 +0000 (22:47 +0000)]
[X86][SSE] Use VSEXT/VZEXT constant folding for SIGN_EXTEND_VECTOR_INREG/ZERO_EXTEND_VECTOR_INREG

Preparatory step for PR31712

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

8 years ago[X86][SSE] Improve VSEXT/VZEXT constant folding.
Simon Pilgrim [Sat, 11 Feb 2017 21:55:24 +0000 (21:55 +0000)]
[X86][SSE] Improve VSEXT/VZEXT constant folding.

Generalize VSEXT/VZEXT constant folding to work with any target constant bits source not just BUILD_VECTOR .

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

8 years agoUpdate Kaleidoscope tutorial and improve Windows support
Mehdi Amini [Sat, 11 Feb 2017 21:26:52 +0000 (21:26 +0000)]
Update Kaleidoscope tutorial and improve Windows support

Many quoted code blocks were not in sync with the actual toy.cpp
files. Improve tutorial text slightly in several places.
Added some step descriptions crucial to avoid crashes (like
InitializeNativeTarget* calls).
Solve/workaround problems with Windows (JIT'ed method not found, using
custom and standard library functions from host process).

Patch by: Moritz Kroll <moritz.kroll@gmx.de>

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

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

8 years agoFix atomic-minmax-i6432.ll .
Amaury Sechet [Sat, 11 Feb 2017 19:34:11 +0000 (19:34 +0000)]
Fix atomic-minmax-i6432.ll .

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

8 years agoRegen expected tests result. NFC
Amaury Sechet [Sat, 11 Feb 2017 19:27:15 +0000 (19:27 +0000)]
Regen expected tests result. NFC

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

8 years agoCorrecting several sphinx errors; should fix the LLVM documentation build.
Aaron Ballman [Sat, 11 Feb 2017 18:45:24 +0000 (18:45 +0000)]
Correcting several sphinx errors; should fix the LLVM documentation build.

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

8 years ago[X86][SSE] Add early-out when trying to match blend shuffle. NFCI.
Simon Pilgrim [Sat, 11 Feb 2017 18:06:24 +0000 (18:06 +0000)]
[X86][SSE] Add early-out when trying to match blend shuffle. NFCI.

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

8 years ago[TargetLowering] check for sign-bit comparisons in SimplifyDemandedBits
Sanjay Patel [Sat, 11 Feb 2017 18:01:55 +0000 (18:01 +0000)]
[TargetLowering] check for sign-bit comparisons in SimplifyDemandedBits

I don't know if anything other than x86 vectors is affected by this change, but this may allow
us to remove target-specific intrinsics for blendv* (vector selects). The simplification arises
from the fact that blendv* instructions only use the sign-bit when deciding which vector element
to choose for the destination vector. The mechanism to fold VSELECT into SHRUNKBLEND nodes already
exists in x86 lowering; this demanded bits change just enables the transform to fire more often.

The original motivation starts with a bug for DSE of masked stores that seems completely unrelated,
but I've explained the likely steps in this series here:
https://llvm.org/bugs/show_bug.cgi?id=11210

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

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

8 years agoFix typo in test filename. NFC
Amaury Sechet [Sat, 11 Feb 2017 17:48:49 +0000 (17:48 +0000)]
Fix typo in test filename. NFC

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

8 years agoFix indentation in X86ISelLowering. NFC
Amaury Sechet [Sat, 11 Feb 2017 17:48:48 +0000 (17:48 +0000)]
Fix indentation in X86ISelLowering. NFC

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

8 years ago[AVX-512] Add VPMINS/MINU/MAXS/MAXU instructions to load folding tables.
Craig Topper [Sat, 11 Feb 2017 17:35:28 +0000 (17:35 +0000)]
[AVX-512] Add VPMINS/MINU/MAXS/MAXU instructions to load folding tables.

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

8 years ago[X86] Improve alphabetizing of load folding tables. NFC
Craig Topper [Sat, 11 Feb 2017 17:35:25 +0000 (17:35 +0000)]
[X86] Improve alphabetizing of load folding tables. NFC

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

8 years ago[X86][SSE] Convert getTargetShuffleMaskIndices to use getTargetConstantBitsFromNode.
Simon Pilgrim [Sat, 11 Feb 2017 17:27:21 +0000 (17:27 +0000)]
[X86][SSE] Convert getTargetShuffleMaskIndices to use getTargetConstantBitsFromNode.

Removes duplicate constant extraction code in getTargetShuffleMaskIndices.

getTargetConstantBitsFromNode - adds support for VZEXT_MOVL(SCALAR_TO_VECTOR) and fail if the caller doesn't support undef bits.

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

8 years ago[X86] Merge repeated getScalarValueSizeInBits calls. NFCI.
Simon Pilgrim [Sat, 11 Feb 2017 16:42:07 +0000 (16:42 +0000)]
[X86] Merge repeated getScalarValueSizeInBits calls. NFCI.

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

8 years agoNewGVN: Reverse sense of this test to make it clearer
Daniel Berlin [Sat, 11 Feb 2017 15:20:15 +0000 (15:20 +0000)]
NewGVN: Reverse sense of this test to make it clearer

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

8 years agoNewGVN: Add missing initialization of NumFuncArgs lost due to bad merge.
Daniel Berlin [Sat, 11 Feb 2017 15:13:49 +0000 (15:13 +0000)]
NewGVN: Add missing initialization of NumFuncArgs lost due to bad merge.

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

8 years agoNewGVN: Rank and order commutative operands consistently.
Daniel Berlin [Sat, 11 Feb 2017 15:07:01 +0000 (15:07 +0000)]
NewGVN: Rank and order commutative operands consistently.

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

8 years ago[X86][3DNow!] Add tests to ensure PFMAX/PFMIN are not commuted.
Simon Pilgrim [Sat, 11 Feb 2017 14:01:37 +0000 (14:01 +0000)]
[X86][3DNow!] Add tests to ensure PFMAX/PFMIN are not commuted.

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

8 years ago[X86][3DNow!] Enable PFSUB<->PFSUBR commutation
Simon Pilgrim [Sat, 11 Feb 2017 13:51:14 +0000 (13:51 +0000)]
[X86][3DNow!] Enable PFSUB<->PFSUBR commutation

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

8 years ago[X86][3DNow!] Enable commutation for PFADD/PFMUL/PFCMPEQ/PAVGUSB/PMULHRW
Simon Pilgrim [Sat, 11 Feb 2017 13:32:55 +0000 (13:32 +0000)]
[X86][3DNow!] Enable commutation for PFADD/PFMUL/PFCMPEQ/PAVGUSB/PMULHRW

All commutations confirmed to give identical results - note PFMAX/PFMIN do not

PFSUB<->PFSUBR should be commutable as well

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

8 years ago[X86][3DNow!] Add tests showing missed commutation opportunities.
Simon Pilgrim [Sat, 11 Feb 2017 13:00:32 +0000 (13:00 +0000)]
[X86][3DNow!] Add tests showing missed commutation opportunities.

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

8 years agoNewGVN: Clean up how we handle the INITIAL class so that everything in
Daniel Berlin [Sat, 11 Feb 2017 12:48:50 +0000 (12:48 +0000)]
NewGVN: Clean up how we handle the INITIAL class so that everything in
it is dead or unreachable, as it should be.
This also makes the leader of INITIAL undef, enabling us to handle
irreducibility properly.

Summary:
This lets us verify, more than we do now, that we didn't screw up
value numbering.

Reviewers: davide

Subscribers: Prazek, llvm-commits

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

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

8 years agoFix "left shift of negative value -1" introduced by r294805
Vitaly Buka [Sat, 11 Feb 2017 12:44:03 +0000 (12:44 +0000)]
Fix "left shift of negative value -1" introduced by r294805

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

8 years ago[X86][XOP] Regenerate XOP commutation tests.
Simon Pilgrim [Sat, 11 Feb 2017 12:30:59 +0000 (12:30 +0000)]
[X86][XOP] Regenerate XOP commutation tests.

Added 32-bit tests as well.

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

8 years ago[X86][SSE] Regenerate float comparison commutation tests.
Simon Pilgrim [Sat, 11 Feb 2017 12:29:56 +0000 (12:29 +0000)]
[X86][SSE] Regenerate float comparison commutation tests.

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

8 years ago[X86] Regenerate CLMUL commutation tests.
Simon Pilgrim [Sat, 11 Feb 2017 12:23:22 +0000 (12:23 +0000)]
[X86] Regenerate CLMUL commutation tests.

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

8 years agoMove symbols from the global namespace into (anonymous) namespaces. NFC.
Benjamin Kramer [Sat, 11 Feb 2017 11:06:55 +0000 (11:06 +0000)]
Move symbols from the global namespace into (anonymous) namespaces. NFC.

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

8 years ago[AVX-512] Add VPINSRB/W/D/Q instructions to load folding tables.
Craig Topper [Sat, 11 Feb 2017 07:01:40 +0000 (07:01 +0000)]
[AVX-512] Add VPINSRB/W/D/Q instructions to load folding tables.

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

8 years ago[AVX-512] Fix apparent typo in instruction name VMOVSSDrr_REV->VMOVSDZrr_REV.
Craig Topper [Sat, 11 Feb 2017 07:01:38 +0000 (07:01 +0000)]
[AVX-512] Fix apparent typo in instruction name VMOVSSDrr_REV->VMOVSDZrr_REV.

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

8 years ago[AVX-512] Add VPSADBW instructions to load folding tables.
Craig Topper [Sat, 11 Feb 2017 06:24:03 +0000 (06:24 +0000)]
[AVX-512] Add VPSADBW instructions to load folding tables.

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

8 years agoThe patch fixes r294821
Evgeny Stupachenko [Sat, 11 Feb 2017 05:39:00 +0000 (05:39 +0000)]
The patch fixes r294821
Summary:
Update register match for windows testing

From: Evgeny Stupachenko <evstupac@gmail.com>

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

8 years ago[X86] Don't base domain decisions on VEXTRACTF128/VINSERTF128 if only AVX1 is available.
Craig Topper [Sat, 11 Feb 2017 05:32:57 +0000 (05:32 +0000)]
[X86] Don't base domain decisions on VEXTRACTF128/VINSERTF128 if only AVX1 is available.

Seems the execution dependency pass likes to use FP instructions when most of the consuming code is integer if a vextractf128 instruction produced the register. Without AVX2 we don't have the corresponding integer instruction available.

This patch suppresses the domain on these instructions to GenericDomain if AVX2 is not supported so that they are ignored by domain fixing. If AVX2 is supported we'll report the correct domain and allow them to switch between integer and fp.

Overall I think this produces better results in the modified test cases.

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

8 years agoAddress Mehdi's post-commit review comments on r294795.
Peter Collingbourne [Sat, 11 Feb 2017 03:19:22 +0000 (03:19 +0000)]
Address Mehdi's post-commit review comments on r294795.

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

8 years agoFix PR23384 (under "-lsr-insns-cost" option)
Evgeny Stupachenko [Sat, 11 Feb 2017 02:57:43 +0000 (02:57 +0000)]
Fix PR23384 (under "-lsr-insns-cost" option)

Summary:
The patch adds instructions number generated by a solution
 to LSR cost under "-lsr-insns-cost" option.

Reviewers: qcolombet, hfinkel

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

From: Evgeny Stupachenko <evstupac@gmail.com>

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

8 years ago[ARM] Make f16 interleaved accesses expensive.
Ahmed Bougacha [Sat, 11 Feb 2017 01:53:04 +0000 (01:53 +0000)]
[ARM] Make f16 interleaved accesses expensive.

There are no vldN/vstN f16 variants, even with +fullfp16.
We could use the i16 variants, but, in practice, even with +fullfp16,
the f16 sequence leading to the i16 shuffle usually gets scalarized.
We'd need to improve our support for f16 codegen before getting there.

Teach the cost model to consider f16 interleaved operations as
expensive.  Otherwise, we are all but guaranteed to end up with
a large block of scalarized vector code.

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

8 years ago[ARM] Don't lower f16 interleaved accesses.
Ahmed Bougacha [Sat, 11 Feb 2017 01:53:00 +0000 (01:53 +0000)]
[ARM] Don't lower f16 interleaved accesses.

There are no vldN/vstN f16 variants, even with +fullfp16.
We could use the i16 variants, but, in practice, even with +fullfp16,
the f16 sequence leading to the i16 shuffle usually gets scalarized.
We'd need to improve our support for f16 codegen before getting there.

Reject f16 interleaved accesses.  If we try to emit the f16 intrinsics,
we'll just end up with a selection failure.

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

8 years ago[ARM] Unique some redundant CHECK lines. NFC.
Ahmed Bougacha [Sat, 11 Feb 2017 01:52:57 +0000 (01:52 +0000)]
[ARM] Unique some redundant CHECK lines. NFC.

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

8 years ago[LSR] Recommit: Allow formula containing Reg for SCEVAddRecExpr related with outerloop.
Wei Mi [Sat, 11 Feb 2017 00:50:23 +0000 (00:50 +0000)]
[LSR] Recommit: Allow formula containing Reg for SCEVAddRecExpr related with outerloop.

The recommit includes some changes of testcases. No functional change to the patch.

In RateRegister of existing LSR, if a formula contains a Reg which is a SCEVAddRecExpr,
and this SCEVAddRecExpr's loop is an outerloop, the formula will be marked as Loser
and dropped.

Suppose we have an IR that %for.body is outerloop and %for.body2 is innerloop. LSR only
handle inner loop now so only %for.body2 will be handled.

Using the logic above, formula like
reg(%array) + reg({1,+, %size}<%for.body>) + 1*reg({0,+,1}<%for.body2>) will be dropped
no matter what because reg({1,+, %size}<%for.body>) is a SCEVAddRecExpr type reg related
with outerloop. Only formula like
reg(%array) + 1*reg({{1,+, %size}<%for.body>,+,1}<nuw><nsw><%for.body2>) will be kept
because the SCEVAddRecExpr related with outerloop is folded into the initial value of the
SCEVAddRecExpr related with current loop.

But in some cases, we do need to share the basic induction variable
reg{0 ,+, 1}<%for.body2> among LSR Uses to reduce the final total number of induction
variables used by LSR, so we don't want to drop the formula like
reg(%array) + reg({1,+, %size}<%for.body>) + 1*reg({0,+,1}<%for.body2>) unconditionally.

From the existing comment, it tries to avoid considering multiple level loops at the same time.
However, existing LSR only handles innermost loop, so for any SCEVAddRecExpr with a loop other
than current loop, it is an invariant and will be simple to handle, and the formula doesn't have
to be dropped.

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

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

8 years ago[MC] Fix some Clang-tidy modernize and Include What You Use warnings; other minor...
Eugene Zelenko [Sat, 11 Feb 2017 00:27:28 +0000 (00:27 +0000)]
[MC] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

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

8 years agoconfig-ix.cmake: Search for CMAKE_XCRUN before using it.
Matthias Braun [Sat, 11 Feb 2017 00:14:01 +0000 (00:14 +0000)]
config-ix.cmake: Search for CMAKE_XCRUN before using it.

This was previously searched in CMakeLists.txt unconditionally but as of
r294371 it is only searched in some circumstances. Repeating the search
in config-ix.cmake to make this robust and hopefully fix the macOS
Asan+Ubsan jenkins build.

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

8 years ago[PM] Fix a bug in how I ported LoopDeletion to the new PM.
Chandler Carruth [Sat, 11 Feb 2017 00:09:30 +0000 (00:09 +0000)]
[PM] Fix a bug in how I ported LoopDeletion to the new PM.

This was marking the loop for deletion after the loop was deleted. This
almost works, except that when we do any kind of debug logging it starts
reading the name of the loop from deleted memory or otherwise blowing
up. This can fail in a bunch of ways. I recently added a test that
*always* does this, and it started failing on the sanitizer bots.

The fix is to mark the loop as deleted in the loop PM infrastructure
before we remove the loop. We can do this by passing the updater into
the routine. That also lets us simplify a bunch of other interface
components here for a net win.

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

8 years ago[WebAssembly] Remove old experimental disassemler code.
Dan Gohman [Sat, 11 Feb 2017 00:02:23 +0000 (00:02 +0000)]
[WebAssembly] Remove old experimental disassemler code.

Remove support for disassembling an old experimental wasm binary format, which
is no longer in use anywhere.

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

8 years agovim: add `returned` keyword
Saleem Abdulrasool [Fri, 10 Feb 2017 23:57:11 +0000 (23:57 +0000)]
vim: add `returned` keyword

The `returned` keyword was added in SVN r179925.  Update the vim syntax
rules.

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

8 years ago[LTO] Share the optimization remarks setup between Thin/Full LTO.
Davide Italiano [Fri, 10 Feb 2017 23:49:38 +0000 (23:49 +0000)]
[LTO] Share the optimization remarks setup between Thin/Full LTO.

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

8 years ago[Hexagon] Introduce Hexagon V62
Krzysztof Parzyszek [Fri, 10 Feb 2017 23:46:45 +0000 (23:46 +0000)]
[Hexagon] Introduce Hexagon V62

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

8 years ago[tests] Be explicit about the files we want to remove.
Davide Italiano [Fri, 10 Feb 2017 22:55:37 +0000 (22:55 +0000)]
[tests] Be explicit about the files we want to remove.

Hopefully Windows will stop whining after this change.

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

8 years agoIR: Function summary extensions for whole-program devirtualization pass.
Peter Collingbourne [Fri, 10 Feb 2017 22:29:38 +0000 (22:29 +0000)]
IR: Function summary extensions for whole-program devirtualization pass.

The summary information includes all uses of llvm.type.test and
llvm.type.checked.load intrinsics that can be used to devirtualize calls,
including any constant arguments for virtual constant propagation.

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

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

8 years ago[InstCombine] Move class into anonymous namespace. NFC.
Benjamin Kramer [Fri, 10 Feb 2017 22:26:35 +0000 (22:26 +0000)]
[InstCombine] Move class into anonymous namespace. NFC.

This is necessary to avoid warnings from GCC.
InstCombineLoadStoreAlloca.cpp:238:7: error: 'PointerReplacer' declared
with greater visibility than the type of its field 'PointerReplacer::IC'

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

8 years ago[lib/LTO] Rework optimization remarkers setup.
Davide Italiano [Fri, 10 Feb 2017 22:16:17 +0000 (22:16 +0000)]
[lib/LTO] Rework optimization remarkers setup.

This makes this code much more similar to what ThinLTO is
using (also API wise), so now we can probably use a single
code path instead of copying stuff around.

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

8 years ago[PPC] Silence warning in Release builds.
Benjamin Kramer [Fri, 10 Feb 2017 22:13:34 +0000 (22:13 +0000)]
[PPC] Silence warning in Release builds.

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

8 years ago[LTO] Make these tests robust across multiple iterations.
Davide Italiano [Fri, 10 Feb 2017 22:11:06 +0000 (22:11 +0000)]
[LTO] Make these tests robust across multiple iterations.

Same as r294784, but for regular LTO.

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

8 years ago[InstCombine] Silence unused variable warning in Release builds.
Benjamin Kramer [Fri, 10 Feb 2017 22:04:17 +0000 (22:04 +0000)]
[InstCombine] Silence unused variable warning in Release builds.

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