Commit Graph

134270 Commits

Author SHA1 Message Date
Chris Bieneman
9cf90e65d1 [yaml2obj] Remove --format option in favor of YAML tags
Summary:
Our YAML library's handling of tags isn't perfect, but it is good enough to get rid of the need for the --format argument to yaml2obj. This patch does exactly that.

Instead of requiring --format, it infers the format based on the tags found in the object file. The supported tags are:

!ELF
!COFF
!mach-o
!fat-mach-o

I have a corresponding patch that is quite large that fixes up all the in-tree test cases.

Reviewers: rafael, Bigcheese, compnerd, silvas

Subscribers: compnerd, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273915 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 19:53:53 +00:00
Matt Arsenault
1d88d3b08d Verifier: Reject non-float !fpmath
Code already assumes this is float. getFPAccuracy()
crashes on any other type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273912 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 19:43:15 +00:00
Matt Arsenault
bd288e1778 DAGCombiner: Don't narrow volatile vector loads + extract
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273909 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 19:31:04 +00:00
Rafael Espindola
c01c8ebe61 Use isPositionIndependent(). NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273907 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 19:15:08 +00:00
Sanjay Patel
85a9211eaf [InstCombine] refactor sdiv by APInt transforms (NFC)
There's at least one more fold to do here:
https://llvm.org/bugs/show_bug.cgi?id=28153


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273904 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 18:38:40 +00:00
Rafael Espindola
4d570622b2 Use isPositionIndependent(). NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273903 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 18:37:44 +00:00
George Burgess IV
ecb9fc51e3 [CFLAA] Use unsigned numbers for bit-shifts.
This uses `1U` instead of `1ULL` because StratifiedAttrs is a 32-bit
bitset.

Thanks to Hans-Bernhard Broker for bringing this up.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273902 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 18:35:00 +00:00
Daniel Berlin
9577f286d4 Factor out buildMemorySSA from getWalker.
NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273901 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 18:22:27 +00:00
Rafael Espindola
8c57f91d70 Refactor duplicated condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273900 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 18:09:22 +00:00
Elena Demikhovsky
89fca4c1b1 X86 Lowering - Fixed a crash in ICMP scalar instruction
Fixed a bug in EmitTest() function in combining shl + icmp.

https://llvm.org/bugs/show_bug.cgi?id=28119



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273899 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 18:07:16 +00:00
Sanjay Patel
d96514bcfe [InstCombine] use m_APInt for div --> ashr fold
The APInt matcher works with splat vectors, so we get this fold for vectors too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273897 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 17:25:57 +00:00
Rafael Espindola
0c5a6a8955 Use isPositionIndependent(). NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273896 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 17:21:46 +00:00
Artur Pilipenko
be0da39a48 Revert -r273892 "Support arbitrary addrspace pointers in masked load/store intrinsics" since some of the clang tests don't expect to see the updated signatures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273895 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 16:54:33 +00:00
Easwaran Raman
78b1ab747b [PM] Port PartialInlining to the new PM
Differential revision: http://reviews.llvm.org/D21699



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273894 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 16:50:18 +00:00
Artur Pilipenko
9227558e8e Support arbitrary addrspace pointers in masked load/store intrinsics
This is a resubmittion of 263158 change after fixing the existing problem with intrinsics mangling (see LTO and intrinsics mangling llvm-dev thread for details).

This patch fixes the problem which occurs when loop-vectorize tries to use @llvm.masked.load/store intrinsic for a non-default addrspace pointer. It fails with "Calling a function with a bad signature!" assertion in CallInst constructor because it tries to pass a non-default addrspace pointer to the pointer argument which has default addrspace.

The fix is to add pointer type as another overloaded type to @llvm.masked.load/store intrinsics.

