OSDN Git Service

android-x86/external-llvm.git
8 years agoX86FrameLowering: Check subregs when deciding prolog kill flags
Matthias Braun [Tue, 28 Jun 2016 20:31:56 +0000 (20:31 +0000)]
X86FrameLowering: Check subregs when deciding prolog kill flags

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

8 years agoUse isPositionIndependent in a few more places.
Rafael Espindola [Tue, 28 Jun 2016 20:13:36 +0000 (20:13 +0000)]
Use isPositionIndependent in a few more places.

I think this converts all the simple cases that really just care about
the generated code being position independent or not. The remaining
uses are a bit more complicated and are checking things like "is this
a library or executable" or "can this symbol be preempted".

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

8 years agoUpdate llvm command line parser to support subcommands.
Zachary Turner [Tue, 28 Jun 2016 20:09:47 +0000 (20:09 +0000)]
Update llvm command line parser to support subcommands.

This allows command line tools to use syntaxes like the following:

  llvm-foo.exe command1 -o1 -o2
  llvm-foo.exe command2 -p1 -p2

Where command1 and command2 contain completely different sets of
valid options.  This is backwards compatible with previous uses
of llvm cl which did not support subcommands, as any option
which specifies no optional subcommand (e.g. all existing
code) goes into a special "top level" subcommand that expects
dashed options to appear immediately after the program name.
For example, code which is subcommand unaware would generate
a command line such as the following, where no subcommand
is specified:

  llvm-foo.exe -q1 -q2

The top level subcommand can co-exist with actual subcommands,
as it is implemented as an actual subcommand which is searched
if no explicit subcommand is specified.  So llvm-foo.exe as
specified above could be written so as to support all three
aforementioned command lines simultaneously.

There is one additional "special" subcommand called AllSubCommands,
which can be used to inject an option into every subcommand.
This is useful to support things like help, so that commands
such as:

  llvm-foo.exe --help
  llvm-foo.exe command1 --help
  llvm-foo.exe command2 --help

All work and display the help for the selected subcommand
without having to explicitly go and write code to handle each
one separately.

This patch is submitted without an example of anything actually
using subcommands, but a followup patch will convert the
llvm-pdbdump tool to use subcommands.

Reviewed By: beanz
Differential Revision: http://reviews.llvm.org/D21485

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

8 years agoFix typo
Krzysztof Parzyszek [Tue, 28 Jun 2016 19:12:28 +0000 (19:12 +0000)]
Fix typo

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

8 years agominimize regression tests and update checks
Sanjay Patel [Tue, 28 Jun 2016 18:40:08 +0000 (18:40 +0000)]
minimize regression tests and update checks

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

8 years agominimize regression tests and update checks
Sanjay Patel [Tue, 28 Jun 2016 18:33:10 +0000 (18:33 +0000)]
minimize regression tests and update checks

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

8 years agoSupport arbitrary addrspace pointers in masked load/store intrinsics
Artur Pilipenko [Tue, 28 Jun 2016 18:27:25 +0000 (18:27 +0000)]
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@274043 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[lanai] Update ELF number to correspond to the assigned number.
Jacques Pienaar [Tue, 28 Jun 2016 18:22:22 +0000 (18:22 +0000)]
[lanai] Update ELF number to correspond to the assigned number.

Change EM_LANAI to correspond to machine number assigned by Xinuos.

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

8 years ago[X86] Update a test with more explicit checks. NFC.
Michael Kuperstein [Tue, 28 Jun 2016 17:42:13 +0000 (17:42 +0000)]
[X86] Update a test with more explicit checks. NFC.

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

8 years agoAMDGPU: Fix global isel crashes
Matt Arsenault [Tue, 28 Jun 2016 17:42:09 +0000 (17:42 +0000)]
AMDGPU: Fix global isel crashes

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

8 years agoTypos. NFC.
Chad Rosier [Tue, 28 Jun 2016 17:19:10 +0000 (17:19 +0000)]
Typos. NFC.

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

8 years ago[X86] Reorder source list alphabetically. NFC.
Michael Kuperstein [Tue, 28 Jun 2016 17:11:15 +0000 (17:11 +0000)]
[X86] Reorder source list alphabetically. NFC.

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

8 years agoAMDGPU: Fix typo
Matt Arsenault [Tue, 28 Jun 2016 16:59:53 +0000 (16:59 +0000)]
AMDGPU: Fix typo

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

