platform/upstream/llvm.git
7 years ago[AMDGPU] Change frexp.exp builtin to return i16 for f16 input
Konstantin Zhuravlyov [Fri, 18 Nov 2016 22:31:51 +0000 (22:31 +0000)]
[AMDGPU] Change frexp.exp builtin to return i16 for f16 input

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

llvm-svn: 287390

7 years ago[AMDGPU] Change frexp.exp intrinsic to return i16 for f16 input
Konstantin Zhuravlyov [Fri, 18 Nov 2016 22:31:08 +0000 (22:31 +0000)]
[AMDGPU] Change frexp.exp intrinsic to return i16 for f16 input

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

llvm-svn: 287389

7 years agoAllow using libsupc++ with LIBCXX_ENABLE_STATIC_ABI_LIBRARY. Patch from Michael Daniels.
Eric Fiselier [Fri, 18 Nov 2016 22:25:41 +0000 (22:25 +0000)]
Allow using libsupc++ with LIBCXX_ENABLE_STATIC_ABI_LIBRARY. Patch from Michael Daniels.

The code cannot currently link when using libsupc++ with the
LIBCXX_ENABLE_STATIC_ABI_LIBRARY option.

This change ifdef's out the the destructor and 'what' function for
bad_array_length and bad_array_new_length when GLIBCXX is defined.
The constructors that are left in are the only functions not being provided by
libsupc++ itself, and follows the same pattern that was used to ifdef bad_alloc.

Testing was done on a Linux x86_64 host using GCC 5.4 and libc++ from ToT.
I see no change to the test results when using libsup++ or libstdc++ without
LIBCXX_ENABLE_STATIC_ABI_LIBRARY. When using libsupc++ with
LIBCXX_ENABLE_STATIC_ABI_LIBRARY it will now build and test results are the
same as those without the option specified.

Reviewed as https://reviews.llvm.org/D26186

llvm-svn: 287388

7 years ago[SelectionDAG] Add knowbits support for CONCAT_VECTOR opcode
Simon Pilgrim [Fri, 18 Nov 2016 22:21:22 +0000 (22:21 +0000)]
[SelectionDAG] Add knowbits support for CONCAT_VECTOR opcode

llvm-svn: 287387

7 years agoFix "thread step until" handling of multiple line inputs.
Jim Ingham [Fri, 18 Nov 2016 22:06:10 +0000 (22:06 +0000)]
Fix "thread step until" handling of multiple line inputs.

Also document that it handles same, and add some tests.

llvm-svn: 287386

7 years ago[X86] Add knownbits concat_vector test
Simon Pilgrim [Fri, 18 Nov 2016 21:59:38 +0000 (21:59 +0000)]
[X86] Add knownbits concat_vector test

Support coming in a future patch

llvm-svn: 287385

7 years ago[Examples] Fix some Clang-tidy modernize-use-default and Include What You Use warning...
Eugene Zelenko [Fri, 18 Nov 2016 21:57:58 +0000 (21:57 +0000)]
[Examples] Fix some Clang-tidy modernize-use-default and Include What You Use warnings; other minor fixes.

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

llvm-svn: 287384

7 years ago[libcxx] [test] D26816: Fix non-Standard assumptions when testing sample().
Stephan T. Lavavej [Fri, 18 Nov 2016 21:54:43 +0000 (21:54 +0000)]
[libcxx] [test] D26816: Fix non-Standard assumptions when testing sample().

sample() isn't specified with a reproducible algorithm, so expecting
exact output is non-Standard. Mark those tests with LIBCPP_ASSERT.

