platform/upstream/llvm.git
7 years agoUpdate tools to use new getStyle API
Antonio Maiorano [Tue, 17 Jan 2017 00:13:32 +0000 (00:13 +0000)]
Update tools to use new getStyle API

Depends on https://reviews.llvm.org/D28081

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

llvm-svn: 292175

7 years agoclang-format: Make GetStyle return Expected<FormatStyle> instead of FormatStyle
Antonio Maiorano [Tue, 17 Jan 2017 00:12:27 +0000 (00:12 +0000)]
clang-format: Make GetStyle return Expected<FormatStyle> instead of FormatStyle

Change the contract of GetStyle so that it returns an error when an error occurs
(i.e. when it writes to stderr), and only returns the fallback style when it
can't find a configuration file.

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

llvm-svn: 292174

7 years agoAMDGPU: Remove dead pattern
Matt Arsenault [Tue, 17 Jan 2017 00:10:43 +0000 (00:10 +0000)]
AMDGPU: Remove dead pattern

This is the unsafe conversion pattern, but not guarded by
an unsafe math check. It is also already done in LegalizeDAG.

llvm-svn: 292173

7 years agoSimplifyLibCalls: Replace fabs libcalls with intrinsics
Matt Arsenault [Tue, 17 Jan 2017 00:10:40 +0000 (00:10 +0000)]
SimplifyLibCalls: Replace fabs libcalls with intrinsics

Add missing fabs(fpext) optimzation that worked with the call,
and also fixes it creating a second fpext when there were multiple
uses.

llvm-svn: 292172

7 years ago[Object] Fixup permissions of input files.
Davide Italiano [Mon, 16 Jan 2017 23:28:58 +0000 (23:28 +0000)]
[Object] Fixup permissions of input files.

They just need to be read/dumped, so no need to set the exec
bit on any of them. NFCI, I guess.

llvm-svn: 292171

7 years ago[llvm-objdump] Dump PT_NOTE as part of -p.
Davide Italiano [Mon, 16 Jan 2017 23:13:46 +0000 (23:13 +0000)]
[llvm-objdump] Dump PT_NOTE as part of -p.

PR: 31641
llvm-svn: 292170

7 years ago[llvm-objdump] Dump PT_GNU_RELRO as part of -p.
Davide Italiano [Mon, 16 Jan 2017 22:58:26 +0000 (22:58 +0000)]
[llvm-objdump] Dump PT_GNU_RELRO as part of -p.

PR: 31641
llvm-svn: 292169

7 years agoTidy up getFirstNonBoxedLoopFor [NFC]
Eli Friedman [Mon, 16 Jan 2017 22:54:29 +0000 (22:54 +0000)]
Tidy up getFirstNonBoxedLoopFor [NFC]

Move the function getFirstNonBoxedLoopFor which is used in ScopBuilder
and in ScopInfo to Support/ScopHelpers to make it reusable in other
locations. No functionality change.

Patch by Sameer Abu Asal.

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

llvm-svn: 292168

7 years ago[llvm-objdump] Dump PT_OPENBSD_{BOOTDATA,RANDOMIZE,WXNEEDED}.
Davide Italiano [Mon, 16 Jan 2017 22:01:41 +0000 (22:01 +0000)]
[llvm-objdump] Dump PT_OPENBSD_{BOOTDATA,RANDOMIZE,WXNEEDED}.

PR: 31641
llvm-svn: 292167

7 years agoAdd missing header to see if that clears up the build
David Blaikie [Mon, 16 Jan 2017 21:40:08 +0000 (21:40 +0000)]
Add missing header to see if that clears up the build

llvm-svn: 292166

7 years ago[InstCombine][AVX] Tests showing missed opportunities to pass demanded elts through...
Simon Pilgrim [Mon, 16 Jan 2017 21:34:22 +0000 (21:34 +0000)]
[InstCombine][AVX] Tests showing missed opportunities to pass demanded elts through a permilpd/permilps shuffle mask

llvm-svn: 292165

7 years ago[InstCombine] use m_APInt instead of faking it
Sanjay Patel [Mon, 16 Jan 2017 21:24:41 +0000 (21:24 +0000)]
[InstCombine] use m_APInt instead of faking it

llvm-svn: 292164

7 years agoAttempt to fix the MSVC build by using llvm::errc instead of std::errc
David Blaikie [Mon, 16 Jan 2017 21:20:51 +0000 (21:20 +0000)]
Attempt to fix the MSVC build by using llvm::errc instead of std::errc

llvm-svn: 292163

7 years agoADMGPU/EG,CM: Implement _noret global atomics
Jan Vesely [Mon, 16 Jan 2017 21:20:13 +0000 (21:20 +0000)]
ADMGPU/EG,CM: Implement _noret global atomics

_RTN versions will be a lot more complicated

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

llvm-svn: 292162

7 years ago[ELF][MIPS] Exclude mips .got from PT_GNU_RELRO segment
Simon Atanasyan [Mon, 16 Jan 2017 21:17:23 +0000 (21:17 +0000)]
[ELF][MIPS] Exclude mips .got from PT_GNU_RELRO segment