8 years agoAMDGPU: Remove unused function
Matt Arsenault [Tue, 28 Jun 2016 16:59:49 +0000 (16:59 +0000)]
AMDGPU: Remove unused function

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

8 years ago[llvm-cov] Create an index of reports in -output-dir mode
Vedant Kumar [Tue, 28 Jun 2016 16:12:24 +0000 (16:12 +0000)]
[llvm-cov] Create an index of reports in -output-dir mode

This index lists the reports available in the 'coverage' sub-directory.
This will help navigate coverage output from large projects.

This commit factors the file creation code out of SourceCoverageView and
into CoveragePrinter.

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

8 years ago[llvm-cov] Minor cleanups (NFC)
Vedant Kumar [Tue, 28 Jun 2016 16:12:20 +0000 (16:12 +0000)]
[llvm-cov] Minor cleanups (NFC)

- Test the '-o' alias for -output-dir.
- Use a helper method in a conditional.
- Add a period.

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

8 years ago[llvm-cov] Avoid copying file paths multiple times (NFC)
Vedant Kumar [Tue, 28 Jun 2016 16:12:18 +0000 (16:12 +0000)]
[llvm-cov] Avoid copying file paths multiple times (NFC)

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

8 years ago[llvm-cov] Rename ShowFormat to Format (NFC)
Vedant Kumar [Tue, 28 Jun 2016 16:12:15 +0000 (16:12 +0000)]
[llvm-cov] Rename ShowFormat to Format (NFC)

This makes it a bit more generic, in case we want to emit summary
reports in different formats in the future.

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

8 years ago[llvm-cov] Move a check into a helper method (NFC)
Vedant Kumar [Tue, 28 Jun 2016 16:12:12 +0000 (16:12 +0000)]
[llvm-cov] Move a check into a helper method (NFC)

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

8 years ago[X86] Make WRPKRU/RDPKRU pass -verify-machineinstrs
David Majnemer [Tue, 28 Jun 2016 16:04:46 +0000 (16:04 +0000)]
[X86] Make WRPKRU/RDPKRU pass -verify-machineinstrs

The original implementation attempted to zero registers using
XOR %foo, %foo.  This is problematic because it constitutes a
read-modify-write of a register which might not be defined.

Instead, use MOV32r0 to avoid these problems; expandPostRAPseudo does
the right thing here.

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

8 years agoDon't pass a Reloc::Model to GVIsIndirectSymbol.
Rafael Espindola [Tue, 28 Jun 2016 15:38:13 +0000 (15:38 +0000)]
Don't pass a Reloc::Model to GVIsIndirectSymbol.

It already has access to it.

While at it, rename it to isGVIndirectSymbol.

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

8 years agoDon't pass Reloc::Model to places that already have it. NFC.
Rafael Espindola [Tue, 28 Jun 2016 15:18:26 +0000 (15:18 +0000)]
Don't pass Reloc::Model to places that already have it. NFC.

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

8 years agoConvert more cases to isPositionIndependent(). NFC.
Rafael Espindola [Tue, 28 Jun 2016 14:33:28 +0000 (14:33 +0000)]
Convert more cases to isPositionIndependent(). NFC.

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

8 years agoDelete dead code. NFC.
Rafael Espindola [Tue, 28 Jun 2016 14:26:39 +0000 (14:26 +0000)]
Delete dead code. NFC.

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

8 years ago[SystemZ] Save/restore r6 and r7 if function contains landing pad.
Marcin Koscielnicki [Tue, 28 Jun 2016 14:13:11 +0000 (14:13 +0000)]
[SystemZ] Save/restore r6 and r7 if function contains landing pad.

This fixes PR27102.

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

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

8 years ago[X86][AVX] Peek through bitcasts to find the source of broadcasts (reapplied)
Simon Pilgrim [Tue, 28 Jun 2016 13:24:05 +0000 (13:24 +0000)]
[X86][AVX] Peek through bitcasts to find the source of broadcasts (reapplied)

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.

As we're being more aggressive with bitcasts, we also need to ensure that the broadcast type is correctly bitcasted

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

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

8 years agoFix "not all control paths return a value" warning on MSVC
Simon Pilgrim [Tue, 28 Jun 2016 12:55:35 +0000 (12:55 +0000)]
Fix "not all control paths return a value" warning on MSVC

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