In test_small_population(), we're guaranteed to get all of the elements,
but not necessarily in their original order. When PopulationCategory is
forward, we're guaranteed stability (and can therefore test equal()).
Otherwise, we can only test is_permutation(). (As it happens, both libcxx
and MSVC's STL provide stability in this scenario for input-only iterators.)

llvm-svn: 287383

7 years ago[libcxx] [test] D26815: Fix an assumption about the state of moved-from std::functions.
Stephan T. Lavavej [Fri, 18 Nov 2016 21:54:38 +0000 (21:54 +0000)]
[libcxx] [test] D26815: Fix an assumption about the state of moved-from std::functions.

The Standard doesn't provide any guarantees beyond "valid but unspecified" for
moved-from std::functions. libcxx moves from small targets and leaves them
there, while MSVC's STL empties out the source. Mark these assertions as
libcxx-specific.

llvm-svn: 287382

7 years ago[libcxx] [test] D26813: allocator<const T> is non-Standard.
Stephan T. Lavavej [Fri, 18 Nov 2016 21:54:31 +0000 (21:54 +0000)]
[libcxx] [test] D26813: allocator<const T> is non-Standard.

N4582 17.6.3.5 [allocator.requirements] says that allocators are given
cv-unqualified object types, and N4582 20.9.9 [default.allocator]
implies that allocator<const T> is ill-formed (due to colliding
address() overloads). Therefore, tests for allocator<const T>
should be marked as libcxx-specific (if not removed outright).

llvm-svn: 287381

7 years ago[analyzer] Refactor recursive symbol reachability check to use symbol_iterator
Dominic Chen [Fri, 18 Nov 2016 21:07:03 +0000 (21:07 +0000)]
[analyzer] Refactor recursive symbol reachability check to use symbol_iterator

Reviewers: zaks.anna, dcoughlin

Subscribers: cfe-commits

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

llvm-svn: 287380

7 years ago[LoopSimplify] Preserve LCSSA when removing edges from unreachable blocks.
Michael Zolotukhin [Fri, 18 Nov 2016 21:01:12 +0000 (21:01 +0000)]
[LoopSimplify] Preserve LCSSA when removing edges from unreachable blocks.

This fixes PR30454.

llvm-svn: 287379

7 years ago[ARM] Fix sema check of ARM special register names
Oleg Ranevskyy [Fri, 18 Nov 2016 21:00:08 +0000 (21:00 +0000)]
[ARM] Fix sema check of ARM special register names

Summary:
This is a simple sema check patch for arguments of `__builtin_arm_rsr` and the related builtins, which currently do not allow special registers with indexes >7.

Some of the possible register name formats these builtins accept are:
```
{c}p<coprocessor>:<op1>:c<CRn>:c<CRm>:<op2>
```
```
o0:op1:CRn:CRm:op2
```
where `op1` / `op2` are integers in the range [0, 7] and `CRn` / `CRm` are integers in the range [0, 15].

The current sema check does not allow `CRn` > 7 and accepts `op2` up to 15.

Reviewers: LukeCheeseman, rengolin

Subscribers: asl, aemerson, rengolin, cfe-commits

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

llvm-svn: 287378

7 years agorename InternalBinarySearch to InternalLowerBound
Mike Aizatsky [Fri, 18 Nov 2016 20:48:52 +0000 (20:48 +0000)]
rename InternalBinarySearch to InternalLowerBound

Summary: The new name better corresponds to its logic.

Reviewers: kcc

Subscribers: kubabrecka

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

llvm-svn: 287377

7 years agoChange CreateTarget and dependents to accept StringRef.
Zachary Turner [Fri, 18 Nov 2016 20:44:46 +0000 (20:44 +0000)]
Change CreateTarget and dependents to accept StringRef.

llvm-svn: 287376

7 years ago[MIRPrinter] XFAIL test for powerpc
Geoff Berry [Fri, 18 Nov 2016 20:08:05 +0000 (20:08 +0000)]
[MIRPrinter] XFAIL test for powerpc

This test introduced in r287368 is failing on powerpc for reasons
unrelated to branch probabilities.  See PR31062.

llvm-svn: 287375

7 years agoRevert "Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch"
Mehdi Amini [Fri, 18 Nov 2016 20:02:34 +0000 (20:02 +0000)]
Revert "Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch"

This reverts commit r287352, LLDB CI is broken.

llvm-svn: 287374

7 years agoMake LIBCXX_ENABLE_STATIC_ABI_LIBRARY merge libc++.a and libc++abi.a
Eric Fiselier [Fri, 18 Nov 2016 19:53:45 +0000 (19:53 +0000)]
Make LIBCXX_ENABLE_STATIC_ABI_LIBRARY merge libc++.a and libc++abi.a

llvm-svn: 287373

7 years agoSimplify. NFC.
Rui Ueyama [Fri, 18 Nov 2016 19:45:04 +0000 (19:45 +0000)]
Simplify. NFC.

llvm-svn: 287372

7 years agoAdapt to llvm NamedRegionTimer changes
Matthias Braun [Fri, 18 Nov 2016 19:43:25 +0000 (19:43 +0000)]
Adapt to llvm NamedRegionTimer changes

We have to specify a name and description for the timers and groups now.

llvm-svn: 287371

7 years agoStatistic/Timer: Include timers in PrintStatisticsJSON().
Matthias Braun [Fri, 18 Nov 2016 19:43:24 +0000 (19:43 +0000)]
Statistic/Timer: Include timers in PrintStatisticsJSON().

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

llvm-svn: 287370

7 years agoTimer: Track name and description.
Matthias Braun [Fri, 18 Nov 2016 19:43:18 +0000 (19:43 +0000)]
Timer: Track name and description.

The previously used "names" are rather descriptions (they use multiple
words and contain spaces), use short programming language identifier
like strings for the "names" which should be used when exporting to
machine parseable formats.

Also removed a unused TimerGroup from Hexxagon.

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

llvm-svn: 287369

7 years ago[MIRPrinter] Print raw branch probabilities as expected by MIRParser
Geoff Berry [Fri, 18 Nov 2016 19:37:24 +0000 (19:37 +0000)]
[MIRPrinter] Print raw branch probabilities as expected by MIRParser

Fixes PR28751.

Reviewers: MatzeB, qcolombet

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 287368

7 years agoRe-add the StringRef interface changes for Variable.
Zachary Turner [Fri, 18 Nov 2016 19:23:39 +0000 (19:23 +0000)]
Re-add the StringRef interface changes for Variable.

This concludes the changes I originally tried to make and then
had to back out.  This way if anything is still broken, it
should be easier to bisect it back to a more specific changeset.

llvm-svn: 287367

7 years ago[CMake] Fixing variable names that were mistyped
Chris Bieneman [Fri, 18 Nov 2016 19:20:39 +0000 (19:20 +0000)]
[CMake] Fixing variable names that were mistyped

This is a silly bug that I'm sure I caused...

llvm-svn: 287366

7 years agoSimplify handling of SHF_LINK_ORDER.
Rafael Espindola [Fri, 18 Nov 2016 19:02:15 +0000 (19:02 +0000)]
Simplify handling of SHF_LINK_ORDER.

It seems a lot simpler to just sort the sections and let the
relocations do the rest.

llvm-svn: 287365

7 years ago__cxa_demangle: use default member initialization
Saleem Abdulrasool [Fri, 18 Nov 2016 19:01:53 +0000 (19:01 +0000)]
__cxa_demangle: use default member initialization

Sink the Db initialization into the structure rather than out-of-line at the
declaration size.  This just makes it easier to see what initialization is being
performed.  NFC.

llvm-svn: 287364

7 years agoAMDGPU: Fix unused variable warning
Matt Arsenault [Fri, 18 Nov 2016 18:33:36 +0000 (18:33 +0000)]
AMDGPU: Fix unused variable warning

llvm-svn: 287362

7 years agoFix test from r287353: don't use /dev/null
Hans Wennborg [Fri, 18 Nov 2016 18:27:31 +0000 (18:27 +0000)]
Fix test from r287353: don't use /dev/null

llvm-svn: 287360

7 years agobuiltins: repair the builtins build with clang 3.8
Saleem Abdulrasool [Fri, 18 Nov 2016 18:21:06 +0000 (18:21 +0000)]
builtins: repair the builtins build with clang 3.8

When the C unwinding personality was corrected to match the ARM EHABI
specification, the unwind header in clang was updated with necessary
declarations.  However, when building with an older compiler, we would not have
the necessary declarations.  This would result in a build failure.  Provide a
supplementary header to ensure that the necessary declarations are present for
the build of the C unwinding personality.

Note that this is NOT an ABI break.  It merely is a compile time failure due to
the constants not being present.  The constants here are reproduced
equivalently.  This header should permit building with clang[<3.9] as well as
gcc.

Addresses PR31035!

llvm-svn: 287359

7 years agoLTO support for -fsave-optimization-record on Darwin
Adam Nemet [Fri, 18 Nov 2016 18:17:36 +0000 (18:17 +0000)]
LTO support for -fsave-optimization-record on Darwin

I guess this would have to be added for each linker.

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

llvm-svn: 287358

7 years agoFix a comment for -fsave-optimization-record
Adam Nemet [Fri, 18 Nov 2016 18:17:33 +0000 (18:17 +0000)]
Fix a comment for -fsave-optimization-record

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

llvm-svn: 287357

7 years ago[LTO] Add option to generate optimization records
Adam Nemet [Fri, 18 Nov 2016 18:06:28 +0000 (18:06 +0000)]
[LTO] Add option to generate optimization records

It is used to drive this from the clang driver via -mllvm.

Same option name is used as in opt.

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

llvm-svn: 287356

7 years ago[DebugInfo] Fix some Clang-tidy modernize-use-default, modernize-use-equal-delete...
Eugene Zelenko [Fri, 18 Nov 2016 18:00:19 +0000 (18:00 +0000)]
[DebugInfo] Fix some Clang-tidy modernize-use-default, modernize-use-equal-delete and Include What You Use warnings; other minor fixes (NFC).

Per Zachary Turner and Mehdi Amini suggestion to make only post-commit reviews.

llvm-svn: 287355

7 years agoResubmit "Remove an output-parameter from Variable function".
Zachary Turner [Fri, 18 Nov 2016 17:55:04 +0000 (17:55 +0000)]
Resubmit "Remove an output-parameter from Variable function".

The scanning algorithm had a few little subtleties that I
overlooked, but this patch should fix everything.

I still haven't changed the function to take a StringRef since
that has some trickle down effect and is mostly mechanical,
I just wanted to get the tricky part as isolated as possible.

llvm-svn: 287354

7 years agoIRMover: Avoid accidentally mapping types from the destination module (PR30799)
Hans Wennborg [Fri, 18 Nov 2016 17:33:05 +0000 (17:33 +0000)]
IRMover: Avoid accidentally mapping types from the destination module (PR30799)

During Module linking, it's possible for SrcM->getIdentifiedStructTypes();
to return types that are actually defined in the destination module
(DstM). Depending on how the bitcode file was read,
getIdentifiedStructTypes() might do a walk over all values, including
metadata nodes, looking for types. In my case, a debug info metadata
node was shared between the two modules, and it referred to a type
defined in the destination module (see test case).

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

llvm-svn: 287353

7 years agoAdd link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch
Mehdi Amini [Fri, 18 Nov 2016 17:28:10 +0000 (17:28 +0000)]
Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch

Summary:
LLVM will define a symbol, either EnableABIBreakingChecks or
DisableABIBreakingChecks depending on the configuration setting for
LLVM_ABI_BREAKING_CHECKS.

The llvm-config.h header will add weak references to these symbols in
every clients that includes this header. This should ensure that
a mismatch triggers a link failure (or a load time failure for DSO).

On MSVC, the pragma "detect_mismatch" is used instead.

Reviewers: rnk, jroelofs

Subscribers: llvm-commits, mgorny

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

llvm-svn: 287352

7 years ago[PPC] limit line width to 80 characters
Ehsan Amiri [Fri, 18 Nov 2016 16:24:27 +0000 (16:24 +0000)]
[PPC] limit line width to 80 characters

NFC. Forgot to fix this in the original commit.

llvm-svn: 287350

7 years ago[mips][msa] Implement f16 support
Simon Dardis [Fri, 18 Nov 2016 16:17:44 +0000 (16:17 +0000)]
[mips][msa] Implement f16 support

The MIPS MSA ASE provides instructions to convert to and from half precision
floating point. This patch teaches the MIPS backend to treat f16 as a legal
type and how to promote such values to f32 for the usual set of operations.

As a result of this, the fexup[lr].w intrinsics no longer crash LLVM during
type legalization.

Reviewers: zoran.jovanvoic, vkalintiris

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

llvm-svn: 287349

7 years ago[X86][AVX512] Split AVX512F/AVX512VL tests to demonstrate missed int2fp opportunities...
Simon Pilgrim [Fri, 18 Nov 2016 15:31:36 +0000 (15:31 +0000)]
[X86][AVX512] Split AVX512F/AVX512VL tests to demonstrate missed int2fp opportunities without AVX512VL

llvm-svn: 287348

7 years ago[NFC] Adjust naming scheme of statistic variables
Johannes Doerfert [Fri, 18 Nov 2016 14:37:08 +0000 (14:37 +0000)]
[NFC] Adjust naming scheme of statistic variables

Suggested-by: Tobias Grosser <tobias@grosser.es>
llvm-svn: 287347

7 years ago[ELF] Convert PltSection to input section
Eugene Leviant [Fri, 18 Nov 2016 14:35:03 +0000 (14:35 +0000)]
[ELF] Convert PltSection to input section

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

llvm-svn: 287346

7 years agoGlobalISel: Fix unconditional fallback with global isel abort is disabled
Tom Stellard [Fri, 18 Nov 2016 14:14:35 +0000 (14:14 +0000)]
GlobalISel: Fix unconditional fallback with global isel abort is disabled

Reviewers: t.p.northover, ab, qcolombet

Subscribers: mehdi_amini, vkalintiris, wdng, dberris, llvm-commits, rovka

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

llvm-svn: 287344

7 years ago[OpenCL] Introduce ReadPipeType and WritePipeType.
Joey Gouly [Fri, 18 Nov 2016 14:10:54 +0000 (14:10 +0000)]
[OpenCL] Introduce ReadPipeType and WritePipeType.

This allows Sema to diagnose passing a read_only pipe to a
write_only pipe argument.

llvm-svn: 287343

7 years agoAMDGPU/SI: Remove zero_extend patterns for i16 ops selected to 32-bit insts
Tom Stellard [Fri, 18 Nov 2016 13:53:34 +0000 (13:53 +0000)]
AMDGPU/SI: Remove zero_extend patterns for i16 ops selected to 32-bit insts

Summary:
The 32-bit instructions don't zero the high 16-bits like the 16-bit
instructions do.

Reviewers: arsenm

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

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

llvm-svn: 287342

7 years ago[simplifycfg][loop-simplify] Preserve loop metadata in 2 transformations.
Florian Hahn [Fri, 18 Nov 2016 13:12:07 +0000 (13:12 +0000)]
[simplifycfg][loop-simplify] Preserve loop metadata in 2 transformations.

insertUniqueBackedgeBlock in lib/Transforms/Utils/LoopSimplify.cpp now
propagates existing llvm.loop metadata to newly the added backedge.

llvm::TryToSimplifyUncondBranchFromEmptyBlock in lib/Transforms/Utils/Local.cpp
now propagates existing llvm.loop metadata to the branch instructions in the
predecessor blocks of the empty block that is removed.

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

llvm-svn: 287341

7 years agoCleanup function with clang-format. NFCI.
Simon Pilgrim [Fri, 18 Nov 2016 12:16:18 +0000 (12:16 +0000)]
Cleanup function with clang-format. NFCI.

llvm-svn: 287340

7 years agoAMDGPU: Fix legalization of MUBUF instructions in shaders
Nicolai Haehnle [Fri, 18 Nov 2016 11:55:52 +0000 (11:55 +0000)]
AMDGPU: Fix legalization of MUBUF instructions in shaders

Summary:
The addr64-based legalization is incorrect for MUBUF instructions with idxen
set as well as for BUFFER_LOAD/STORE_FORMAT_* instructions.  This affects
e.g.  shaders that access buffer textures.

Since we never actually need the addr64-legalization in shaders, this patch
takes the easy route and keys off the calling convention.  If this ever
affects (non-OpenGL) compute, the type of legalization needs to be chosen
based on some TSFlag.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98664

Reviewers: arsenm, tstellarAMD

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

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

llvm-svn: 287339

7 years agoFix spelling mistakes in MIPS target comments. NFC.
Simon Pilgrim [Fri, 18 Nov 2016 11:53:36 +0000 (11:53 +0000)]
Fix spelling mistakes in MIPS target comments. NFC.

Identified by Pedro Giffuni in PR27636.

llvm-svn: 287338

7 years agoMake merge_archives.py executable
Eric Fiselier [Fri, 18 Nov 2016 11:29:05 +0000 (11:29 +0000)]
Make merge_archives.py executable

llvm-svn: 287337

7 years agoAdd merge_archives.py utility
Eric Fiselier [Fri, 18 Nov 2016 11:26:14 +0000 (11:26 +0000)]
Add merge_archives.py utility

llvm-svn: 287336

7 years agoWdocumentation fix
Simon Pilgrim [Fri, 18 Nov 2016 11:18:28 +0000 (11:18 +0000)]
Wdocumentation fix

llvm-svn: 287335

7 years ago[Power9] Add patterns for vnegd, vnegw
Ehsan Amiri [Fri, 18 Nov 2016 11:05:55 +0000 (11:05 +0000)]
[Power9] Add patterns for vnegd, vnegw

Exploit new instructions by adding patterns to .td file.
https://reviews.llvm.org/D26551

llvm-svn: 287334

7 years agoFix spelling mistakes in AMDGPU target comments. NFC.
Simon Pilgrim [Fri, 18 Nov 2016 11:04:02 +0000 (11:04 +0000)]
Fix spelling mistakes in AMDGPU target comments. NFC.

Identified by Pedro Giffuni in PR27636.

llvm-svn: 287333

7 years ago[X86][AVX2] Add v8i32->v8i64 mul test (PR30845)
Simon Pilgrim [Fri, 18 Nov 2016 11:00:36 +0000 (11:00 +0000)]
[X86][AVX2] Add v8i32->v8i64 mul test (PR30845)

llvm-svn: 287332

7 years agoFix typo in comment. NFC.
Simon Pilgrim [Fri, 18 Nov 2016 10:52:12 +0000 (10:52 +0000)]
Fix typo in comment. NFC.

Identified by Pedro Giffuni in PR27636.

llvm-svn: 287331

7 years ago[clang-move] Fix not moving using-decls in global namespace in old.cc
Haojian Wu [Fri, 18 Nov 2016 10:51:16 +0000 (10:51 +0000)]
[clang-move] Fix not moving using-decls in global namespace in old.cc

Reviewers: ioeric

Subscribers: cfe-commits

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

llvm-svn: 287330

7 years ago[PPC][DAGCombine] Convert SETCC to subtract when the result is zero extended
Ehsan Amiri [Fri, 18 Nov 2016 10:41:44 +0000 (10:41 +0000)]
[PPC][DAGCombine] Convert SETCC to subtract when the result is zero extended

When we see a SETCC whose only users are zero extend operations, we can replace
it with a subtraction. This results in doing all calculations in GPRs and
avoids CR use.

Currently we do this only for ULT, ULE, UGT and UGE condition codes. There are
ways that this can be extended. For example for signed condition codes. In that
case we will be introducing additional sign extend instructions, so more careful
profitability analysis may be required.

Another direction to extend this is for equal, not equal conditions. Also when
users of SETCC are any_ext or sign_ext, we might be able to do something
similar.

llvm-svn: 287329

7 years agoFix go binding to adapt the new attribute API
Amaury Sechet [Fri, 18 Nov 2016 10:11:02 +0000 (10:11 +0000)]
Fix go binding to adapt the new attribute API

https://reviews.llvm.org/D26339

llvm-svn: 287328

7 years agoRename TU names to not conflict with libc++.
Eric Fiselier [Fri, 18 Nov 2016 09:54:49 +0000 (09:54 +0000)]
Rename TU names to not conflict with libc++.

In order to easily merge libc++ and libc++abi static archives it's important
that none of the source files share the same name.
(See http://stackoverflow.com/questions/3821916/how-to-merge-two-ar-static-libraries-into-one)

This patch renames source files which share a name with libc++ sources.

llvm-svn: 287327

7 years ago[ELF] Convert HashTableSection to input section
Eugene Leviant [Fri, 18 Nov 2016 09:06:47 +0000 (09:06 +0000)]
[ELF] Convert HashTableSection to input section

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

llvm-svn: 287326

7 years agoUpdate comment.
Rui Ueyama [Fri, 18 Nov 2016 07:03:56 +0000 (07:03 +0000)]
Update comment.

llvm-svn: 287325

7 years agoOmit empty parameter list.
Rui Ueyama [Fri, 18 Nov 2016 06:49:09 +0000 (06:49 +0000)]
Omit empty parameter list.

llvm-svn: 287324

7 years agoUse consume() instead of peek() and skip().
Rui Ueyama [Fri, 18 Nov 2016 06:49:07 +0000 (06:49 +0000)]
Use consume() instead of peek() and skip().

llvm-svn: 287323

7 years ago[ELF] Convert GnuHashTableSection to input section
Eugene Leviant [Fri, 18 Nov 2016 06:44:18 +0000 (06:44 +0000)]
[ELF] Convert GnuHashTableSection to input section

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

llvm-svn: 287322

7 years agoRemove _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
Eric Fiselier [Fri, 18 Nov 2016 06:42:17 +0000 (06:42 +0000)]
Remove _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS

libc++ no longer supports C++11 compilers that don't implement `= default`.
This patch removes all instances of the feature test macro
_LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS as well as the potentially dead code it hides.

llvm-svn: 287321

7 years agoRevert "Remove an out param from ValueObject::GetValueForExpressionPath."
Zachary Turner [Fri, 18 Nov 2016 06:34:45 +0000 (06:34 +0000)]
Revert "Remove an out param from ValueObject::GetValueForExpressionPath."

This reverts commit r287315, as it introduces a bug that breaks
many things.

llvm-svn: 287320

7 years agoSplit ScriptParser::readVersionDeclaration.
Rui Ueyama [Fri, 18 Nov 2016 06:30:09 +0000 (06:30 +0000)]
Split ScriptParser::readVersionDeclaration.

readVersionDeclaration was to read anonymous version definition and
named version definition. Splitting it into two functions should
improve readability as the two cases are different enough.

I also changed a few helper functions to return values instead of
mutating given references.

llvm-svn: 287319

7 years agoUse consistent variable name.
Rui Ueyama [Fri, 18 Nov 2016 06:30:08 +0000 (06:30 +0000)]
Use consistent variable name.

llvm-svn: 287318

7 years agoAdd doxygen comments for lzcntintrin.h's intrinsics.
Ekaterina Romanova [Fri, 18 Nov 2016 06:26:01 +0000 (06:26 +0000)]
Add doxygen comments for lzcntintrin.h's intrinsics.

The doxygen comments are automatically generated based on Sony's intrinsics document.

I got an OK from Eric Christopher to commit doxygen comments without prior code
review upstream. This patch was internally reviewed by Charles Li.

llvm-svn: 287317

7 years ago[InstCombine][AVX-512] Teach InstCombineCalls how to handle the intrinsics for variab...
Craig Topper [Fri, 18 Nov 2016 06:04:33 +0000 (06:04 +0000)]
[InstCombine][AVX-512] Teach InstCombineCalls how to handle the intrinsics for variable shift with 16-bit elements.

This is a straightforward extension of the existing support for 32/64-bit element types. Just needed to add the additional instrinsics to the switches.

llvm-svn: 287316

7 years agoRemove an out param from ValueObject::GetValueForExpressionPath.
Zachary Turner [Fri, 18 Nov 2016 05:45:41 +0000 (05:45 +0000)]
Remove an out param from ValueObject::GetValueForExpressionPath.

This argument was only used in one place in the codebase, and
it was in a non-critical log statement and can be easily
substituted for an equally meaningful field instead.  The
payoff of computing this value is not worth the added
complexity.

llvm-svn: 287315

7 years agoSimplify MergeOutputSection.
Rui Ueyama [Fri, 18 Nov 2016 05:05:43 +0000 (05:05 +0000)]
Simplify MergeOutputSection.

MergeOutputSection class was a bit hard to use because it provdes
a series of finalize functions that have to be called in a right way
at a right time. It also intereacted with MergeInputSection, and the
logic was somewhat entangled between the two classes.

This patch simplifies it by providing only one finalize function.
Now, all you have to do is to call MergeOutputSection::finalize
when you have added all sections to the output section. Then, it
internally merges strings and initliazes StringPiece objects.
I think this is much easier to understand.

This patch also adds comments.

llvm-svn: 287314

7 years ago[AVX-512] Replace masked 16-bit element variable shift builtins with new unmasked...
Craig Topper [Fri, 18 Nov 2016 05:04:51 +0000 (05:04 +0000)]
[AVX-512] Replace masked 16-bit element variable shift builtins with new unmasked versions and selects.

llvm-svn: 287313

7 years ago[AVX-512] Replace masked 16-bit element variable shift intrinsics with new unmasked...
Craig Topper [Fri, 18 Nov 2016 05:04:44 +0000 (05:04 +0000)]
[AVX-512] Replace masked 16-bit element variable shift intrinsics with new unmasked versions and selects.

The same thing was done to 32-bit and 64-bit element sizes previously.

This will allow us to support these shuffls in InstCombineCalls along with the other variable shift intrinsics.

llvm-svn: 287312

7 years agoAMDGPU: Move redundant setting of inst properties
Matt Arsenault [Fri, 18 Nov 2016 04:42:59 +0000 (04:42 +0000)]
AMDGPU: Move redundant setting of inst properties

llvm-svn: 287311

7 years agoAMDGPU: Fix crash on illegal type for inlineasm
Matt Arsenault [Fri, 18 Nov 2016 04:42:57 +0000 (04:42 +0000)]
AMDGPU: Fix crash on illegal type for inlineasm

There are still crashes on non-MVT types in other
places.

llvm-svn: 287310

7 years ago[libc++] Fix preprocessor guard for overload declaration
Shoaib Meenai [Fri, 18 Nov 2016 04:31:09 +0000 (04:31 +0000)]
[libc++] Fix preprocessor guard for overload declaration

Fix a typo in the conditional.  Caught by going through list of removed
symbols when building with hidden visibility.

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

llvm-svn: 287309

7 years agoDelete more dead code in ValueObject.
Zachary Turner [Fri, 18 Nov 2016 04:30:47 +0000 (04:30 +0000)]
Delete more dead code in ValueObject.

Apparently these two enormous functions were dead.  Which is
good, since one was largely a copy of another function with
only a few minor tweaks.

llvm-svn: 287308

7 years agoRemove some dead code in ValueObject.
Zachary Turner [Fri, 18 Nov 2016 03:51:19 +0000 (03:51 +0000)]
Remove some dead code in ValueObject.

Originally I converted this entire function and all dependents
to use StringRef, but there were some test failures that
were tricky to track down, as this is a complicated function.
So I'm starting over, this time in smaller increments.

llvm-svn: 287307

7 years agoObject: Simplify; remove unnecessary use of unique_ptr.
Peter Collingbourne [Fri, 18 Nov 2016 03:20:36 +0000 (03:20 +0000)]
Object: Simplify; remove unnecessary use of unique_ptr.

llvm-svn: 287305

7 years agoMachineOperand: Add dump() method
Matthias Braun [Fri, 18 Nov 2016 02:40:40 +0000 (02:40 +0000)]
MachineOperand: Add dump() method

llvm-svn: 287302

7 years agoupdate Apples ABI list to ignore non-std symbols
Eric Fiselier [Fri, 18 Nov 2016 02:36:58 +0000 (02:36 +0000)]
update Apples ABI list to ignore non-std symbols

llvm-svn: 287301

7 years agoconvert bpf assembler to look like kernel verifier output
Alexei Starovoitov [Fri, 18 Nov 2016 02:32:35 +0000 (02:32 +0000)]
convert bpf assembler to look like kernel verifier output

since bpf instruction set was introduced people learned to
read and understand kernel verifier output whereas llvm asm
output stayed obscure and unknown. Convert llvm to emit
assembler text similar to kernel to avoid this discrepancy

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
llvm-svn: 287300

7 years ago[Docs][TableGen] Remove reference to tablegen supporting octal integers. It doesn...
Craig Topper [Fri, 18 Nov 2016 02:28:50 +0000 (02:28 +0000)]
[Docs][TableGen] Remove reference to tablegen supporting octal integers. It doesn't and hasn't for at least 9 years.

llvm-svn: 287299

7 years ago[AVX-512] Support FCOPYSIGN for v16f32 and v8f64
Craig Topper [Fri, 18 Nov 2016 02:25:34 +0000 (02:25 +0000)]
[AVX-512] Support FCOPYSIGN for v16f32 and v8f64

Summary:
This extends FCOPYSIGN support to 512-bit vectors.

I've also added tests to show what the 128-bit and 256-bit cases look like with broadcast loads.

Reviewers: delena, zvi, RKSimon, spatel

Subscribers: llvm-commits

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

llvm-svn: 287298

7 years ago[ELF] Rename an historical leftover, `Chunk` is now `InputSection`.
Davide Italiano [Fri, 18 Nov 2016 02:23:48 +0000 (02:23 +0000)]
[ELF] Rename an historical leftover, `Chunk` is now `InputSection`.

llvm-svn: 287297

7 years ago[ELF] Use std::for_each() and hoist common code in a lambda.
Davide Italiano [Fri, 18 Nov 2016 02:18:04 +0000 (02:18 +0000)]
[ELF] Use std::for_each() and hoist common code in a lambda.

llvm-svn: 287296

7 years agoAdd doxygen comments to fxsrintrin.h's intrinsics.
Ekaterina Romanova [Fri, 18 Nov 2016 01:42:01 +0000 (01:42 +0000)]
Add doxygen comments to fxsrintrin.h's intrinsics.

The doxygen comments are automatically generated based on Sony's intrinsics document.

I got an OK from Eric Christopher to commit doxygen comments without prior code
review upstream. This patch was internally reviewed by Paul Robinson and Charles Li.

llvm-svn: 287295

7 years agoChange sym_check to filter non-stdlib symbols.
Eric Fiselier [Fri, 18 Nov 2016 01:40:20 +0000 (01:40 +0000)]
Change sym_check to filter non-stdlib symbols.

Currently sym_check almost all names found in the binary, including those
which are defined in other libraries. This makes our ABI lists harder to maintain.

This patch adds a --only-stdlib-symbols option to sym_check which removes
all symbols which aren't possibly provided by libc++. It also re-generates
the linux ABI list after making this change.

llvm-svn: 287294

7 years agoAdd an option to disable libedit
Yichao Yu [Fri, 18 Nov 2016 01:25:49 +0000 (01:25 +0000)]
Add an option to disable libedit

Summary: This should provide the function similar to `--disable-libedit` with the autotools build system, which seems to be missing from the commit (r200595) that adds this.

Reviewers: pcc, beanz

Subscribers: mgorny, llvm-commits

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

llvm-svn: 287293

7 years ago[CUDA] Attempt to fix test failures in cuda-macos-includes.cu.
Justin Lebar [Fri, 18 Nov 2016 01:11:32 +0000 (01:11 +0000)]
[CUDA] Attempt to fix test failures in cuda-macos-includes.cu.

Run clang -cc1 -E instead of -S, in an attempt to make this test work
cross-platform.

llvm-svn: 287292

7 years agoForward ns_consumed delegate arguments with a move.
John McCall [Fri, 18 Nov 2016 01:08:24 +0000 (01:08 +0000)]
Forward ns_consumed delegate arguments with a move.

StartFunction enters a release cleanup for ns_consumed arguments in
ARC, so we need to balance that somehow.  We could teach StartFunction
that it's emitting a delegating function, so that the cleanup is
unnecessary, but that would be invasive and somewhat fraught.  We could
balance the consumed argument with an extra retain, but clearing the
original variable should be easier to optimize and avoid some extra work
at -O0.  And there shouldn't be any difference as long as nothing else
uses the argument, which should always be true for the places we emit
delegate arguments.

Fixes PR 27887.

llvm-svn: 287291

7 years ago[CUDA] Update docs to indicate that MacOS is now supported.
Justin Lebar [Fri, 18 Nov 2016 00:42:00 +0000 (00:42 +0000)]
[CUDA] Update docs to indicate that MacOS is now supported.

llvm-svn: 287290

7 years ago[CUDA] Update docs; CUDA 8.0 is supported as of a while ago.
Justin Lebar [Fri, 18 Nov 2016 00:41:40 +0000 (00:41 +0000)]
[CUDA] Update docs; CUDA 8.0 is supported as of a while ago.

llvm-svn: 287289

7 years ago[CUDA] Wrapper header changes necessary to support MacOS.
Justin Lebar [Fri, 18 Nov 2016 00:41:35 +0000 (00:41 +0000)]
[CUDA] Wrapper header changes necessary to support MacOS.

Reviewers: tra

Subscribers: cfe-commits

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

llvm-svn: 287288

7 years ago[CUDA] Use the right section and constant names for fatbins when compiling for macos.
Justin Lebar [Fri, 18 Nov 2016 00:41:31 +0000 (00:41 +0000)]
[CUDA] Use the right section and constant names for fatbins when compiling for macos.

Reviewers: tra

Subscribers: cfe-commits

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

llvm-svn: 287287

7 years ago[CUDA] Initialize our header search using the host triple.
Justin Lebar [Fri, 18 Nov 2016 00:41:27 +0000 (00:41 +0000)]
[CUDA] Initialize our header search using the host triple.

Summary:
This used to work because system headers are found in a (somewhat)
predictable set of locations on Linux.  But this is not the case on
MacOS; without this change, we don't look in the right places for our
headers when doing device-side compilation on Mac.

Reviewers: tra

Subscribers: cfe-commits

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

llvm-svn: 287286

7 years ago[CUDA] Driver changes to support CUDA compilation on MacOS.
Justin Lebar [Fri, 18 Nov 2016 00:41:22 +0000 (00:41 +0000)]
[CUDA] Driver changes to support CUDA compilation on MacOS.

Summary:
Compiling CUDA device code requires us to know the host toolchain,
because CUDA device-side compiles pull in e.g. host headers.

When we only supported Linux compilation, this worked because
CudaToolChain, which is responsible for device-side CUDA compilation,
inherited from the Linux toolchain.  But in order to support MacOS,
CudaToolChain needs to take a HostToolChain pointer.

Because a CUDA toolchain now requires a host TC, we no longer will
create a CUDA toolchain from Driver::getToolChain -- you have to go
through CreateOffloadingDeviceToolChains.  I am *pretty* sure this is
correct, and that previously any attempt to create a CUDA toolchain
through getToolChain() would eventually have resulted in us throwing
"error: unsupported use of NVPTX for host compilation".

In any case hacking getToolChain to create a CUDA+host toolchain would
be wrong, because a Driver can be reused for multiple compilations,
potentially with different host TCs, and getToolChain will cache the
result, causing us to potentially use a stale host TC.

So that's the main change in this patch.

In addition, we have to pull CudaInstallationDetector out of Generic_GCC
and into a top-level class.  It's now used by the Generic_GCC and MachO
toolchains.

Reviewers: tra

Subscribers: rryan, hfinkel, sfantao

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

llvm-svn: 287285

7 years agoAdd missing REQUIRES.
Rafael Espindola [Fri, 18 Nov 2016 00:11:12 +0000 (00:11 +0000)]
Add missing REQUIRES.

llvm-svn: 287284