Reviewed By: reames

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273892 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 16:29:26 +00:00
Simon Pilgrim
17c3914be2 [X86][SSE] Added extra broadcast tests to cover PR28327
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273891 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 16:15:37 +00:00
Kuba Brecka
b41eaf7778 [asan] fix false dynamic-stack-buffer-overflow report with constantly-sized dynamic allocas, LLVM part
See the bug report at https://github.com/google/sanitizers/issues/691. When a dynamic alloca has a constant size, ASan instrumentation will treat it as a regular dynamic alloca (insert calls to poison and unpoison), but the backend will turn it into a regular stack variable. The poisoning/unpoisoning is then broken. This patch will treat such allocas as static.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273888 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 15:57:08 +00:00
Zhan Jun Liau
ff74d2352e [SystemZ] Avoid generating 2 XOR instructions for (and (xor x, -1), y)
Summary:
Created a pattern to match 64-bit mode (and (xor x, -1), y)
to a shorter sequence of instructions.

Before the change, the canonical form is translated to:
        xihf    %r3, 4294967295
        xilf    %r3, 4294967295
        ngr     %r2, %r3

After the change, the canonical form is translated to:
        ngr     %r3, %r2
        xgr     %r2, %r3

Reviewers: zhanjunl, uweigand

Subscribers: llvm-commits

Author: assem