8 years agoConvert 2 more uses to shouldAssumeDSOLocal(). NFC.
Rafael Espindola [Tue, 28 Jun 2016 12:49:12 +0000 (12:49 +0000)]
Convert 2 more uses to shouldAssumeDSOLocal(). NFC.

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

8 years agoFixed MSVC unresolved symbol error due to an incorrectly declared extern
Simon Pilgrim [Tue, 28 Jun 2016 12:34:44 +0000 (12:34 +0000)]
Fixed MSVC unresolved symbol error due to an incorrectly declared extern

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

8 years ago[modules] Separate intrinsic_gen dependent headers from module LLVM_IR.
Vassil Vassilev [Tue, 28 Jun 2016 12:27:09 +0000 (12:27 +0000)]
[modules] Separate intrinsic_gen dependent headers from module LLVM_IR.

Some headers in IR depend on tablegen generated code. Modules builds triggered
generation of the LLVM_IR module (including headers dependant on intrinsic_gen),
imposing a unnecessary build dependency.

Reviewed by Richard Smith.

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

8 years agoUse isPositionIndependent(). NFC.
Rafael Espindola [Tue, 28 Jun 2016 12:25:00 +0000 (12:25 +0000)]
Use isPositionIndependent(). NFC.

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

8 years agoAdd missing includes.
Vassil Vassilev [Tue, 28 Jun 2016 12:17:05 +0000 (12:17 +0000)]
Add missing includes.

Patch by Cristina Cristescu.

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

8 years ago[gold] Really fix test to run on non x86 platforms.
Arnaud A. de Grandmaison [Tue, 28 Jun 2016 08:12:09 +0000 (08:12 +0000)]
[gold] Really fix test to run on non x86 platforms.

Address post-commit comment from H.J. Lu.

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

8 years ago[X86][SSE] Added support for combining target shuffles to (V)PSHUFD/VPERMILPD/VPERMIL...
Simon Pilgrim [Tue, 28 Jun 2016 08:08:15 +0000 (08:08 +0000)]
[X86][SSE] Added support for combining target shuffles to (V)PSHUFD/VPERMILPD/VPERMILPS immediate permutes

This patch allows target shuffles to be combined to single input immediate permute instructions - (V)PSHUFD/VPERMILPD/VPERMILPS - allowing more general pattern matching than what we current do and improves the likelihood of memory folding compared to existing patterns which tend to reuse the input in multiple arguments.

Further permute instructions (V)PSHUFLW/(V)PSHUFHW/(V)PERMQ/(V)PERMPD may be added in the future but its proven tricky to create tests cases for them so far. (V)PSHUFLW/(V)PSHUFHW is already handled quite well in combineTargetShuffle so it may be that removing some of that code may allow us to perform more of the combining in one place without duplication.

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

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

8 years ago[BFI/MBFI]: cfg graph view with color scheme
Xinliang David Li [Tue, 28 Jun 2016 06:58:21 +0000 (06:58 +0000)]
[BFI/MBFI]: cfg graph view with color scheme

This patch enhances dot graph viewer to show hot regions
with hot bbs/edges displayed in red. The ratio of the bb
freq to the max freq of the function needs to be no less
than the value specified by view-hot-freq-percent option.
The default value is 10 (i.e. 10%).

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

8 years ago[X86 Target Lowering] Merged ICMP test.
Elena Demikhovsky [Tue, 28 Jun 2016 06:25:38 +0000 (06:25 +0000)]
[X86 Target Lowering] Merged ICMP test.

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

8 years ago[BFI]: enhance BFI graph dump
Xinliang David Li [Tue, 28 Jun 2016 04:07:03 +0000 (04:07 +0000)]
[BFI]: enhance BFI graph dump

MBFI supports profile count dumping and function
name based filtering. Add these two feature to
BFI as well. The filtering option is shared between
BFI and MBFI: -view-bfi-func-name=..

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

8 years ago[LLE] Don't hoist conditionally executed loads
Adam Nemet [Tue, 28 Jun 2016 04:02:47 +0000 (04:02 +0000)]
[LLE] Don't hoist conditionally executed loads

If the load is conditional we can't hoist its 0-iteration instance to
the preheader because that would make it unconditional.  Thus we would
access a memory location that the original loop did not access.

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

