platform/upstream/llvm.git
8 years agoAdd a description for the PatchableFunction pass; NFC
Sanjoy Das [Tue, 19 Apr 2016 06:25:02 +0000 (06:25 +0000)]
Add a description for the PatchableFunction pass; NFC

llvm-svn: 266721

8 years agoDisable the PatchableFunction pass for NVPTX & Wasm
Sanjoy Das [Tue, 19 Apr 2016 06:24:58 +0000 (06:24 +0000)]
Disable the PatchableFunction pass for NVPTX & Wasm

PatchableFunction requires AllVRegsAllocated that these targets don't
provide.

llvm-svn: 266720

8 years agoWarn if function or variable cannot be implicitly instantiated
Serge Pavlov [Tue, 19 Apr 2016 06:19:52 +0000 (06:19 +0000)]
Warn if function or variable cannot be implicitly instantiated

With this patch compiler emits warning if it tries to make implicit instantiation
of a template but cannot find the template definition. The warning can be suppressed
by explicit instantiation declaration or by command line options
-Wundefined-var-template and -Wundefined-func-template. The implementation follows
the discussion of http://reviews.llvm.org/D12326.

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

llvm-svn: 266719

8 years agoCorrect IDF calculator for ReverseIDF
Daniel Berlin [Tue, 19 Apr 2016 06:13:28 +0000 (06:13 +0000)]
Correct IDF calculator for ReverseIDF

Summary:
Need to use predecessors for reverse graph, successors for forward graph.
succ_iterator/pred_iterator are not compatible, this patch is all the work necessary to work around that (which is what everywhere else does).  Not sure if there is a better way, so cc'ing some random folks to take a gander :)

Reviewers: dblaikie, qcolombet, echristo

Subscribers: llvm-commits

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

llvm-svn: 266718

8 years ago[Orc] Disable RPC callST unit test until the S390 failures encountered during
Lang Hames [Tue, 19 Apr 2016 06:01:51 +0000 (06:01 +0000)]
[Orc] Disable RPC callST unit test until the S390 failures encountered during
http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/3459 can be
debugged/fixed.

llvm-svn: 266717

8 years ago[LSAN] Fix test swapcontext.cc on MIPS
Sagar Thakur [Tue, 19 Apr 2016 06:00:35 +0000 (06:00 +0000)]
[LSAN] Fix test swapcontext.cc on MIPS

Summary: There is no frame validity check in the slow unwinder like there is in the fast unwinder due to which lsan reports a leak even for heap allocated coroutine in the test swapcontext.cc. Since mips/linux uses slow unwindwer instead of fast unwinder, the test fails for mips/linux. Therefore adding the checks before unwinding fixes the test for mips/linux.

Reviewers: samsonov, earthdok, kcc
Subscribers: llvm-commits, mohit.bhakkad, jaydeep
Differential: http://reviews.llvm.org/D18690
llvm-svn: 266716

8 years agoIntroduce a "patchable-function" function attribute
Sanjoy Das [Tue, 19 Apr 2016 05:24:47 +0000 (05:24 +0000)]
Introduce a "patchable-function" function attribute

Summary:
The `"patchable-function"` attribute can be used by an LLVM client to
influence LLVM's code generation in ways that makes the generated code
easily patchable at runtime (for instance, to redirect control).
Right now only one patchability scheme is supported,
`"prologue-short-redirect"`, but this can be expanded in the future.

Reviewers: joker.eph, rnk, echristo, dberris

Subscribers: joker.eph, echristo, mcrosier, llvm-commits

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

llvm-svn: 266715

8 years agoLTO: Adapt to LLVM API changes in r266713
Duncan P. N. Exon Smith [Tue, 19 Apr 2016 04:57:40 +0000 (04:57 +0000)]
LTO: Adapt to LLVM API changes in r266713

llvm-svn: 266714

8 years agoIR: Rename API for enabling ODR uniquing of DITypes, NFC
Duncan P. N. Exon Smith [Tue, 19 Apr 2016 04:55:25 +0000 (04:55 +0000)]
IR: Rename API for enabling ODR uniquing of DITypes, NFC

As per David's review, rename everything in the new API for ODR type
uniquing of debug info.

    ensureDITypeMap  => enableDebugTypeODRUniquing
    destroyDITypeMap => disableDebugTypeODRUniquing
    hasDITypeMap     => isODRUniquingDebugTypes

llvm-svn: 266713

8 years ago[ORC] Whitespace.
Lang Hames [Tue, 19 Apr 2016 04:44:21 +0000 (04:44 +0000)]
[ORC] Whitespace.

llvm-svn: 266712

8 years ago[Orc] Tidy up some of the RPC primitives, add a unit-test for the callST
Lang Hames [Tue, 19 Apr 2016 04:43:09 +0000 (04:43 +0000)]
[Orc] Tidy up some of the RPC primitives, add a unit-test for the callST
(synchronous call) primitive.