On MIPS .got section cannot be included into the PT_GNU_RELRO segment.
Sometimes it might work, but in general it is unsupported. One of the
problem is that all sections marked by SHF_MIPS_GPREL should be grouped
together because data in these sections is addressable with a gp
relative address, but such sections might be writable.

This patch exclude mips .got from PT_GNU_RELRO segment and group
SHF_MIPS_GPREL sections.

llvm-svn: 292161

7 years ago[ELF][MIPS] Remove redundant checkings from test cases. NFC
Simon Atanasyan [Mon, 16 Jan 2017 21:17:09 +0000 (21:17 +0000)]
[ELF][MIPS] Remove redundant checkings from test cases. NFC

llvm-svn: 292160

7 years agoFix std::tuples EBO when targeting the MSVC ABI.
Eric Fiselier [Mon, 16 Jan 2017 21:15:08 +0000 (21:15 +0000)]
Fix std::tuples EBO when targeting the MSVC ABI.

MSVC/clang-cl doesn't do a full EBO unless __declspec(empty_bases)
is applied to the derived type. This causes certain tuple tests
to fail.

This patch adds the empty_bases attribute to __tuple_impl in order
for tuple to fully provide the EBO.

llvm-svn: 292159

7 years ago[libc++] Introduce _LIBCPP_EXTERN_VIS to fix __libcpp_debug_function link errors
Eric Fiselier [Mon, 16 Jan 2017 21:01:00 +0000 (21:01 +0000)]
[libc++] Introduce _LIBCPP_EXTERN_VIS to fix __libcpp_debug_function link errors

Summary: On Windows tests that use `_LIBCPP_ASSERT` fail to link because the assertion handler function isn't correctly exported from the libc++ dylib. This patch fixes the dll import/export issues by introducing a new visibility macro `_LIBCPP_EXTERN_VIS` for use on external variables.

Reviewers: compnerd, smeenai, EricWF

Reviewed By: EricWF

Subscribers: cfe-commits

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

llvm-svn: 292158

7 years agoImprove CMake and LIT support for Windows
Eric Fiselier [Mon, 16 Jan 2017 20:47:35 +0000 (20:47 +0000)]
Improve CMake and LIT support for Windows

This patch contains multiple cleanups and fixes to better support building on
Windows.

* [Test] Fix handling of library runtime search paths by correctly adding them
  to the PATH variable when running the tests.

* [Test] Don't explicitly force "--target=i686-pc-windows" when running the
  test suite. Clang++ seems to deduce the correct target.

* [Test] Fix `.sh.cpp` tests on Windows by properly escaping flags used in
  shell commands. Specifically windows style paths which included spaces
  were causing these tests to fail.

* [CMake] Add "vcruntime" to the list of supported C++ ABI libraries in CMake, and
  teach the test suite how to handle it. For now libc++ defaults to using
  "vcruntime" on Windows except when libc++abi is in tree; That is probably
  a bug and should be changed to always use vcruntime, at least for now.

* [Misc] Move the "c++-build" include directory to the libc++ binary dir
  instead of the top level project dir and rename it "c++build". This is just
  misc cleanup. Libc++ shouldn't be creating internal build files and directories
  at the top-level projects root.

* [Misc] Build type_info's destructor when building for MSVC. This is a temporary
  work around to prevent link errors until we have a proper type_info
  implementation.

llvm-svn: 292157

7 years ago[XRay] Implement the `llvm-xray graph` subcommand
David Blaikie [Mon, 16 Jan 2017 20:36:26 +0000 (20:36 +0000)]
[XRay] Implement the `llvm-xray graph` subcommand

Here we define the `graph` subcommand which generates a graph from the function
call information and uses it to present the call information graphically with
additional annotations.

Reviewers: dblaikie, dberris

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

llvm-svn: 292156

7 years agoAttempt to workaround MSVC build issue where I suspect an enum class constant 0 is...
David Blaikie [Mon, 16 Jan 2017 20:28:59 +0000 (20:28 +0000)]
Attempt to workaround MSVC build issue where I suspect an enum class constant 0 is considered a possible null pointer

I can't reproduce this so far with web compilers, so throwing this at
the bots to see if it sticks.

llvm-svn: 292155

7 years ago[PowerPC] Expand ISEL instruction into if-then-else sequence.
Tony Jiang [Mon, 16 Jan 2017 20:12:26 +0000 (20:12 +0000)]
[PowerPC] Expand ISEL instruction into if-then-else sequence.

Generally, the ISEL is expanded into if-then-else sequence, in some
cases (like when the destination register is the same with the true
or false value register), it may just be expanded into just the if
or else sequence.

llvm-svn: 292154

7 years ago[InstCombine] fix names in canEvaluateShiftedShift(); NFC
Sanjay Patel [Mon, 16 Jan 2017 20:05:26 +0000 (20:05 +0000)]
[InstCombine] fix names in canEvaluateShiftedShift(); NFC

It's not clear what 'First' and 'Second' mean, so use 'Inner' and 'Outer'
to match foldShiftedShift() and add comments with formulas, so it's easier
to see what's going on.