Committing on behalf of Assem.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273887 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 15:55:30 +00:00
Krzysztof Parzyszek
339dc3dc8f [Hexagon] Equally-sized vectors are equivalent in ISel (except vNi1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273885 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 15:08:22 +00:00
Simon Dardis
4cc8cc2f69 [mips] Add instruction itineraries for LSA, DLSA
Reviewers: vkalintiris, dsanders

Differential Review: http://reviews.llvm.org/D21679


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273883 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 14:55:07 +00:00
Renato Golin
4a90581b5a [ARM] Fix Thumb text sections' flags under COFF/Windows
The main issue here is that the "thumb" flag wasn't set for some of these
sections, making MSVC's link.exe fails to correctly relocate code
against the symbols inside these sections. link.exe could fail for
instance with the "fixup is not aligned for target 'XX'" error. If
linking doesn't fail, the relocation process goes wrong in the end and
invalid code is generated by the linker.

This patch adds Thumb/ARM information so that the right flags are set
on COFF/Windows.

Patch by Adrien Guinet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273880 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 14:42:20 +00:00
Nico Weber
ebad00c746 Revert 273848, it caused PR28329
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273879 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 14:36:46 +00:00
Chris Dewhurst
56b08a5b8c Last line of file missing on previous check-in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273878 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 14:35:07 +00:00
Rafael Espindola
665d49773d Move isPositionIndependent up to AsmPrinter.
Use it in ppc too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273877 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 14:19:45 +00:00
Chris Dewhurst
97f87458e4 [Sparc] Formatting and commenting changes per review.
Differential Review: http://reviews.llvm.org/rL273108

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273876 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 14:19:19 +00:00
Rafael Espindola
47347b8315 Use the isPositionIndependent predicate. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273875 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 14:05:43 +00:00
Simon Pilgrim
9040edc5de Removed duplicate assertions note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273874 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 13:06:18 +00:00
Diana Picus
e50b5c5180 [ARM] Use member initializers in ARMSubtarget. NFCI
Same as r273556, but with C++11 member initializers.

Change suggested by Matthias Braun (see http://reviews.llvm.org/D21432).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273873 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 13:06:10 +00:00
Simon Pilgrim
b0c59abcd3 Fix "not all control paths return a value" warning on MSVC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273872 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 12:58:10 +00:00
Rafael Espindola
7a6104fd55 Simplify getLabelAccessInfo.
It now takes a IsPIC flag instead of computing and returning it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273871 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 12:56:02 +00:00
Rafael Espindola
3334c59094 Use the isPositionIndependent predicate. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273870 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 12:48:21 +00:00
Rafael Espindola
706f4ac5f6 Add an explanation on how mips is special in here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273868 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 12:33:33 +00:00
Benjamin Kramer
8430ca2f8f [IRBuilder] Drop unused CreateInvoke overloads.
The arrayref overload is more flexible with virtually the same
interface. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273867 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 12:25:26 +00:00
Benjamin Kramer
8f7d823142 [msan] Tighten up type in StoreList. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273866 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 12:25:23 +00:00
Elena Demikhovsky
98cea819c1 Removed extra test from the prev commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273865 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 11:40:49 +00:00
Elena Demikhovsky
1abadbff39 Fixed consecutive memory access detection in Loop Vectorizer.
It did not handle correctly cases without GEP.

The following loop wasn't vectorized:

for (int i=0; i<len; i++)

  *to++ = *from++;

I use getPtrStride() to find Stride for memory access and return 0 is the Stride is not 1 or -1.

Re-commit rL273257 - revision: http://reviews.llvm.org/D20789



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273864 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 11:19:23 +00:00
NAKAMURA Takumi
c4cd97e86f SIMachineFunctionInfo.cpp: Appease msc18 to use std::array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273860 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 10:26:43 +00:00
NAKAMURA Takumi
9a3b139888 Reformat.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273859 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 10:26:36 +00:00
NAKAMURA Takumi
58ebb2d4e5 Reformat blank lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273858 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 10:26:25 +00:00
Benjamin Kramer
886cd3a38a [sparc] Simplify slow and verbose string matching code to startswith_lower.
No functionality change intended, found by cppcheck. PR28274.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273857 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 09:38:56 +00:00
Arnaud A. de Grandmaison
7ca89ec4a8 [gold] Fix test to not assume it runs on x86 hardware.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273854 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 09:13:03 +00:00
Diana Picus
92eaa569c3 [ARM] Do not test for CPUs, use SubtargetFeatures (Part 2). NFCI
This is a follow-up for r273544.

The end goal is to get rid of the isSwift / isCortexXY / isWhatever methods.

Since the ARM backend seems to have quite a lot of calls to these methods, I
intend to submit 5-6 subtarget features at a time, instead of one big lump.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273853 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 09:08:23 +00:00
Pawel Bylica
01b8445ea6 CachePruning: correct comment about file order. NFC
Summary: Actually the list of cached files is sorted by file size, not by last accessed time. Also remove unused file access time param for a helper function.

Reviewers: joker-eph, chandlerc, davide

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273852 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 08:46:23 +00:00
Pawel Bylica
7fe7e468cf APInt: remove unsued param in private method. NFC
Reviewers: davide

Subscribers: davide, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273851 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 08:31:48 +00:00
Hrvoje Varga
b256e8a5b2 [mips][micromips] Implement LD, LLD, LWU, SD, DSRL, DSRL32 and DSRLV instructions
Differential Revision: http://reviews.llvm.org/D16625


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273850 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 08:23:28 +00:00
Simon Pilgrim
7c1d489b88 [X86][AVX] Peek through bitcasts to find the source of broadcasts
AVX1 can only broadcast vectors as floats/doubles, so for 256-bit vectors we insert bitcasts if we are shuffling v8i32/v4i64 types. Unfortunately the presence of these bitcasts prevents the current broadcast lowering code from peeking through cases where we have concatenated / extracted vectors to create the 256-bit vectors.

This patch allows us to peek through bitcasts as long as the number of elements doesn't change (i.e. element bitwidth is the same) so the broadcast index is not affected.

Note this bitcast peek is different from the stage later on which doesn't care about the type and is just trying to find a load node.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273848 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 07:44:32 +00:00
Igor Breger
baa0bfe5d8 [ConstantFolding] Fix bitcast vector of i1.
Differential Revision: http://reviews.llvm.org/D21735

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273845 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 06:42:54 +00:00
Rafael Espindola
00fd9cb07c Mips: Fix access to private functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273843 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 03:19:40 +00:00
Sanjay Patel
5a5bead6c7 add tests for potential select transforms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273833 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 23:44:21 +00:00
Rafael Espindola
a0e42848da Use isPositionIndependent predicate. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273830 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 22:38:44 +00:00