llvm-svn: 266711

8 years agotest infra cleanup: convert test_runner lib into package
Todd Fiala [Tue, 19 Apr 2016 04:20:35 +0000 (04:20 +0000)]
test infra cleanup: convert test_runner lib into package

Also does the following:
* adopts PEP8 naming convention for OptionalWith class (now
  optional_with).
* moves test_runner/lldb_utils.py to lldbsuite/support/optional_with.py.
* packages tests in a subpackage of test_runner per recommendations in
  http://the-hitchhikers-guide-to-packaging.readthedocs.org/en/latest/creation.html

Tests can be run from within pacakges/Python/lldbsuite/test via this
command:

  python -m unittest discover test_runner

The primary cleanup this allows is avoiding the need to muck with the
PYTHONPATH variable from within the source files.  This also aids some
of the static code checkers as they don't need to run code to determine
the proper python path.

llvm-svn: 266710

8 years agoBitcodeWriter: Break recursion when enumerating Metadata, almost NFC
Duncan P. N. Exon Smith [Tue, 19 Apr 2016 03:46:51 +0000 (03:46 +0000)]
BitcodeWriter: Break recursion when enumerating Metadata, almost NFC

Use a worklist instead of recursing through MDNode operands in
ValueEnumerator.  The actual record output order has changed slightly,
but otherwise there's no functionality change.

I had to update test/Bitcode/metadata-function-blocks.ll.  I renumbered
nodes so they continue to match the implicit record ids.

llvm-svn: 266709

8 years ago[CUDA] Add --no-cuda-noopt-debug, which disables --cuda-noopt-debug.
Justin Lebar [Tue, 19 Apr 2016 02:27:11 +0000 (02:27 +0000)]
[CUDA] Add --no-cuda-noopt-debug, which disables --cuda-noopt-debug.

Reviewers: tra

Subscribers: cfe-commits, jhen

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

llvm-svn: 266708

8 years ago[CUDA] Add --cuda-compile-host-device, which overrides --cuda-host-only and --cuda...
Justin Lebar [Tue, 19 Apr 2016 02:27:07 +0000 (02:27 +0000)]
[CUDA] Add --cuda-compile-host-device, which overrides --cuda-host-only and --cuda-device-only.

Summary:
This completes the flag's tristate, letting you override it at will on
the command line.

Reviewers: tra

Subscribers: cfe-commits, jhen

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

llvm-svn: 266707

8 years agoAdd a test case to check a member's default constructor is also run.
Akira Hatanaka [Tue, 19 Apr 2016 02:21:47 +0000 (02:21 +0000)]
Add a test case to check a member's default constructor is also run.

This is a follow-up to r266645.

llvm-svn: 266706

8 years agovim: add swiftcc keyword
Saleem Abdulrasool [Tue, 19 Apr 2016 02:04:01 +0000 (02:04 +0000)]
vim: add swiftcc keyword

Update the syntax highlighting for SVN r265480.

llvm-svn: 266705

8 years agoCOFF: Support /manifestinput command line option.
Rui Ueyama [Tue, 19 Apr 2016 01:21:58 +0000 (01:21 +0000)]
COFF: Support /manifestinput command line option.

Manifest file is a separate or embedded XML file having metadata
of an executable. As it is XML, it can contain various types of
information. Probably the most popular one is to request escalated
priviledges.

Usually the linker creates an XML file and embed that file into
an executable. However, there's a way to supply an XML file from
command line. /manifestniput is it.

Apparently it is over-designed here, but if you supply two or more
manifest files, then the linker needs to merge the files into a
single XML file. A good news is that we don't need to do that ourselves.
MT.exe command can do that, so we call the command from the linker
in this patch.

llvm-svn: 266704

8 years agoMake tuples constructors conditionally EXPLICIT. See N4387
Eric Fiselier [Tue, 19 Apr 2016 01:19:25 +0000 (01:19 +0000)]
Make tuples constructors conditionally EXPLICIT. See N4387

llvm-svn: 266703

8 years agoFix Windows build.
Chaoren Lin [Tue, 19 Apr 2016 01:09:37 +0000 (01:09 +0000)]
Fix Windows build.

llvm-svn: 266702

8 years ago[lanai] Set boolean contentss to ZeroOrOneBooleanContent.
Jacques Pienaar [Tue, 19 Apr 2016 00:26:42 +0000 (00:26 +0000)]
[lanai] Set boolean contentss to ZeroOrOneBooleanContent.

llvm-svn: 266701

8 years agoIncrease SmallVector size for ConstantUniqueMap::getHashValue() (NFC)
Mehdi Amini [Tue, 19 Apr 2016 00:17:55 +0000 (00:17 +0000)]
Increase SmallVector size for ConstantUniqueMap::getHashValue() (NFC)

This remove totally any malloc from this function on my
profile (from 155k before).

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266700