8 years ago[BFI]: graph viewer code refactoring
Xinliang David Li [Tue, 28 Jun 2016 03:41:29 +0000 (03:41 +0000)]
[BFI]: graph viewer code refactoring

BFI and MBFI's dot traits class share most of the
code and all future enhancement. This patch extracts
common implementation into base class BFIDOTGraphTraitsBase.

This patch also enables BFI graph to show branch probability
on edges as MBFI does before.

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

8 years ago[llvm-cov] Simplify; NFC
Vedant Kumar [Tue, 28 Jun 2016 03:37:56 +0000 (03:37 +0000)]
[llvm-cov] Simplify; NFC

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

8 years agoReapply "[llvm-cov] Add an -output-dir option for the show sub-command""
Vedant Kumar [Tue, 28 Jun 2016 02:09:39 +0000 (02:09 +0000)]
Reapply "[llvm-cov] Add an -output-dir option for the show sub-command""

Passing -output-dir path/to/dir to llvm-cov show creates path/to/dir if
it doesn't already exist, and prints reports into that directory.

In function view mode, all views are written into
path/to/dir/functions.$EXTENSION. In file view mode, all views are
written into path/to/dir/coverage/$PATH.$EXTENSION.

Changes since the initial commit:

- Avoid accidentally closing stdout twice.

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

8 years agoNFC. Fix popular typo in comment 'deferencing' --> 'dereferencing'.
Nick Lewycky [Tue, 28 Jun 2016 01:45:05 +0000 (01:45 +0000)]
NFC. Fix popular typo in comment 'deferencing' --> 'dereferencing'.
Bonus changes, * placement in X86ISelLowering and 'exerce' -> 'exercise' in test.

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

8 years agoRevert "[llvm-cov] Add an -output-dir option for the show sub-command"
Vedant Kumar [Tue, 28 Jun 2016 01:14:04 +0000 (01:14 +0000)]
Revert "[llvm-cov] Add an -output-dir option for the show sub-command"

This reverts commit r273971. test/profile/instrprof-visibility.cpp is
failing because of an uncaught error in SafelyCloseFileDescriptor.

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

8 years agoAMDGPU: Fix out of bounds indirect indexing errors
Matt Arsenault [Tue, 28 Jun 2016 01:09:00 +0000 (01:09 +0000)]
AMDGPU: Fix out of bounds indirect indexing errors

This was producing acceses to registers beyond the super
register's limits, resulting in verifier failures.

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

8 years agoAArch64: Remove unnecessary namespace llvm; NFC
Matthias Braun [Tue, 28 Jun 2016 00:54:33 +0000 (00:54 +0000)]
AArch64: Remove unnecessary namespace llvm; NFC

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

8 years ago[PM] Normalize FIXMEs for missing PreserveCFG to have the same wording.
Michael Kuperstein [Tue, 28 Jun 2016 00:54:12 +0000 (00:54 +0000)]
[PM] Normalize FIXMEs for missing PreserveCFG to have the same wording.

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

8 years ago[PM] Sink the module parsing from the fixture to the test as subsequent
Chandler Carruth [Tue, 28 Jun 2016 00:38:42 +0000 (00:38 +0000)]
[PM] Sink the module parsing from the fixture to the test as subsequent
tests will want different IR.

Wanted this when writing tests for the proposed CG update stuff, and
this is an easily separable piece.

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

8 years ago[llvm-cov] Add an -output-dir option for the show sub-command
Vedant Kumar [Tue, 28 Jun 2016 00:18:57 +0000 (00:18 +0000)]
[llvm-cov] Add an -output-dir option for the show sub-command

Passing -output-dir path/to/dir to llvm-cov show creates path/to/dir if
it doesn't already exist, and prints reports into that directory.

In function view mode, all views are written into
path/to/dir/functions.$EXTENSION. In file view mode, all views are
written into path/to/dir/coverage/$PATH.$EXTENSION.

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

8 years ago[llvm-cov] Use -check-prefixes in a test (NFC)
Vedant Kumar [Tue, 28 Jun 2016 00:18:53 +0000 (00:18 +0000)]
[llvm-cov] Use -check-prefixes in a test (NFC)

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

8 years ago[llvm-cov] clang-format a line, NFC
Vedant Kumar [Tue, 28 Jun 2016 00:18:51 +0000 (00:18 +0000)]
[llvm-cov] clang-format a line, NFC

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