llvm-svn: 292153

7 years agoMake sym_check python 3 compatible
Eric Fiselier [Mon, 16 Jan 2017 19:52:58 +0000 (19:52 +0000)]
Make sym_check python 3 compatible

llvm-svn: 292152

7 years ago[InstCombine] use m_APInt to allow shift-shift folds for vectors with splat constants
Sanjay Patel [Mon, 16 Jan 2017 19:35:45 +0000 (19:35 +0000)]
[InstCombine] use m_APInt to allow shift-shift folds for vectors with splat constants

Some existing 'FIXME' tests are still not folded because of splat holes in value tracking.

llvm-svn: 292151

7 years ago[InstCombine] add tests to show missed vector folds; NFC
Sanjay Patel [Mon, 16 Jan 2017 19:23:34 +0000 (19:23 +0000)]
[InstCombine] add tests to show missed vector folds; NFC

The shift-shift possibilities became easier to see after:
https://reviews.llvm.org/rL292145

llvm-svn: 292150

7 years agoPR31650: Refer to enum constant when initializing llvm::None constant
David Blaikie [Mon, 16 Jan 2017 18:48:52 +0000 (18:48 +0000)]
PR31650: Refer to enum constant when initializing llvm::None constant

llvm-svn: 292149

7 years ago[NVPTX] Add blank line to NVPTXUsage.rst to appease the Sphinx.
Justin Lebar [Mon, 16 Jan 2017 18:39:15 +0000 (18:39 +0000)]
[NVPTX] Add blank line to NVPTXUsage.rst to appease the Sphinx.

Fixes:

  Warning, treated as error:
  /home/buildbot/llvm-build-dir/llvm-sphinx-docs/llvm/src/docs/NVPTXUsage.rst:333:
  ERROR: Error in "code-block" directive:
  maximum 1 argument(s) allowed, 17 supplied.

llvm-svn: 292148

7 years agoAdd test showing the update of access functions with in-scop defined base ptrs
Tobias Grosser [Mon, 16 Jan 2017 17:51:28 +0000 (17:51 +0000)]
Add test showing the update of access functions with in-scop defined base ptrs

This feature is currently not supported and an explicit assert to prevent the
introduction of such accesses has been added in r282893. This test case allows
to reproduce the assert (and without the assert the miscompile) added in
r282893. It will help when adding such support at some point.

llvm-svn: 292147

7 years agoGive priority to linker scripts over preemption.
Rafael Espindola [Mon, 16 Jan 2017 17:35:23 +0000 (17:35 +0000)]
Give priority to linker scripts over preemption.

LLD exports symbols that are also present in used shared libraries to
make sure they are preempted at runtime. That is a reasonable default,
but we must allow for it to be overwritten with linker script. If we
don't, libraries that expect to be able to hide a c++ delete operator
will fail.

This should fix the firebird build.

llvm-svn: 292146

7 years ago[InstCombine] refactor shift-of-shift folds; NFCI
Sanjay Patel [Mon, 16 Jan 2017 17:27:50 +0000 (17:27 +0000)]
[InstCombine] refactor shift-of-shift folds; NFCI

Reduces code duplication and makes it easier to extend these folds for vectors.

llvm-svn: 292145

7 years ago[InstCombine][SSE] Tests showing missed opportunities to pass demanded elts through...
Simon Pilgrim [Mon, 16 Jan 2017 17:26:23 +0000 (17:26 +0000)]
[InstCombine][SSE] Tests showing missed opportunities to pass demanded elts through a packss/packus truncation

llvm-svn: 292144

7 years ago[llvm-xray] Fix android build
Pavel Labath [Mon, 16 Jan 2017 16:38:23 +0000 (16:38 +0000)]
[llvm-xray] Fix android build

std::to_string is not available in the android ndk. Using llvm::to_string
instead.

Committing as obvious.

llvm-svn: 292143

7 years ago[AArch64] Falkor supports Rounding Double Multiply Add/Subtract instructions.
Chad Rosier [Mon, 16 Jan 2017 16:28:43 +0000 (16:28 +0000)]
[AArch64] Falkor supports Rounding Double Multiply Add/Subtract instructions.

Falkor only partially implements the ARMv8.1a extensions, so this patch
refactors the support for the SQRDML[A|S]H instruction into a separate
feature.

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

llvm-svn: 292142

7 years ago[StaticAnalyzer] Fix android build
Pavel Labath [Mon, 16 Jan 2017 15:57:07 +0000 (15:57 +0000)]
[StaticAnalyzer] Fix android build

std::to_string is not available in the android NDK. Use llvm::to_string instead.

Committing as obvious.

llvm-svn: 292141

7 years agoScopInfo: document base pointers in alias-checks must be invariant [NFC]
Tobias Grosser [Mon, 16 Jan 2017 15:49:14 +0000 (15:49 +0000)]
ScopInfo: document base pointers in alias-checks must be invariant [NFC]

Before this change, this code has been mixed with a check for non-affine
loops (and when originally introduce was also duplicated). By creating
a separate loop and explicitly documenting this property, the current
behavior becomes a lot more clear.