8 years agoPort DemandedBits to the new pass manager.
Michael Kuperstein [Mon, 18 Apr 2016 23:55:01 +0000 (23:55 +0000)]
Port DemandedBits to the new pass manager.

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

llvm-svn: 266699

8 years ago[ObjC++] Fix crash when emitting debug info for a block member capturing this.
Adrian Prantl [Mon, 18 Apr 2016 23:48:16 +0000 (23:48 +0000)]
[ObjC++] Fix crash when emitting debug info for a block member capturing this.

rdar://problem/23871824

llvm-svn: 266698

8 years agoAdd missing #include, found by modules selfhost.
Richard Smith [Mon, 18 Apr 2016 23:27:25 +0000 (23:27 +0000)]
Add missing #include, found by modules selfhost.

llvm-svn: 266697

8 years agoAdd missing header, found by modules selfhost.
Richard Smith [Mon, 18 Apr 2016 23:24:39 +0000 (23:24 +0000)]
Add missing header, found by modules selfhost.

llvm-svn: 266696

8 years agoMark -Xclang as being a compilation-only option so that the clang driver
Richard Smith [Mon, 18 Apr 2016 23:12:59 +0000 (23:12 +0000)]
Mark -Xclang as being a compilation-only option so that the clang driver
doesn't warn if it's passed to a link action. This matches the behavior for
most other compilation-only options (including things like -f flags), and is
necessary to suppress warnings on systems like cmake that always pass all
compile flags to the linker.

llvm-svn: 266695

8 years ago[libFuzzer] try to print correct time in seconds when reporting a timeout. Don't...
Kostya Serebryany [Mon, 18 Apr 2016 22:50:39 +0000 (22:50 +0000)]
[libFuzzer] try to print correct time in seconds when reporting a timeout. Don't report timeouts while still loading the corpus.

llvm-svn: 266693

8 years ago[DWARF] Force a linkage_name on an inlined subprogram's abstract origin.
Paul Robinson [Mon, 18 Apr 2016 22:41:41 +0000 (22:41 +0000)]
[DWARF] Force a linkage_name on an inlined subprogram's abstract origin.

When we suppress linkage names, for a non-inlined subprogram the name
can still be found in the object-file symbol table, because we have
the code address of the subprogram.  This is not necessarily the case
for an inlined subprogram, so we still want to emit the linkage name
in the DWARF.  Put this on the abstract-origin DIE because it's common
to all inlined instances.

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

llvm-svn: 266692

8 years agoRemove old DIBuilder::createFunction overload used only by dragonegg, which does...
Reid Kleckner [Mon, 18 Apr 2016 22:38:52 +0000 (22:38 +0000)]
Remove old DIBuilder::createFunction overload used only by dragonegg, which does not currently build

NFC

llvm-svn: 266691

8 years ago[msan] Don't hardcode 4kiB page size in msan_test.cc.
Marcin Koscielnicki [Mon, 18 Apr 2016 22:21:02 +0000 (22:21 +0000)]
[msan] Don't hardcode 4kiB page size in msan_test.cc.

This breaks the valloc test on PowerPC, which has 64kiB pages.  Since
getting page size portably is nontrivial, and there's already a function
for that in __sanitizer, just use it.  Unfortunately, sanitizer_common.h
conflicts with the interface headers inclucded by msan_test.cc (and a few
of its own macros), so we have to declare it manually.

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

llvm-svn: 266688

8 years ago[modules] Remove some more unnecessary forwarding functions.
Richard Smith [Mon, 18 Apr 2016 21:54:58 +0000 (21:54 +0000)]
[modules] Remove some more unnecessary forwarding functions.

llvm-svn: 266687

8 years agoAdd debugging to the cache pruning
Mehdi Amini [Mon, 18 Apr 2016 21:54:00 +0000 (21:54 +0000)]
Add debugging to the cache pruning

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266686

8 years agoCachePruning: fix typo, we accumulate file size here, not time
Mehdi Amini [Mon, 18 Apr 2016 21:53:55 +0000 (21:53 +0000)]
CachePruning: fix typo, we accumulate file size here, not time

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266685

8 years agoARM: use a pseudo-instruction for cmpxchg at -O0.
Tim Northover [Mon, 18 Apr 2016 21:48:55 +0000 (21:48 +0000)]
ARM: use a pseudo-instruction for cmpxchg at -O0.

The fast register-allocator cannot cope with inter-block dependencies without
spilling. This is fine for ldrex/strex loops coming from atomicrmw instructions
where any value produced within a block is dead by the end, but not for
cmpxchg. So we lower a cmpxchg at -O0 via a pseudo-inst that gets expanded
after regalloc.

Fortunately this is at -O0 so we don't have to care about performance. This
simplifies the various axes of expansion considerably: we assume a strong
seq_cst operation and ensure ordering via the always-present DMB instructions
rather than v8 acquire/release instructions.

Should fix the 32-bit part of PR25526.

llvm-svn: 266679