8 years ago[llvm-cov] Add a format option for the 'show' sub-command (mostly NFC)
Vedant Kumar [Tue, 28 Jun 2016 00:15:54 +0000 (00:15 +0000)]
[llvm-cov] Add a format option for the 'show' sub-command (mostly NFC)

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

8 years ago[BFI]: code cleanup
Xinliang David Li [Tue, 28 Jun 2016 00:15:45 +0000 (00:15 +0000)]
[BFI]: code cleanup

Expose getBPI interface from BFI impl and use
it in graph viewer. This eliminates the dependency
on old PM interface.

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

8 years agoRemove stray comment. NFC.
Michael Kuperstein [Tue, 28 Jun 2016 00:14:09 +0000 (00:14 +0000)]
Remove stray comment. NFC.

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

8 years agoAMDGPU: Fix global isel build
Matt Arsenault [Tue, 28 Jun 2016 00:11:26 +0000 (00:11 +0000)]
AMDGPU: Fix global isel build

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

8 years agoDocument the ability to perform multi-line pattern matching in FileCheck.
Wolfgang Pieb [Mon, 27 Jun 2016 23:59:00 +0000 (23:59 +0000)]
Document the ability to perform multi-line pattern matching in FileCheck.

Differential review: http://reviews.llvm.org/D21522

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

8 years ago[PM] Improve the debugging and logging facilities of the CGSCC bits of
Chandler Carruth [Mon, 27 Jun 2016 23:26:08 +0000 (23:26 +0000)]
[PM] Improve the debugging and logging facilities of the CGSCC bits of
the new pass manager.

This adds operator<< overloads for the various bits of the
LazyCallGraph, dump methods for use from the debugger, and debug logging
using them to the CGSCC pass manager.

Having this was essential for debugging the call graph update patch, and
I've extracted what I could from that patch here to minimize the delta.

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

8 years agoFix typo.
Rafael Espindola [Mon, 27 Jun 2016 23:21:07 +0000 (23:21 +0000)]
Fix typo.

Thanks to Benjamin Kramer for noticing.

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

8 years agoMove shouldAssumeDSOLocal to Target.
Rafael Espindola [Mon, 27 Jun 2016 23:15:57 +0000 (23:15 +0000)]
Move shouldAssumeDSOLocal to Target.

Should fix the shared library build.

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

8 years ago[CFLAA] Make MSVC happy. NFC.
George Burgess IV [Mon, 27 Jun 2016 22:50:01 +0000 (22:50 +0000)]
[CFLAA] Make MSVC happy. NFC.

Apparently, MSVC complains if there's an implicit conversion from
`unsigned` to `unsigned long long`, if the `unsigned` is the result of
a bit shift.

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

8 years ago[MC] Garbage collect dead API: createELFObjectTargetWriter().
Davide Italiano [Mon, 27 Jun 2016 22:41:52 +0000 (22:41 +0000)]
[MC] Garbage collect dead API: createELFObjectTargetWriter().

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

8 years agoFix size computation of array allocation in inline cost analysis
Easwaran Raman [Mon, 27 Jun 2016 22:31:53 +0000 (22:31 +0000)]
Fix size computation of array allocation in inline cost analysis

Differential revision: http://reviews.llvm.org/D21690

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

8 years ago[InstCombine] shrink type of sdiv if dividend is sexted and constant divisor is small...
Sanjay Patel [Mon, 27 Jun 2016 22:27:11 +0000 (22:27 +0000)]
[InstCombine] shrink type of sdiv if dividend is sexted and constant divisor is small enough (PR28153)

This should fix PR28153:
https://llvm.org/bugs/show_bug.cgi?id=28153

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

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

8 years ago[Sparc] Atomics pass changes to make work with SparcV8 back-ends.
Chris Dewhurst [Mon, 27 Jun 2016 22:11:09 +0000 (22:11 +0000)]
[Sparc] Atomics pass changes to make work with SparcV8 back-ends.

This change reverts a "false" test that was placed to avoid regressions while the atomics pass was completed for the Sparc back-ends.

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

8 years agoAMDGPU: Set MinInstAlignment
Matt Arsenault [Mon, 27 Jun 2016 21:42:49 +0000 (21:42 +0000)]
AMDGPU: Set MinInstAlignment