llvm-svn: 292140

7 years agoScopInfo: Improve comments in buildAliasGroup [NFC]
Tobias Grosser [Mon, 16 Jan 2017 15:49:09 +0000 (15:49 +0000)]
ScopInfo: Improve comments in buildAliasGroup [NFC]

llvm-svn: 292139

7 years agoScopInfo: split out construction of a single alias group [NFC]
Tobias Grosser [Mon, 16 Jan 2017 15:49:07 +0000 (15:49 +0000)]
ScopInfo: split out construction of a single alias group [NFC]

The loop body in buildAliasGroups is still too large to easily scan it. Hence,
we split the loop body out into a separate function to improve readability.

llvm-svn: 292138

7 years agoScopInfo: Do not modify the original alias group [NFC]
Tobias Grosser [Mon, 16 Jan 2017 15:49:04 +0000 (15:49 +0000)]
ScopInfo: Do not modify the original alias group [NFC]

Instead of modifying the original alias group and repurposing it as read-write
access group when splitting accesses in read-only and read-write accesses, we
just keep all three groups: the original alias group, the set of read-only
accesses and the set of read-write accesses.  This allows us to remove some
complicated iterator handling and also allows for more code-reuse in
calculateMinMaxAccess.

llvm-svn: 292137

7 years agoRevert r292132: [globalisel] Tablegen-erate current Register Bank Information'...
Daniel Sanders [Mon, 16 Jan 2017 15:34:43 +0000 (15:34 +0000)]
Revert r292132: [globalisel] Tablegen-erate current Register Bank Information'...

Several buildbots encountered a crash in tablegen when building this commit.
Reverting while I investigate the cause.

llvm-svn: 292136

7 years agoMark the dynamic-exception tests as unsupported under C++17, since it has no dynamic...
Marshall Clow [Mon, 16 Jan 2017 15:28:03 +0000 (15:28 +0000)]
Mark the dynamic-exception tests as unsupported under C++17, since it has no dynamic-exception specs. Also, remove a FIXME workaround from the config that allowed these tests to work under C++17. This addresses PR#31621.

llvm-svn: 292135

7 years ago[OpenMP] Refactor code that calls codegen for target regions on the device.
Arpith Chacko Jacob [Mon, 16 Jan 2017 15:26:02 +0000 (15:26 +0000)]
[OpenMP] Refactor code that calls codegen for target regions on the device.

This patch refactors code that calls codegen for target regions.  Currently
the codebase only supports the 'target' directive.  The patch pulls out
common target processing code into a static function that can be called
by codegen for any target directive.

Reviewers: ABataev
Differential Revision: https://reviews.llvm.org/D28752

llvm-svn: 292134

7 years agoFix use-after-free bug in AffectedValueCallbackVH::allUsesReplacedWith
Hal Finkel [Mon, 16 Jan 2017 15:22:01 +0000 (15:22 +0000)]
Fix use-after-free bug in AffectedValueCallbackVH::allUsesReplacedWith

When transferring affected values in the cache from an old value, identified by
the value of the current callback, to the specified new value we might need to
insert a new entry into the DenseMap which constitutes the cache. Doing so
might delete the current callback object. Move the copying logic into a new
function, a member of the assumption cache itself, so that we don't run into UB
should the callback handle itself be removed mid-copy.

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

llvm-svn: 292133

7 years ago[globalisel] Tablegen-erate current Register Bank Information
Daniel Sanders [Mon, 16 Jan 2017 15:20:43 +0000 (15:20 +0000)]
[globalisel] Tablegen-erate current Register Bank Information

Summary:
Adds a RegisterBank tablegen class that can be used to declare the register
banks and an associated tablegen pass to generate the necessary code.

Reviewers: t.p.northover, ab, rovka, qcolombet

Subscribers: aditya_nandakumar, rengolin, kristof.beyls, vkalintiris, mgorny, dberris, llvm-commits, rovka

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

llvm-svn: 292132

7 years agoRevert "[PowerPC] Expand ISEL instruction into if-then-else sequence."
Tony Jiang [Mon, 16 Jan 2017 15:01:07 +0000 (15:01 +0000)]
Revert "[PowerPC] Expand ISEL instruction into if-then-else sequence."

This reverts commit 1d0e0374438ca6e153844c683826ba9b82486bb1.

llvm-svn: 292131

7 years ago[SelectionDAG] Add knownbits support for BITREVERSE
Simon Pilgrim [Mon, 16 Jan 2017 14:49:26 +0000 (14:49 +0000)]
[SelectionDAG] Add knownbits support for BITREVERSE

llvm-svn: 292130

7 years ago[PowerPC] Expand ISEL instruction into if-then-else sequence.
Tony Jiang [Mon, 16 Jan 2017 14:43:12 +0000 (14:43 +0000)]
[PowerPC] Expand ISEL instruction into if-then-else sequence.

Generally, the ISEL is expanded into if-then-else sequence, in some
cases (like when the destination register is the same with the true
or false value register), it may just be expanded into just the if
or else sequence.