8 years agoFix trip count calculation for parallel loops in runtime
Jonathan Peyton [Mon, 18 Apr 2016 21:38:29 +0000 (21:38 +0000)]
Fix trip count calculation for parallel loops in runtime

The trip count calculation was incorrect for loops with large bounds. For example,
for(int i=-2,000,000,000; i < 2,000,000,000; i+=50000000), the trip count
calculation had overflow (trying to calculate 2,000,000,000 + 2,000,000,000 with
signed integers) and wasn't giving the right value. This patch fixes this error
in the runtime by using unsigned integers instead. There is still a bug in the
clang compiler component because it warns that there is overflow in the
test case file when there isn't. This error isn't there for the Intel Compiler.
So for now, the test case is designated as XFAIL.

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

llvm-svn: 266677

8 years agoAdditional test for use-after-scope
Kostya Serebryany [Mon, 18 Apr 2016 21:36:34 +0000 (21:36 +0000)]
Additional test for use-after-scope

Summary: Test that asan detects access to the dead variable captured by lambda.

Reviewers: aizatsky, kcc

Subscribers: llvm-commits

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

llvm-svn: 266676

8 years agoRuntime support for untied tasks
Jonathan Peyton [Mon, 18 Apr 2016 21:35:14 +0000 (21:35 +0000)]
Runtime support for untied tasks

Introduced a counter of parts of an untied task submitted for execution. The
counter controls whether all parts of the task are already finished. The
compiler should generate re-submission of partially executed untied task by
itself before exiting of each task part except for the lexical last part.

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

llvm-svn: 266675

8 years agoFix for pthread_setspecific (TLS and shutdown) problem
Jonathan Peyton [Mon, 18 Apr 2016 21:33:01 +0000 (21:33 +0000)]
Fix for pthread_setspecific (TLS and shutdown) problem

Some codes that use TLS fail intermittently because one thread tries to write
TLS values after the TLS key has been destroyed by another thread. This happens
when one thread executes library shutdown (and destroys TLS keys), while another
thread starts to execute the TLS key destructor routine. Before this change, the
kmp_init_runtime flag was checked before calling pthread_* TLS functions, but
this flag is set to FALSE later than the destruction of the TLS keys, which
leads to failure. The fix is to check kmp_init_gtid instead, as this flag is
unset *before* the destruction of TLS keys.

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

llvm-svn: 266674

8 years ago[sanitizer-coverage] make sure coverage flags are not passed to clang if the driver...
Kostya Serebryany [Mon, 18 Apr 2016 21:30:17 +0000 (21:30 +0000)]
[sanitizer-coverage] make sure coverage flags are not passed to clang if the driver thinks they are unused

llvm-svn: 266673

8 years ago[sanitizer-coverage] better docs for -fsanitize-coverage=trace-bb
Kostya Serebryany [Mon, 18 Apr 2016 21:28:37 +0000 (21:28 +0000)]
[sanitizer-coverage] better docs for -fsanitize-coverage=trace-bb

llvm-svn: 266672

8 years ago[Hexagon] V60/HVX builtin definitions for clang
Krzysztof Parzyszek [Mon, 18 Apr 2016 21:27:59 +0000 (21:27 +0000)]
[Hexagon] V60/HVX builtin definitions for clang

The builtins already exist in LLVM, but are not exposed to the C/C++
programmers. This patch adds all the information about the builtins
needed for clang, as well as a test for all available intrinsics.

llvm-svn: 266671

8 years ago[libFuzzer] warn if the corpus is empty
Kostya Serebryany [Mon, 18 Apr 2016 21:14:11 +0000 (21:14 +0000)]
[libFuzzer] warn if the corpus is empty

llvm-svn: 266670

8 years ago[X86][SSE] Test case for PR2585
Simon Pilgrim [Mon, 18 Apr 2016 21:07:49 +0000 (21:07 +0000)]
[X86][SSE] Test case for PR2585

llvm-svn: 266669

8 years agoRename LocationNode -> SectionsCommand.
Rui Ueyama [Mon, 18 Apr 2016 21:00:45 +0000 (21:00 +0000)]
Rename LocationNode -> SectionsCommand.

They are called sections-command in the doc, so it is nice to keep
it consistent with it.
https://sourceware.org/binutils/docs/ld/SECTIONS.html#SECTIONS

llvm-svn: 266668

8 years agoRemove redundant curly braces.
Rui Ueyama [Mon, 18 Apr 2016 21:00:43 +0000 (21:00 +0000)]
Remove redundant curly braces.

llvm-svn: 266667

8 years agoRefactor LinkerScript::assignAddresses. NFC.
Rui Ueyama [Mon, 18 Apr 2016 21:00:40 +0000 (21:00 +0000)]
Refactor LinkerScript::assignAddresses. NFC.

llvm-svn: 266666