Not sure this actually changes anything

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

8 years agoChange all but the last ErrorOr<...> use for MachOUniversalBinary to Expected<.....
Kevin Enderby [Mon, 27 Jun 2016 21:39:39 +0000 (21:39 +0000)]
Change all but the last ErrorOr<...> use for MachOUniversalBinary to Expected<...> to
allow a good error message to be produced.

I added the one test case that the object file tools could produce an error
message.  The other two errors can’t be triggered if the input file is passed
through sys::fs::identify_magic().  But the malformedError("bad magic number")
does get triggered by the logic in llvm-dsymutil when dealing with a normal
Mach-O file.  The other "File too small ..." error would take a logic error
currently to produce and is not tested for.

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

8 years agoConvert a few more comparisons to isPositionIndependent(). NFC.
Rafael Espindola [Mon, 27 Jun 2016 21:33:08 +0000 (21:33 +0000)]
Convert a few more comparisons to isPositionIndependent(). NFC.

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

8 years agoDelete the IsStatic predicate.
Rafael Espindola [Mon, 27 Jun 2016 21:09:14 +0000 (21:09 +0000)]
Delete the IsStatic predicate.

In all its uses it was equivalent to IsNotPIC.

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

8 years agoAMDGPU: Implement per-function subtargets
Matt Arsenault [Mon, 27 Jun 2016 20:48:03 +0000 (20:48 +0000)]
AMDGPU: Implement per-function subtargets

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

8 years ago[llvm-ar] Ignore -plugin option.
Davide Italiano [Mon, 27 Jun 2016 20:38:39 +0000 (20:38 +0000)]
[llvm-ar] Ignore -plugin option.

binutils ar uses -plugin to specify the LTO plugin, but LLVM doesn't
need this as it doesn't use a plugin for LTO. Accepting (and ignoring)
the option allows interoperability with existing build systems and
make downstream consumers life much easier.

No objections from Rafael on this change.

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

8 years agoAMDGPU: Move subtarget feature checks into passes
Matt Arsenault [Mon, 27 Jun 2016 20:32:13 +0000 (20:32 +0000)]
AMDGPU: Move subtarget feature checks into passes

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

8 years agoadd tests for PR28153
Sanjay Patel [Mon, 27 Jun 2016 20:28:59 +0000 (20:28 +0000)]
add tests for PR28153

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

8 years agoOnly emit extension for zeroext/signext arguments if type is < 32 bits
Justin Holewinski [Mon, 27 Jun 2016 20:22:22 +0000 (20:22 +0000)]
Only emit extension for zeroext/signext arguments if type is < 32 bits

Reviewers: jingyue, jlebar

Subscribers: jholewinski

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

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

8 years agoTeach shouldAssumeDSOLocal about tls.
Rafael Espindola [Mon, 27 Jun 2016 20:19:14 +0000 (20:19 +0000)]
Teach shouldAssumeDSOLocal about tls.

Fixes a fixme about handling other visibilities.

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

8 years agoFixed crash of SLP Vectorizer on KNL
Elena Demikhovsky [Mon, 27 Jun 2016 20:07:00 +0000 (20:07 +0000)]
Fixed crash of SLP Vectorizer on KNL

The bug is connected to vector GEPs.
https://llvm.org/bugs/show_bug.cgi?id=28313

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

8 years ago[yaml2obj] Missed updating a few test cases in r273915
Chris Bieneman [Mon, 27 Jun 2016 20:02:49 +0000 (20:02 +0000)]
[yaml2obj] Missed updating a few test cases in r273915

This should fix the broken bots.

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

8 years agoAMDGPU: Fix verifier errors with undef vector indices
Matt Arsenault [Mon, 27 Jun 2016 19:57:44 +0000 (19:57 +0000)]
AMDGPU: Fix verifier errors with undef vector indices

Also fix pointlessly adding exec to liveins.

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