llvm-svn: 292128

7 years agoDWARFDebugInfoTest.cpp: Don't use ArrayRef with initializer. It was allocated locally.
NAKAMURA Takumi [Mon, 16 Jan 2017 14:33:37 +0000 (14:33 +0000)]
DWARFDebugInfoTest.cpp: Don't use ArrayRef with initializer. It was allocated locally.

llvm-svn: 292127

7 years agoScopInfo: No need to keep ReadOnlyAccesses in an additional map [NFC]
Tobias Grosser [Mon, 16 Jan 2017 14:24:48 +0000 (14:24 +0000)]
ScopInfo: No need to keep ReadOnlyAccesses in an additional map [NFC]

It seems over time we added an additional map that maps from the base address
of a read-only access to the actual access. However this map is never used.
Drop the creation and use of this map to simplify our alias check generation
code.

llvm-svn: 292126

7 years agoScopInfo: no need to clear alias group explicitly
Tobias Grosser [Mon, 16 Jan 2017 14:13:01 +0000 (14:13 +0000)]
ScopInfo: no need to clear alias group explicitly

The alias group will anyhow be cleared at the end of this function and is not
used afterwards. We avoid an explicit clear() call at multiple places to
improve readability of this code.

llvm-svn: 292125

7 years agoUn-XFAIL test case after half support was added to PTX backend in r291956
Tobias Grosser [Mon, 16 Jan 2017 14:08:14 +0000 (14:08 +0000)]
Un-XFAIL test case after half support was added to PTX backend in r291956

llvm-svn: 292124

7 years agoAdjust formatting to commit r292110 [NFC]
Tobias Grosser [Mon, 16 Jan 2017 14:08:10 +0000 (14:08 +0000)]
Adjust formatting to commit r292110 [NFC]

llvm-svn: 292123

7 years agoScopInfo: Fold SmallVectors used in alias check generation back into loop [NFC]
Tobias Grosser [Mon, 16 Jan 2017 14:08:02 +0000 (14:08 +0000)]
ScopInfo: Fold SmallVectors used in alias check generation back into loop [NFC]

Hoisting small vectors out of a loop seems to be a pure performance
optimization, which is unlikely to have great impact in practice. As this
hoisting just increases code-complexity, we fold the SmallVectors back into
the loop.

In subsequent commits, we will further simplify and structure this code, but
we committed this change separately to provide an explanation to make clear
that we purposefully reverted this optimization.

llvm-svn: 292122

7 years agoScopInfo: Extract out splitAliasGroupsByDomain [NFC]
Tobias Grosser [Mon, 16 Jan 2017 14:08:00 +0000 (14:08 +0000)]
ScopInfo: Extract out splitAliasGroupsByDomain [NFC]

The function buildAliasGroups got very large. We extract out the splitting
of alias groups to reduce its size and to better document the current behavior.

llvm-svn: 292121

7 years agoScopInfo: Extract out buildAliasGroupsForAccesses [NFC]
Tobias Grosser [Mon, 16 Jan 2017 14:07:57 +0000 (14:07 +0000)]
ScopInfo: Extract out buildAliasGroupsForAccesses [NFC]

The function buildAliasGroups got very large. We extract out the actual
construction of alias groups to reduce its size and to better document the
current behavior.

llvm-svn: 292120

7 years agoEnsure that clang -pthread creates the right macro. -D_POSIX_THREADS
Joerg Sonnenberger [Mon, 16 Jan 2017 14:07:24 +0000 (14:07 +0000)]
Ensure that clang -pthread creates the right macro. -D_POSIX_THREADS
seems to have been a C&P error from old GCC specs for OpenBSD.

llvm-svn: 292119

7 years ago[X86][SSE] Test showing missing BITREVERSE knownbits support
Simon Pilgrim [Mon, 16 Jan 2017 13:59:42 +0000 (13:59 +0000)]
[X86][SSE] Test showing missing BITREVERSE knownbits support

llvm-svn: 292118

7 years ago[mips] Correct c.cond.fmt instruction definition.
Simon Dardis [Mon, 16 Jan 2017 13:55:58 +0000 (13:55 +0000)]
[mips] Correct c.cond.fmt instruction definition.

Permit explicit $fcc<X> operand in c.cond.fmt instruction.

Add c.cond.fmt to the MIPS to microMIPS instruction mapping table.

Check that $fcc1 - $fcc7 are unusable for MIPS-I to MIPS-III for
c.cond.fmt, bc1t, bc1f.

Reviewers: seanbruno, zoran.jovanovic, vkalintiris

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

llvm-svn: 292117

7 years agoFix test failures after recent clang-format format change.
Daniel Jasper [Mon, 16 Jan 2017 13:43:46 +0000 (13:43 +0000)]
Fix test failures after recent clang-format format change.

llvm-svn: 292116

7 years agoReplace non-ASCII ellipsis with "..." to silence Sphinx warnings.
Aaron Ballman [Mon, 16 Jan 2017 13:42:21 +0000 (13:42 +0000)]
Replace non-ASCII ellipsis with "..." to silence Sphinx warnings.