8 years ago[Orc] Explicitly delete RPC::SequenceNumberManager's copy-constructor and
Lang Hames [Mon, 18 Apr 2016 20:56:22 +0000 (20:56 +0000)]
[Orc] Explicitly delete RPC::SequenceNumberManager's copy-constructor and
copy-assignment operator.

MSVC is trying to synthesize these and failing. Hopefully explicitly deleting
them will help.

llvm-svn: 266665

8 years agoensure lldbinline remembers .py extension
Todd Fiala [Mon, 18 Apr 2016 20:26:56 +0000 (20:26 +0000)]
ensure lldbinline remembers .py extension

This ensure lldbinline.test_file paths are tracked as .py
files rather than .pyc files.

Also, this change adds an assert to the test infrastructure
if a filename that is not ending in .py is attempted to be
added to the test events infrastructure where we track test
results.

See:
http://reviews.llvm.org/D19215

Earlier revision reviewed by:
Pavel Labath

llvm-svn: 266664

8 years ago[Orc] Re-commit r266581 with fixes for MSVC, and format cleanups.
Lang Hames [Mon, 18 Apr 2016 19:55:43 +0000 (19:55 +0000)]
[Orc] Re-commit r266581 with fixes for MSVC, and format cleanups.

Fixes:

(1) Removes constexpr (unsupported in MSVC)
(2) Move constructors (remove explicitly defaulted ones)
(3) <future> - Add warning suppression for MSVC.

llvm-svn: 266663

8 years ago[X86][AVX] Added extra memory folding tests for D19228
Simon Pilgrim [Mon, 18 Apr 2016 19:48:16 +0000 (19:48 +0000)]
[X86][AVX] Added extra memory folding tests for D19228

llvm-svn: 266662

8 years agotry to make comments more meaningful; NFC
Sanjay Patel [Mon, 18 Apr 2016 19:11:57 +0000 (19:11 +0000)]
try to make comments more meaningful; NFC

Retry r266541 without the range-based-for-loop-change that was wrong.

llvm-svn: 266658

8 years ago[ValueTracking] Correct lit test comments. NFC.
Chad Rosier [Mon, 18 Apr 2016 19:11:45 +0000 (19:11 +0000)]
[ValueTracking] Correct lit test comments. NFC.

llvm-svn: 266657

8 years agoFix shared build of LLVMPasses.
Marcin Koscielnicki [Mon, 18 Apr 2016 19:04:19 +0000 (19:04 +0000)]
Fix shared build of LLVMPasses.

It's missing a dependency on Instrumentation (needed for
llvm::InstrProfiling::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&))

llvm-svn: 266656

8 years agoAdd missing dependency.
Rafael Espindola [Mon, 18 Apr 2016 19:03:36 +0000 (19:03 +0000)]
Add missing dependency.

llvm-svn: 266655

8 years ago[BPI] Consider deoptimize calls as "unreachable"
Sanjoy Das [Mon, 18 Apr 2016 19:01:28 +0000 (19:01 +0000)]
[BPI] Consider deoptimize calls as "unreachable"

Summary:
Calls to @llvm.experimental.deoptimize are expected to "never execute",
so optimize them as such.

Reviewers: chandlerc

Subscribers: junbuml, mcrosier, llvm-commits

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

llvm-svn: 266654

8 years agolli: avoid global variables, use a local unique_ptr instead
Mehdi Amini [Mon, 18 Apr 2016 18:52:39 +0000 (18:52 +0000)]
lli: avoid global variables, use a local unique_ptr instead

There was issue with order of destruction in some cases.

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266652

8 years ago[libFuzzer] add fresh openssl trophies
Kostya Serebryany [Mon, 18 Apr 2016 18:41:25 +0000 (18:41 +0000)]
[libFuzzer] add fresh openssl trophies

llvm-svn: 266649

8 years agoBlock: Fix a crash when we have type attributes or qualifiers with omitted
Manman Ren [Mon, 18 Apr 2016 18:40:51 +0000 (18:40 +0000)]
Block: Fix a crash when we have type attributes or qualifiers with omitted
return type.

Emit a warning instead of crashing in IR generation.

rdar://22762981

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

llvm-svn: 266648

8 years ago[Hexagon] Define macros __HVX__ and __HVXDBL__ when appropriate
Krzysztof Parzyszek [Mon, 18 Apr 2016 18:38:11 +0000 (18:38 +0000)]
[Hexagon] Define macros __HVX__ and __HVXDBL__ when appropriate

llvm-svn: 266647

8 years ago[MSan] [PowerPC] Add loadable library name for testing.
Marcin Koscielnicki [Mon, 18 Apr 2016 18:21:41 +0000 (18:21 +0000)]
[MSan] [PowerPC] Add loadable library name for testing.

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

llvm-svn: 266646

8 years ago[Parser][ObjC] Make sure c++11 in-class initialization is done when the
Akira Hatanaka [Mon, 18 Apr 2016 18:19:45 +0000 (18:19 +0000)]
[Parser][ObjC] Make sure c++11 in-class initialization is done when the
constructor's definition is in an implementation block.