8 years ago[yaml2obj] Remove --format option in favor of YAML tags
Chris Bieneman [Mon, 27 Jun 2016 19:53:53 +0000 (19:53 +0000)]
[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

8 years agoVerifier: Reject non-float !fpmath
Matt Arsenault [Mon, 27 Jun 2016 19:43:15 +0000 (19:43 +0000)]
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

8 years agoDAGCombiner: Don't narrow volatile vector loads + extract
Matt Arsenault [Mon, 27 Jun 2016 19:31:04 +0000 (19:31 +0000)]
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

8 years agoUse isPositionIndependent(). NFC.
Rafael Espindola [Mon, 27 Jun 2016 19:15:08 +0000 (19:15 +0000)]
Use isPositionIndependent(). NFC.

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

8 years ago[InstCombine] refactor sdiv by APInt transforms (NFC)
Sanjay Patel [Mon, 27 Jun 2016 18:38:40 +0000 (18:38 +0000)]
[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

8 years agoUse isPositionIndependent(). NFC.
Rafael Espindola [Mon, 27 Jun 2016 18:37:44 +0000 (18:37 +0000)]
Use isPositionIndependent(). NFC.

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

8 years ago[CFLAA] Use unsigned numbers for bit-shifts.
George Burgess IV [Mon, 27 Jun 2016 18:35:00 +0000 (18:35 +0000)]
[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

8 years agoFactor out buildMemorySSA from getWalker.
Daniel Berlin [Mon, 27 Jun 2016 18:22:27 +0000 (18:22 +0000)]
Factor out buildMemorySSA from getWalker.
NFC.

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

8 years agoRefactor duplicated condition.
Rafael Espindola [Mon, 27 Jun 2016 18:09:22 +0000 (18:09 +0000)]
Refactor duplicated condition.

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

8 years agoX86 Lowering - Fixed a crash in ICMP scalar instruction
Elena Demikhovsky [Mon, 27 Jun 2016 18:07:16 +0000 (18:07 +0000)]
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

8 years ago[InstCombine] use m_APInt for div --> ashr fold
Sanjay Patel [Mon, 27 Jun 2016 17:25:57 +0000 (17:25 +0000)]
[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

8 years agoUse isPositionIndependent(). NFC.
Rafael Espindola [Mon, 27 Jun 2016 17:21:46 +0000 (17:21 +0000)]
Use isPositionIndependent(). NFC.

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

8 years agoRevert -r273892 "Support arbitrary addrspace pointers in masked load/store intrinsics...
Artur Pilipenko [Mon, 27 Jun 2016 16:54:33 +0000 (16:54 +0000)]
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

8 years ago[PM] Port PartialInlining to the new PM
Easwaran Raman [Mon, 27 Jun 2016 16:50:18 +0000 (16:50 +0000)]
[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

8 years agoSupport arbitrary addrspace pointers in masked load/store intrinsics
Artur Pilipenko [Mon, 27 Jun 2016 16:29:26 +0000 (16:29 +0000)]
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

8 years ago[X86][SSE] Added extra broadcast tests to cover PR28327
Simon Pilgrim [Mon, 27 Jun 2016 16:15:37 +0000 (16:15 +0000)]
[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

8 years ago[asan] fix false dynamic-stack-buffer-overflow report with constantly-sized dynamic...
Kuba Brecka [Mon, 27 Jun 2016 15:57:08 +0000 (15:57 +0000)]
[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

8 years ago[SystemZ] Avoid generating 2 XOR instructions for (and (xor x, -1), y)
Zhan Jun Liau [Mon, 27 Jun 2016 15:55:30 +0000 (15:55 +0000)]
[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

8 years ago[Hexagon] Equally-sized vectors are equivalent in ISel (except vNi1)
Krzysztof Parzyszek [Mon, 27 Jun 2016 15:08:22 +0000 (15:08 +0000)]
[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

8 years ago[mips] Add instruction itineraries for LSA, DLSA
Simon Dardis [Mon, 27 Jun 2016 14:55:07 +0000 (14:55 +0000)]
[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

8 years ago[ARM] Fix Thumb text sections' flags under COFF/Windows
Renato Golin [Mon, 27 Jun 2016 14:42:20 +0000 (14:42 +0000)]
[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

8 years agoRevert 273848, it caused PR28329
Nico Weber [Mon, 27 Jun 2016 14:36:46 +0000 (14:36 +0000)]
Revert 273848, it caused PR28329

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

8 years agoLast line of file missing on previous check-in.
Chris Dewhurst [Mon, 27 Jun 2016 14:35:07 +0000 (14:35 +0000)]
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

8 years agoMove isPositionIndependent up to AsmPrinter.
Rafael Espindola [Mon, 27 Jun 2016 14:19:45 +0000 (14:19 +0000)]
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