llvm-svn: 292115

7 years ago[SelectionDAG] Add support for BITREVERSE constant folding
Simon Pilgrim [Mon, 16 Jan 2017 13:39:00 +0000 (13:39 +0000)]
[SelectionDAG] Add support for BITREVERSE constant folding

We were relying on constant folding of the legalized instructions to do what constant folding we had previously

llvm-svn: 292114

7 years agoAdd -fstrict-vtable-pointers to UsersManual
Piotr Padlewski [Mon, 16 Jan 2017 13:20:08 +0000 (13:20 +0000)]
Add -fstrict-vtable-pointers to UsersManual

Summary: Add missing flag to UsersManual
It would be good to merge it to 4.0 branch.

Reviewers: hans

Subscribers: cfe-commits

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

llvm-svn: 292112

7 years ago[X86][SSE] Tests showing missing BITREVERSE constant folding
Simon Pilgrim [Mon, 16 Jan 2017 13:18:07 +0000 (13:18 +0000)]
[X86][SSE] Tests showing missing BITREVERSE constant folding

llvm-svn: 292111

7 years agoclang-format: Always wrap before multi-line parameters/operands.
Daniel Jasper [Mon, 16 Jan 2017 13:13:15 +0000 (13:13 +0000)]
clang-format: Always wrap before multi-line parameters/operands.

Before:
  aaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa::
                                   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                     aaaaaaaaaaaaaaaaaaaaa);

After:
  aaaaaaaaaaaaaaaaaa(aaaaaaaa,
                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa::
                         aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                     aaaaaaaaaaaaaaaaaaaaa);

No new test cases, as the existing ones cover this fairly well.

llvm-svn: 292110

7 years ago[libcxx] Follow-up to r292107
Asiri Rathnayake [Mon, 16 Jan 2017 13:13:01 +0000 (13:13 +0000)]
[libcxx] Follow-up to r292107

I've missed a couple of updates. NFC.

llvm-svn: 292109

7 years ago[libcxx] Improve design documentation for the external-thread-library
Asiri Rathnayake [Mon, 16 Jan 2017 12:44:08 +0000 (12:44 +0000)]
[libcxx] Improve design documentation for the external-thread-library
  configuration

NFC.

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

Reviewers: EricWF
llvm-svn: 292108

7 years ago[libcxx] Don't assume __libcpp_thread_t is an integral type
Asiri Rathnayake [Mon, 16 Jan 2017 12:19:54 +0000 (12:19 +0000)]
[libcxx] Don't assume __libcpp_thread_t is an integral type

We have already refactored the underlying platform thread type into
__libcpp_thread_t, but there are few places in the source where we
still assume it is an integral type.

This patch refactores those points back into the threading API.

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

Reviewers: EricWF
llvm-svn: 292107

7 years agoFix windows unit tests
Pavel Labath [Mon, 16 Jan 2017 12:15:42 +0000 (12:15 +0000)]
Fix windows unit tests

The unit test I added in the previous commit discovered a bug in
PrependPathComponent on windows -- it was calling SetFile with the host native
path syntax, whereas it should be explicitly specifying the path syntax (as
AppendPathComponent does). This fixes it.

llvm-svn: 292106

7 years agoDo not track the isl PDF manual in SVN
Tobias Grosser [Mon, 16 Jan 2017 11:48:03 +0000 (11:48 +0000)]
Do not track the isl PDF manual in SVN

There is no point in regularly committing a binary file to the repository, as
this just unnecessarily increases the repository size. Interested people can
find the isl manual for example at isl.gforge.inria.fr/manual.pdf.

llvm-svn: 292105

7 years ago[COFF] - Fixed format in writeOutSecLine()
George Rimar [Mon, 16 Jan 2017 11:46:55 +0000 (11:46 +0000)]
[COFF] - Fixed format in writeOutSecLine()

The same as https://reviews.llvm.org/rL292102,
fixes next testcases under msvs2015/win32:

25>  Failing Tests (3):
25>      lld :: COFF/lldmap.test
25>      lld :: COFF/weak-external.test
25>      lld :: COFF/weak-external3.test

llvm-svn: 292104

7 years ago[ELF] - Fix format specifiers in writeOutSecLine()
George Rimar [Mon, 16 Jan 2017 11:35:38 +0000 (11:35 +0000)]
[ELF] - Fix format specifiers in writeOutSecLine()

I had a error in map-file.s testcase under MSVS2015/win32:

map-file.s:30:16: error: expected string not found in input
// CHECK-NEXT: 0000000000200158 0000000000000030 8 .eh_frame

<stdin>:2:1: note: scanning from here
0000000000200158 10 30 .eh_frame

Format string '%0*x' requires an argument of type 'unsigned int',
but argument has type 'uint64_t'. Proper format is '%0*llx' then.

This fixes testcase failture for me.

llvm-svn: 292102

7 years ago[InstCombine][SSE] Add DemandedElts support for PSHUFB instructions
Simon Pilgrim [Mon, 16 Jan 2017 11:30:41 +0000 (11:30 +0000)]
[InstCombine][SSE] Add DemandedElts support for PSHUFB instructions