Without this commit, ptr doesn't get initialized to null in the
following code:

struct S {
  S();
  void *ptr = nullptr;
};

@implementation I
  S::S() {}
@end

rdar://problem/25693624

llvm-svn: 266645

8 years agoClarifying the wording of this diagnostic; it confused parameter and argument.
Aaron Ballman [Mon, 18 Apr 2016 18:10:53 +0000 (18:10 +0000)]
Clarifying the wording of this diagnostic; it confused parameter and argument.

llvm-svn: 266644

8 years agoNFC: unify clang / LLVM atomic ordering
JF Bastien [Mon, 18 Apr 2016 18:01:49 +0000 (18:01 +0000)]
NFC: unify clang / LLVM atomic ordering

This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM,
as discussed in http://reviews.llvm.org/D18200#inline-151433

This re-applies r266574 which I had reverted in r266575.

Depends on http://reviews.llvm.org/D18875

Original review: http://reviews.llvm.org/D18876

llvm-svn: 266641

8 years agoNFC: unify clang / LLVM atomic ordering
JF Bastien [Mon, 18 Apr 2016 18:01:43 +0000 (18:01 +0000)]
NFC: unify clang / LLVM atomic ordering

This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM,
as discussed in http://reviews.llvm.org/D18200#inline-151433

This re-applies r266573 which I had reverted in r266576.

Original review: http://reviews.llvm.org/D18875

llvm-svn: 266640

8 years agoAdd missing new file for r266637
Xinliang David Li [Mon, 18 Apr 2016 17:54:25 +0000 (17:54 +0000)]
Add missing new file for r266637

llvm-svn: 266639

8 years agoUpdate InstrProf pass creator API reference
Xinliang David Li [Mon, 18 Apr 2016 17:48:12 +0000 (17:48 +0000)]
Update InstrProf pass creator API reference

llvm-svn: 266638

8 years agoPort InstrProfiling pass to the new pass manager
Xinliang David Li [Mon, 18 Apr 2016 17:47:38 +0000 (17:47 +0000)]
Port InstrProfiling pass to the new pass manager

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

llvm-svn: 266637

8 years ago[CMake] Fix misleading error message in CMakeLists.txt.
Eugene Zelenko [Mon, 18 Apr 2016 17:40:18 +0000 (17:40 +0000)]
[CMake] Fix misleading error message in CMakeLists.txt.

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

llvm-svn: 266635

8 years ago[STATS] Remove timePair class and unused functions
Jonathan Peyton [Mon, 18 Apr 2016 17:27:30 +0000 (17:27 +0000)]
[STATS] Remove timePair class and unused functions

llvm-svn: 266634

8 years ago[STATS] print Total_* stats on their own line
Jonathan Peyton [Mon, 18 Apr 2016 17:24:20 +0000 (17:24 +0000)]
[STATS] print Total_* stats on their own line

llvm-svn: 266633

8 years ago[X86][AVX] Added zero+blend vs vperm2f128 optsize tests cases (PR22984)
Simon Pilgrim [Mon, 18 Apr 2016 17:14:04 +0000 (17:14 +0000)]
[X86][AVX] Added zero+blend vs vperm2f128 optsize tests cases (PR22984)

