platform/upstream/llvm.git
7 years agoMark test as unsupported in C++03
Eric Fiselier [Sat, 19 Nov 2016 01:38:00 +0000 (01:38 +0000)]
Mark test as unsupported in C++03

llvm-svn: 287417

7 years ago[AVR] Remove a bunch of unused variables
Dylan McKay [Sat, 19 Nov 2016 01:33:42 +0000 (01:33 +0000)]
[AVR] Remove a bunch of unused variables

llvm-svn: 287416

7 years ago[CMake] Apply sandbox profile to target not directory
Chris Bieneman [Sat, 19 Nov 2016 01:32:09 +0000 (01:32 +0000)]
[CMake] Apply sandbox profile to target not directory

When LLVM_DEPENDENCY_DEBUGGING=On we should apply the sandbox only on the target, not the directory. This is important for directories that create more than one target, or for nested directories.

llvm-svn: 287415

7 years ago[AVR] Remove a variable which was unused in release mode
Dylan McKay [Sat, 19 Nov 2016 01:14:44 +0000 (01:14 +0000)]
[AVR] Remove a variable which was unused in release mode

In release mode where assertions are not enabled, this caused an 'unused
variable' warning.

llvm-svn: 287414

7 years ago[libcxx] Implement locale.h to fix modules build
Eric Fiselier [Sat, 19 Nov 2016 01:14:15 +0000 (01:14 +0000)]
[libcxx] Implement locale.h to fix modules build

Summary:
Because `locale.h` isn't part of the libc++ modules the class definitions it provides are exported as part of `__locale` (since it happens to be build first). This breaks `<clocale>` which exports `std::lconv` without including `<__locale>`.

This patch implements `locale.h` to fix this issue, it also adds support for testing libc++ with modules.

Reviewers: mclow.lists, rsmith, EricWF

Subscribers: cfe-commits

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

llvm-svn: 287413

7 years agoFix some accidental Prints of StringRefs that snuck in.
Zachary Turner [Sat, 19 Nov 2016 00:50:29 +0000 (00:50 +0000)]
Fix some accidental Prints of StringRefs that snuck in.

llvm-svn: 287412

7 years agoSema: As of MSVC 2015, a user-declared move operation causes the deletion of both...
Peter Collingbourne [Sat, 19 Nov 2016 00:30:56 +0000 (00:30 +0000)]
Sema: As of MSVC 2015, a user-declared move operation causes the deletion of both copy operations.

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

llvm-svn: 287411

7 years ago[Sema] Don't allow applying address-of operator to a call to a function
Akira Hatanaka [Sat, 19 Nov 2016 00:13:03 +0000 (00:13 +0000)]
[Sema] Don't allow applying address-of operator to a call to a function
with __unknown_anytype return type.

When the following code is compiled, Sema infers that the type of
__unknown_anytype is double:

extern __unknown_anytype func();
double *d = (double*)&func();

This triggers an assert in CodeGenFunction::EmitCallExprLValue because
it doesn't expect to see a call to a function with a non-reference
scalar return type.

This commit prevents the assert by making VisitUnaryAddrOf error out if
the address-of operator is applied to a call to a function with
__unknown_anytype return type.

rdar://problem/20287610

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

llvm-svn: 287410

7 years agoFix some build errors.
Zachary Turner [Fri, 18 Nov 2016 23:32:37 +0000 (23:32 +0000)]
Fix some build errors.

llvm-svn: 287409

7 years ago[CMake] NFC. Updating CMake dependency specifications
Chris Bieneman [Fri, 18 Nov 2016 23:31:53 +0000 (23:31 +0000)]
[CMake] NFC. Updating CMake dependency specifications

This patch updates a bunch of places where add_dependencies was being explicitly called to add dependencies on intrinsics_gen to instead use the DEPENDS named parameter. This cleanup is needed for a patch I'm working on to add a dependency debugging mode to the build system.

llvm-svn: 287408

7 years ago[CMake] clang depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:31:16 +0000 (23:31 +0000)]
[CMake] clang depends on intrinsics_gen

cc1_main.cpp has the following include chain:

llvm/LinkAllPasses.h
llvm/Analysis/AliasSetTracker.h
llvm/Analysis/AliasAnalysis.h
llvm/IR/CallSite.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means clang needs to depend on intrinsics_gen.

llvm-svn: 287407

7 years ago[CMake] clang-offload-bundler depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:31:14 +0000 (23:31 +0000)]
[CMake] clang-offload-bundler depends on intrinsics_gen

ClangOffloadBundler.cpp has the following include chain:

llvm/Bitcode/BitcodeWriter.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means clang-offload-bundler needs to depend on intrinsics_gen.

llvm-svn: 287406

7 years ago[CMake] verify-uselistorder depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:30:58 +0000 (23:30 +0000)]
[CMake] verify-uselistorder depends on intrinsics_gen

verify-uselistorder.cpp has the following include chain:

llvm/Bitcode/BitcodeReader.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means verify-uselistorder needs to depend on intrinsics_gen.

llvm-svn: 287405

7 years ago[CMake] sanstats depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:30:39 +0000 (23:30 +0000)]
[CMake] sanstats depends on intrinsics_gen

sanstats.cpp has the following include chain:

llvm/Transforms/Utils/SanitizerStats.h
llvm/IR/IRBuilder.h
llvm/IR/ConstantFolder.h
llvm/IR/InstrTypes.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means sanstats needs to depend on intrinsics_gen.

llvm-svn: 287404

7 years ago[lit] When setting SDKROOT on Darwin, use '--sdk macosx' to find the right SDK path.
Kuba Mracek [Fri, 18 Nov 2016 23:25:57 +0000 (23:25 +0000)]
[lit] When setting SDKROOT on Darwin, use '--sdk macosx' to find the right SDK path.

This will make sure that we find an actual path in case you have Command Line Tools installed.

llvm-svn: 287403

7 years ago[CMake] bugpoint depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:25:30 +0000 (23:25 +0000)]
[CMake] bugpoint depends on intrinsics_gen

CrashDebugger.cpp has the following include chain:

llvm/Analysis/TargetTransformInfo.h
llvm/IR/IntrinsicInst.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means bugpoint needs to depend on intrinsics_gen.

llvm-svn: 287402

7 years agoConvert CommandHistory functions to StringRef.
Zachary Turner [Fri, 18 Nov 2016 23:22:42 +0000 (23:22 +0000)]
Convert CommandHistory functions to StringRef.

llvm-svn: 287401

7 years ago[InstCombine] add tests to show likely unwanted select widening; NFC
Sanjay Patel [Fri, 18 Nov 2016 23:22:00 +0000 (23:22 +0000)]
[InstCombine] add tests to show likely unwanted select widening; NFC

This is a prerequisite patch for D26556:
https://reviews.llvm.org/D26556

...because there was no direct coverage for these folds (which in some cases are adding instructions).

llvm-svn: 287400

7 years ago[CMake] llvm-split depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:20:38 +0000 (23:20 +0000)]
[CMake] llvm-split depends on intrinsics_gen

llvm-split.cpp has the following include chain:

llvm/Bitcode/BitcodeWriter.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means llvm-split needs to depend on intrinsics_gen.

llvm-svn: 287399

7 years ago[CMake] llvm-lto depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:20:35 +0000 (23:20 +0000)]
[CMake] llvm-lto depends on intrinsics_gen

llvm-lto.cpp has the following include chain:

llvm/Bitcode/BitcodeReader.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means llvm-lto needs to depend on intrinsics_gen.

llvm-svn: 287398

7 years agoRemoving myself from CODE_OWNERS, and distributing those duties among other members...
Enrico Granata [Fri, 18 Nov 2016 23:18:11 +0000 (23:18 +0000)]
Removing myself from CODE_OWNERS, and distributing those duties among other members of the community

That's All, Folks

llvm-svn: 287397

7 years ago[CMake] llvm-ar depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:04:27 +0000 (23:04 +0000)]
[CMake] llvm-ar depends on intrinsics_gen

llvm-ar.cpp has the following include chain:

llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means llvm-ar needs to depend on intrinsics_gen.

llvm-svn: 287395

7 years ago[CMake] llvm-profdata depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:04:15 +0000 (23:04 +0000)]
[CMake] llvm-profdata depends on intrinsics_gen

llvm-profdata.cpp has the following include chain:

llvm/ProfileData/SampleProfReader.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means llvm-profdata needs to depend on intrinsics_gen.

llvm-svn: 287394

7 years ago[CMake] LTO depends on intrinsics_gen
Chris Bieneman [Fri, 18 Nov 2016 23:03:51 +0000 (23:03 +0000)]
[CMake] LTO depends on intrinsics_gen

lto.cpp has the following include chain:

llvm/Bitcode/BitcodeReader.h
llvm/IR/ModuleSummaryIndex.h
llvm/IR/Module.h
llvm/IR/Function.h
llvm/IR/Argument.h
llvm/IR/Attributes.h
llvm/IR/Attributes.gen

This means LTO needs to depend on intrinsics_gen.

llvm-svn: 287393

7 years ago[libcxx] [test] D26812: In random tests, use real static_asserts and silence a warning.
Stephan T. Lavavej [Fri, 18 Nov 2016 22:45:32 +0000 (22:45 +0000)]
[libcxx] [test] D26812: In random tests, use real static_asserts and silence a warning.

In C++11 mode and newer, use real static_asserts.
In C++03 mode, min() and max() aren't constexpr, so use plain asserts.

One test triggers MSVC's warning C4310 "cast truncates constant value".
The code is valid, and yet the warning is valid, so I'm silencing it
through push-disable-pop.

llvm-svn: 287391

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