Simplify a pshufb shuffle mask based on the elements of the mask that are actually demanded.

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

llvm-svn: 292101

7 years agoFileSpec: Fix PrependPathComponent("/")
Pavel Labath [Mon, 16 Jan 2017 10:07:02 +0000 (10:07 +0000)]
FileSpec: Fix PrependPathComponent("/")

Summary:
PrependPathComponent was unconditionally inserting path separators between the
path components. This is not correct if the prepended path is "/", which caused
problems down the line. Fix the function to use the same algorithm as
AppendPathComponent and add a test. This fixes one part of llvm.org/pr31611.

Reviewers: clayborg, zturner

Subscribers: lldb-commits

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

llvm-svn: 292100

7 years agoclang-format: [JS] revert over-eager ASI check.
Martin Probst [Mon, 16 Jan 2017 09:52:40 +0000 (09:52 +0000)]
clang-format: [JS] revert over-eager ASI check.

Summary: Change r291428 introduced ASI detection after closing curly braces. That would generally be correct, however this breaks indentation for structural statements. What happens is that CompoundStatementIndenter increases indentation for the current line, then after reading ASI creates a new line (with the increased line level), and only after the structural parser sees e.g. the if/then/else branch closed, line level is reduced. That leads to the new line started by ASI having a level too high.

Reviewers: djasper

Subscribers: sammccall, cfe-commits, klimek

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

llvm-svn: 292099

7 years ago[clang-move] Dump enum and type alias declarations.
Haojian Wu [Mon, 16 Jan 2017 09:34:07 +0000 (09:34 +0000)]
[clang-move] Dump enum and type alias declarations.

Reviewers: ioeric

Subscribers: cfe-commits

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

llvm-svn: 292098

7 years agoAdded a workaround for a `-fdelayed-template-parsing` bug.
Michael Park [Mon, 16 Jan 2017 08:14:25 +0000 (08:14 +0000)]
Added a workaround for a `-fdelayed-template-parsing` bug.

Summary:
There seems to be an additional bug in `-fdelayed-template-parsing`
similar to
http://llvm.org/viewvc/llvm-project?view=revision&revision=236063.

This is a workaround for it for <variant> to compile with `clang-cl` on Windows.

Reviewers: EricWF

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

llvm-svn: 292097

7 years ago[X86] Merge the disassemblers handling of the different TYPE_RELs by getting the...
Craig Topper [Mon, 16 Jan 2017 06:49:09 +0000 (06:49 +0000)]
[X86] Merge the disassemblers handling of the different TYPE_RELs by getting the size information from the ENCODING field. NFCI

llvm-svn: 292096

7 years ago[X86] Reduce the number of operand 'types' the disassembler needs to deal with. NFCI
Craig Topper [Mon, 16 Jan 2017 06:49:03 +0000 (06:49 +0000)]
[X86] Reduce the number of operand 'types' the disassembler needs to deal with. NFCI

We were frequently checking for a list of types and the different types
conveyed no real information. So lump them together explicitly.

llvm-svn: 292095

7 years ago[AVX-512] Teach the disassembler about all of the EVEX gather and scatter instructions.
Craig Topper [Mon, 16 Jan 2017 05:44:33 +0000 (05:44 +0000)]
[AVX-512] Teach the disassembler about all of the EVEX gather and scatter instructions.

llvm-svn: 292094

7 years ago[AVX-512] Begin giving the disassembler a way to recognize that VSIB is a different...
Craig Topper [Mon, 16 Jan 2017 05:44:25 +0000 (05:44 +0000)]
[AVX-512] Begin giving the disassembler a way to recognize that VSIB is a different encoding than regular addressing modes.

This part first teaches it not to check error if EVEX.V2 is used by a VSIB instruction.

llvm-svn: 292093

7 years agoFix typos. NFC
Xin Tong [Mon, 16 Jan 2017 03:41:09 +0000 (03:41 +0000)]
Fix typos. NFC

llvm-svn: 292092

7 years agoImplement the missing constexpr stuff in <array>. Fixes PR#31645.
Marshall Clow [Mon, 16 Jan 2017 03:02:10 +0000 (03:02 +0000)]
Implement the missing constexpr stuff in <array>. Fixes PR#31645.

llvm-svn: 292091

7 years agoUse error() instead of fatal() to handle file open error.
Rui Ueyama [Mon, 16 Jan 2017 01:07:19 +0000 (01:07 +0000)]
Use error() instead of fatal() to handle file open error.

llvm-svn: 292090

7 years ago[AVX-512] Add more gather/scatter encoding test cases.
Craig Topper [Mon, 16 Jan 2017 00:58:20 +0000 (00:58 +0000)]
[AVX-512] Add more gather/scatter encoding test cases.

llvm-svn: 292089

7 years ago[AVX-512] Correct memory operand size for VPGATHERQPS and VPGATHERQD
Craig Topper [Mon, 16 Jan 2017 00:55:58 +0000 (00:55 +0000)]
[AVX-512] Correct memory operand size for VPGATHERQPS and VPGATHERQD
with ZMM index. Similar for SCATTER and the prefetch gather and scatter
instructions.