We should be trying to use vperm2f128 instead of zero+blend (if we're only the user of zero?) when optsize is enabled.

llvm-svn: 266632

8 years agoRevert r266488.
Easwaran Raman [Mon, 18 Apr 2016 17:10:17 +0000 (17:10 +0000)]
Revert r266488.

This goes with r266477 which has been  reverted.

llvm-svn: 266631

8 years agoLanai: fix debug build
JF Bastien [Mon, 18 Apr 2016 16:33:41 +0000 (16:33 +0000)]
Lanai: fix debug build

There's currently no raw_ostream &operator<<(SimpleValueType); provided by LLVM. It could be added by refactoring utils/TableGen/CodeGenTarget.cpp:getEnumName, but that's much more work than fixing the build.

llvm-svn: 266627

8 years ago[AMDGPU] Add insert nops pass based on subtarget features instead of cl::opt
Konstantin Zhuravlyov [Mon, 18 Apr 2016 16:28:23 +0000 (16:28 +0000)]
[AMDGPU] Add insert nops pass based on subtarget features instead of cl::opt
Also,
- Skip pass if machine module does not have debug info
- Minor comment changes
- Added test

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

llvm-svn: 266626

8 years ago[ARM] predefines __ELF__ macro for arm-none-eabi
Weiming Zhao [Mon, 18 Apr 2016 16:25:46 +0000 (16:25 +0000)]
[ARM] predefines __ELF__ macro for arm-none-eabi

Summary: predefines __ELF__ macro for arm-none-eabi

Reviewers: silviu.baranga, rengolin

Subscribers: aemerson, rengolin, cfe-commits

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

llvm-svn: 266625

8 years agofix a race is the LLDB test suite results collection
Todd Fiala [Mon, 18 Apr 2016 16:09:21 +0000 (16:09 +0000)]
fix a race is the LLDB test suite results collection

The race boiled down to this:

If a test worker queue is able to run the test inferior and
clean up before the dosep.py listener socket is spun up, and
the worker queue is the last one (as would be the case when
there's only one test rerunning in the rerun queue), then
the test suite will exit the main loop before having a chance
to process any test events coming from the test inferior or
the worker queue job control.

I found this race to be far more likely on fast hardware.
Our Linux CI is one such example.  While it will show
up primarily during meta test events generated by
a worker thread when a test inferior times out or
exits with an exceptional exit (e.g. seg fault), it only
requires that the OS takes longer to hook up the
listener socket than it takes for the final test inferior
and worker thread to shut down.

See:
http://reviews.llvm.org/D19214

reviewed by:
Pavel Labath

llvm-svn: 266624

8 years ago[X86][AVX] Renamed vperm2f128 test to make it quicker to review
Simon Pilgrim [Mon, 18 Apr 2016 16:08:19 +0000 (16:08 +0000)]
[X86][AVX] Renamed vperm2f128 test to make it quicker to review

missed one the first time round...

llvm-svn: 266623

8 years agoSCoPValidator: Use SCEVTraversal to simplify SCEVInRegionDependences
Tobias Grosser [Mon, 18 Apr 2016 15:46:27 +0000 (15:46 +0000)]
SCoPValidator: Use SCEVTraversal to simplify SCEVInRegionDependences

llvm-svn: 266622

8 years ago[X86][AVX] Renamed vperm2f128 tests to make it quicker to review
Simon Pilgrim [Mon, 18 Apr 2016 15:37:45 +0000 (15:37 +0000)]
[X86][AVX] Renamed vperm2f128 tests to make it quicker to review

llvm-svn: 266621

8 years agoReapply "[Coverage] Prevent detection of false instantiations in case of macro expans...
Igor Kudrin [Mon, 18 Apr 2016 15:36:30 +0000 (15:36 +0000)]
Reapply "[Coverage] Prevent detection of false instantiations in case of macro expansion."

The root of the problem was that findMainViewFileID(File, Function)
could return some ID for any given file, even though that file
was not the main file for that function.

This patch ensures that the result of this function is conformed
with the result of findMainViewFileID(Function).

This commit reapplies r266436, which was reverted by r266458,
with the .covmapping file serialized in v1 format.

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

llvm-svn: 266620

8 years agoRevert "Replace the use of MaxFunctionCount module flag"
Eric Liu [Mon, 18 Apr 2016 15:31:11 +0000 (15:31 +0000)]
Revert "Replace the use of MaxFunctionCount module flag"

This reverts commit r266477.

This commit introduces cyclic dependency. This commit has "Analysis" depend on "ProfileData",
while "ProfileData" depends on "Object", which depends on "BitCode", which
depends on "Analysis".

llvm-svn: 266619

8 years ago[ELF] - Avoid using memset for zero-initialization of struct member. NFC.
George Rimar [Mon, 18 Apr 2016 15:16:17 +0000 (15:16 +0000)]
[ELF] - Avoid using memset for zero-initialization of struct member. NFC.

llvm-svn: 266618

8 years ago[AMDGPU][llvm-mc] s_setreg* - Fix order of operands
Artem Tamazov [Mon, 18 Apr 2016 14:54:26 +0000 (14:54 +0000)]
[AMDGPU][llvm-mc] s_setreg* - Fix order of operands

Order should match the sp3 syntax, where destination (simm16 denoting the hwreg) is coming first.

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

llvm-svn: 266617

8 years agoSilence some "initialized but unused" warnings from MSVC -- the function being called...
Aaron Ballman [Mon, 18 Apr 2016 14:47:19 +0000 (14:47 +0000)]
Silence some "initialized but unused" warnings from MSVC -- the function being called is a static function, so there's no need for an instance variable. NFC.

llvm-svn: 266616

8 years agoRevert 266581 (and follow-up 266588), it doesn't build on Windows.
Nico Weber [Mon, 18 Apr 2016 13:57:08 +0000 (13:57 +0000)]
Revert 266581 (and follow-up 266588), it doesn't build on Windows.

Three problems:
1. <future> can't be easily used.  If you must use it, see
   include/Support/ThreadPool.h for how.
2. constexpr problems, even after 266588.
3. Move assignment operators can't be defaulted in MSVC2013.

llvm-svn: 266615

8 years agoUnbreak building unit tests on Windows after r266595.
Nico Weber [Mon, 18 Apr 2016 13:54:50 +0000 (13:54 +0000)]
Unbreak building unit tests on Windows after r266595.

llvm-svn: 266614

8 years agoUnbreak building LLVMTarget on Windows after r266595.
Nico Weber [Mon, 18 Apr 2016 13:38:58 +0000 (13:38 +0000)]
Unbreak building LLVMTarget on Windows after r266595.

llvm-svn: 266613

8 years agoUnbreak building llvm-pdbdump on Windows after r266595.
Nico Weber [Mon, 18 Apr 2016 13:31:31 +0000 (13:31 +0000)]
Unbreak building llvm-pdbdump on Windows after r266595.

llvm-svn: 266612

8 years agoRespect LIBCXXABI_LIBDIR_SUFFIX before an install
Ben Craig [Mon, 18 Apr 2016 13:30:38 +0000 (13:30 +0000)]
Respect LIBCXXABI_LIBDIR_SUFFIX before an install

Prior to this patch, setting LIBCXXABI_LIBDIR_SUFFIX would confuse the
check-libcxxabi target. libc++abi.* would get output to lib instead of
lib${LIBCXXABI_LIBDIR_SUFFIX}, but the tests would look in the suffixed
directory.

Now, we match what libcxx does, and set the CMAKE_*_OUTPUT_DIRECTORY to the
LIBRARY_DIR.

http://reviews.llvm.org/D17410

llvm-svn: 266611

8 years agoFix handling of R_X86_64_GOT32.
Rafael Espindola [Mon, 18 Apr 2016 12:58:59 +0000 (12:58 +0000)]
Fix handling of R_X86_64_GOT32.

It computes the offset to the end of .got.

llvm-svn: 266610

8 years agoSimplify handling of R_X86_64_TPOFF32. NFC.
Rafael Espindola [Mon, 18 Apr 2016 12:44:33 +0000 (12:44 +0000)]
Simplify handling of R_X86_64_TPOFF32. NFC.

llvm-svn: 266609

8 years ago[mips][ias] Prevent double-filling of delay slots by generating '.set noreorder'...
Daniel Sanders [Mon, 18 Apr 2016 12:35:36 +0000 (12:35 +0000)]
[mips][ias] Prevent double-filling of delay slots by generating '.set noreorder' regions.

Summary:
When clang is given -save-temps or -via-file-asm, any inline assembly in
the source is parsed twice. Once by the compiler, and again by the
assembler. We must take care to ensure that this doesn't lead to
double-filling delay slots.

Reviewers: sdardis, vkalintiris

Subscribers: dsanders, sdardis, llvm-commits

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

llvm-svn: 266608

8 years agoRemove isGotRelative.
Rafael Espindola [Mon, 18 Apr 2016 12:31:37 +0000 (12:31 +0000)]
Remove isGotRelative.

It is now redundant with the expression. While at it, handle both "X -
Got" and "Got - PC".

llvm-svn: 266607

8 years agoInclude SmallVector.h header in lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPri...
Eric Liu [Mon, 18 Apr 2016 12:21:59 +0000 (12:21 +0000)]
Include SmallVector.h header in lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h

llvm-svn: 266606

8 years agoAttempt to fix darwin build after header refactor in llvm (r266595)
Pavel Labath [Mon, 18 Apr 2016 12:18:35 +0000 (12:18 +0000)]
Attempt to fix darwin build after header refactor in llvm (r266595)

llvm-svn: 266605

8 years agoHave getRelExpr handle all cases on x86.
Rafael Espindola [Mon, 18 Apr 2016 12:07:13 +0000 (12:07 +0000)]
Have getRelExpr handle all cases on x86.

This requires adding a few more expression types, but is already a small
simplification. Having Writer.cpp know the exact expression will also
allow further simplifications.

llvm-svn: 266604

8 years ago[ARM] AArch32 v8 NEON is still not IEEE-754 compliant
Renato Golin [Mon, 18 Apr 2016 12:06:47 +0000 (12:06 +0000)]
[ARM] AArch32 v8 NEON is still not IEEE-754 compliant

llvm-svn: 266603

8 years ago[mips][ias] Stream macro expansions to output instead of buffering them. NFC.
Daniel Sanders [Mon, 18 Apr 2016 12:06:15 +0000 (12:06 +0000)]
[mips][ias] Stream macro expansions to output instead of buffering them. NFC.

Summary:
This will allows us to eliminate some magic numbers from the offset operand of
branch instructions in favour of symbols and makes it possible to avoid
double-filling delay slots when clang is given -save-temps.

parseDirectiveCpRestore() is calling isIntegratedAssemblerRequired() for the
moment since correctly pushing the generation of these instructions into the
ELF target streamer is tricky enough to warrant a separate patch.

Reviewers: sdardis, vkalintiris

Subscribers: dsanders, llvm-commits, sdardis

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

llvm-svn: 266602

8 years agoMerge duplicated cases. NFC.
Rafael Espindola [Mon, 18 Apr 2016 11:53:42 +0000 (11:53 +0000)]
Merge duplicated cases. NFC.

llvm-svn: 266601