Fixes PR31618.

llvm-svn: 292088

7 years ago[AVX-512] Fix register class in one of the gather/scatter memory operands so that...
Craig Topper [Mon, 16 Jan 2017 00:55:50 +0000 (00:55 +0000)]
[AVX-512] Fix register class in one of the gather/scatter memory operands so that all 32 bit registers can be allowed.

llvm-svn: 292087

7 years agoReland "[CMake][libcxx] Check that we have libcxxabi before using it"
Petr Hosek [Mon, 16 Jan 2017 00:33:11 +0000 (00:33 +0000)]
Reland "[CMake][libcxx] Check that we have libcxxabi before using it"

This relands commit r291726.

llvm-svn: 292086

7 years agoReland "[CMake][libcxx] Do not rely on the existence of c++abi or unwind targets"
Petr Hosek [Mon, 16 Jan 2017 00:33:09 +0000 (00:33 +0000)]
Reland "[CMake][libcxx] Do not rely on the existence of c++abi or unwind targets"

This relands commit r291727.

llvm-svn: 292085

7 years agoReland "[CMake][libcxx] Move Python check to main CMake file"
Petr Hosek [Mon, 16 Jan 2017 00:33:07 +0000 (00:33 +0000)]
Reland "[CMake][libcxx] Move Python check to main CMake file"

This relands commit r291728.

llvm-svn: 292084

7 years agoReland "[CMake][compiler-rt] Mark libcxx build for tsan as standalone"
Petr Hosek [Mon, 16 Jan 2017 00:33:02 +0000 (00:33 +0000)]
Reland "[CMake][compiler-rt] Mark libcxx build  for tsan as standalone"

This relands commit r291722.

llvm-svn: 292083

7 years ago[InstCombine] add tests to show missed vector folds; NFC
Sanjay Patel [Sun, 15 Jan 2017 23:45:03 +0000 (23:45 +0000)]
[InstCombine] add tests to show missed vector folds; NFC

Also, add comments and remove bogus comment.

llvm-svn: 292082

7 years agoEmpty line. NFC.
Xin Tong [Sun, 15 Jan 2017 23:32:11 +0000 (23:32 +0000)]
Empty line. NFC.

llvm-svn: 292081

7 years agoUse getLoopLatch in place of isLoopSimplifyForm
Xin Tong [Sun, 15 Jan 2017 21:17:52 +0000 (21:17 +0000)]
Use getLoopLatch in place of isLoopSimplifyForm

Summary:
Use getLoopLatch in place of isLoopSimplifyForm. we do not need
to know whether the loop has a preheader nor dedicated exits.

Reviewers: hfinkel, sanjoy, atrick, mkuper

Subscribers: mzolotukhin, llvm-commits

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

llvm-svn: 292078

7 years ago[CostModel][X86] Fix AVX512BW vector shift costs for vXi16 types
Simon Pilgrim [Sun, 15 Jan 2017 20:44:00 +0000 (20:44 +0000)]
[CostModel][X86] Fix AVX512BW vector shift costs for vXi16 types

We already have patterns in place to support 128/256-bit shifts without AVX512VL

llvm-svn: 292077

7 years ago[CostModel][X86] Drop separate AVX512VL checks - they match existing AVX512 costs
Simon Pilgrim [Sun, 15 Jan 2017 20:19:28 +0000 (20:19 +0000)]
[CostModel][X86] Drop separate AVX512VL checks - they match existing AVX512 costs

Keep the tests though.

llvm-svn: 292076

7 years ago[CostModel][X86] Update vector shift tests to correctly check by non-constant uniform...
Simon Pilgrim [Sun, 15 Jan 2017 20:10:28 +0000 (20:10 +0000)]
[CostModel][X86] Update vector shift tests to correctly check by non-constant uniform values.

Use shuffle( scslar_to_vector, zeroinitializer) pattern instead of shuffle( vec, zeroinitializer)

llvm-svn: 292075

7 years agoDelete a dead argument. NFC
Xin Tong [Sun, 15 Jan 2017 19:53:59 +0000 (19:53 +0000)]
Delete a dead argument. NFC

llvm-svn: 292074

7 years ago[InstCombine] fix formatting; NFC
Sanjay Patel [Sun, 15 Jan 2017 17:55:35 +0000 (17:55 +0000)]
[InstCombine] fix formatting; NFC

llvm-svn: 292073

7 years ago[InstCombine][SSE] Tests showing missed opportunities to pass demanded elts through...
Simon Pilgrim [Sun, 15 Jan 2017 17:49:04 +0000 (17:49 +0000)]
[InstCombine][SSE] Tests showing missed opportunities to pass demanded elts through a pshufb shuffle mask

llvm-svn: 292072

7 years ago[NVPTX] Add fptosi tests to convert-fp.ll.
Justin Lebar [Sun, 15 Jan 2017 16:55:54 +0000 (16:55 +0000)]
[NVPTX] Add fptosi tests to convert-fp.ll.

These seem to have been left off by accident.

llvm-svn: 292071