platform/upstream/llvm.git
8 years agominimize test and use FileCheck
Sanjay Patel [Tue, 23 Feb 2016 22:03:44 +0000 (22:03 +0000)]
minimize test and use FileCheck

llvm-svn: 261701

8 years ago[CMake] Support component-based installation for runtime libraries
Chris Bieneman [Tue, 23 Feb 2016 21:55:38 +0000 (21:55 +0000)]
[CMake] Support component-based installation for runtime libraries

This enables targets like "install-ubsan" and "install-asan" to install all associated runtime libraries.

llvm-svn: 261700

8 years ago[CMake] Assign components and dependencies during add_compiler_rt_resource_file
Chris Bieneman [Tue, 23 Feb 2016 21:50:39 +0000 (21:50 +0000)]
[CMake] Assign components and dependencies during add_compiler_rt_resource_file

This makes it so that component-based installations will include resource files (i.e. blacklists). My next patch will add support for component-based installations.

llvm-svn: 261699

8 years agoAArch64: rename compact unwind forms back to UNWIND_ARM64_*. NFC.
Tim Northover [Tue, 23 Feb 2016 21:49:05 +0000 (21:49 +0000)]
AArch64: rename compact unwind forms back to UNWIND_ARM64_*. NFC.

Looks like the global rename last year was a bit over-zealous. These things
really are referred to with ARM64 elsewhere (ld64, libunwind, ...).

llvm-svn: 261698

8 years ago[WebAssembly] Stackify code emitted by eliminateFrameIndex
Derek Schuff [Tue, 23 Feb 2016 21:25:17 +0000 (21:25 +0000)]
[WebAssembly] Stackify code emitted by eliminateFrameIndex

llvm-svn: 261685

8 years ago[profile] Fix iteration over profile data entries
Vedant Kumar [Tue, 23 Feb 2016 20:46:14 +0000 (20:46 +0000)]
[profile] Fix iteration over profile data entries

Fix a crash when gathering value profile data on i386 Darwin.

The Darwin linker shrinks sections containing aligned structures when
padding is not explicitly added to the end of the structure. When
iterating over these structures, be sure to not walk past the end of the
section.

No tests added, since running `ninja check-profile` on i386 Darwin is
enough to reproduce the original crash.

llvm-svn: 261683

8 years agoUse a different error in test.
Rafael Espindola [Tue, 23 Feb 2016 20:36:20 +0000 (20:36 +0000)]
Use a different error in test.

This opens the way for -r being implemented.

llvm-svn: 261682

8 years ago[CMake] Create an install-distribution target driven by LLVM_DISTRIBUTION_COMPONENTS
Chris Bieneman [Tue, 23 Feb 2016 20:33:53 +0000 (20:33 +0000)]
[CMake] Create an install-distribution target driven by LLVM_DISTRIBUTION_COMPONENTS

The idea here is to provide a customizable install target that only depends on building the things you actually want to install. It relies on each component being installed having an auto-generated install-${component}, which in turn depends only on the target being installed.

This is fundamentally a workaround for the fact that CMake generates build files which have their "install" target depend on the "all" target. This results in "ninja install" building a bunch of unneeded things.

llvm-svn: 261681

8 years ago[CMake] Add install-clang-format target by migrating to add_clang_tool
Chris Bieneman [Tue, 23 Feb 2016 20:33:15 +0000 (20:33 +0000)]
[CMake] Add install-clang-format target by migrating to add_clang_tool

This change migrates clang-format to add_clang_tool which makes a component-based install target. To support component-based installation the extra installed scripts all need to have the "clang-format" component too.

llvm-svn: 261680

8 years agoARM: fix handling of movw/movt relocations with addend.
Tim Northover [Tue, 23 Feb 2016 20:20:23 +0000 (20:20 +0000)]
ARM: fix handling of movw/movt relocations with addend.

We were emitting only one half of a the paired relocations needed for these
instructions because we decided that an offset needed a scattered relocation.
In fact, movw/movt relocations can be paired without being scattered.

llvm-svn: 261679

8 years agoFix the aarch64 logic for dynamic relocations.
Rafael Espindola [Tue, 23 Feb 2016 20:19:44 +0000 (20:19 +0000)]
Fix the aarch64 logic for dynamic relocations.

There is nothing aarch64 specific in here. If a symbol can be preempted,
we need to copy the full relocation to the dynamic linker.

If a symbol cannot be preempted, we can make the dynamic linker life
easier and produce a relative relocation.

This is directly equivalent to R_X86_64_64 to R_x86_64_RELATIVE
conversion.

llvm-svn: 261678

8 years agoFix a missing closing tag
Marshall Clow [Tue, 23 Feb 2016 19:48:44 +0000 (19:48 +0000)]
Fix a missing closing tag

llvm-svn: 261677

8 years agoMore updates
Marshall Clow [Tue, 23 Feb 2016 19:48:09 +0000 (19:48 +0000)]
More updates

llvm-svn: 261676

8 years ago[AArch64] Generate csinv instruction more often
Geoff Berry [Tue, 23 Feb 2016 19:34:13 +0000 (19:34 +0000)]
[AArch64] Generate csinv instruction more often

Reviewers: t.p.northover, jmolloy

Subscribers: aemerson, rengolin, mcrosier, llvm-commits

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

llvm-svn: 261675

8 years agoRename Action::begin() to Action::input_begin().
Nico Weber [Tue, 23 Feb 2016 19:30:43 +0000 (19:30 +0000)]
Rename Action::begin() to Action::input_begin().

Also introduce inputs() that reutnrs an llvm::iterator_range.
Iterating over A->inputs() is much less mysterious than
iterating over *A.  No intended behavior change.

llvm-svn: 261674

8 years agoReapply r261657.
Adrian Prantl [Tue, 23 Feb 2016 19:30:08 +0000 (19:30 +0000)]
Reapply r261657.
Remove an unnecessary workaround introduced in r259975. (NFC)

Now that LLVM r259973 allows replacing a temporary type with another
temporary we can rely on the original implementation.

It is possible for enums to be created as part of
their own declcontext. In this case a FwdDecl will be created
twice. This doesn't cause a problem because both FwdDecls are
entered into the ReplaceMap: finalize() will replace the first
FwdDecl with the second and then replace the second with
complete type.

Thanks to echristo for pointing this out.

# Conflicts:
# lib/CodeGen/CGDebugInfo.cpp

llvm-svn: 261673

8 years agoFix comment
Xinliang David Li [Tue, 23 Feb 2016 19:18:21 +0000 (19:18 +0000)]
Fix comment

llvm-svn: 261672

8 years agoRevert r261633 "Supporting all entities declared in lexical scope in LLVM debug info."
Hans Wennborg [Tue, 23 Feb 2016 19:17:03 +0000 (19:17 +0000)]
Revert r261633 "Supporting all entities declared in lexical scope in LLVM debug info."

This and the corresponding Clang change caused PR26715.

llvm-svn: 261671

8 years agoRevert r261634 "Supporting all entities declared in lexical scope in LLVM debug info...
Hans Wennborg [Tue, 23 Feb 2016 19:10:16 +0000 (19:10 +0000)]
Revert r261634 "Supporting all entities declared in lexical scope in LLVM debug info." and r261657

r261634 and r261633 seems to have caused PR26715. r261657 depends on the former two.

llvm-svn: 261670

8 years agoAmends r252104 to evaluate the controlling expression in an unevaluated context....
Aaron Ballman [Tue, 23 Feb 2016 18:55:15 +0000 (18:55 +0000)]
Amends r252104 to evaluate the controlling expression in an unevaluated context. This eliminates false-positive diagnostics about null pointer dereferences (etc) in the controlling expression.

llvm-svn: 261669

8 years agoSimplify. NFC.
Rafael Espindola [Tue, 23 Feb 2016 18:53:29 +0000 (18:53 +0000)]
Simplify. NFC.

llvm-svn: 261668

8 years agoDon't include tbss's alignment in offset.
Rafael Espindola [Tue, 23 Feb 2016 18:39:55 +0000 (18:39 +0000)]
Don't include tbss's alignment in offset.

The .tbss section is in the middle of a PT_LOAD. Whatever treatment we
give to its address we must also give to the offset.

We were ignoring it for address computations, but not for offset.

Fixes pr26712.

llvm-svn: 261667

8 years ago[X86ISelLowering] Stop typing the same return over and over and over.
Davide Italiano [Tue, 23 Feb 2016 18:39:38 +0000 (18:39 +0000)]
[X86ISelLowering] Stop typing the same return over and over and over.

llvm-svn: 261666

8 years agoFix PR25339: ARM Constant Island
Weiming Zhao [Tue, 23 Feb 2016 18:39:19 +0000 (18:39 +0000)]
Fix PR25339: ARM Constant Island

Summary:
Currently, the ARM Constant Island may not converge (or not converge quickly).
This patch let it move to the closest water after the user if it doesn't converge after 15 iterations.

This address https://llvm.org/bugs/show_bug.cgi?id=25339

Reviewers: t.p.northover, srhines, kristof.beyls, aadg, rengolin

Subscribers: weimingz, aemerson, rengolin, llvm-commits

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

llvm-svn: 261665

8 years ago[WebAssembly] Add TODO comment to revisit red zone size
Derek Schuff [Tue, 23 Feb 2016 18:17:46 +0000 (18:17 +0000)]
[WebAssembly] Add TODO comment to revisit red zone size

llvm-svn: 261664

8 years agoHandle bitcode files in archive files with --whole-archive.
Rui Ueyama [Tue, 23 Feb 2016 18:17:11 +0000 (18:17 +0000)]
Handle bitcode files in archive files with --whole-archive.

This patch moves BitcodeFile instantiation into createObjectFile.
Previously, we handle bitcode files outside that function and did
not handle for --whole-archive.

http://reviews.llvm.org/D17527

llvm-svn: 261663

8 years ago[WebAssembly] Implement red zone for user stack
Derek Schuff [Tue, 23 Feb 2016 18:13:07 +0000 (18:13 +0000)]
[WebAssembly] Implement red zone for user stack

Implements a mostly-conventional redzone for the userspace
stack. Because we have unsigned load/store offsets we continue to use a
local SP subtracted from the incoming SP but do not write it back to
memory.

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

llvm-svn: 261662

8 years agoThese new tests fail on the green-dragon bots, which use an old Apple compiler.
Marshall Clow [Tue, 23 Feb 2016 18:09:38 +0000 (18:09 +0000)]
These new tests fail on the green-dragon bots, which use an old Apple compiler.
Since they're scheduled to be updated soon, we'll just comment out this test for
the moment, and re-commit when the bots are updated.

llvm-svn: 261661

8 years agotsan: clean up code after r261658
Dmitry Vyukov [Tue, 23 Feb 2016 17:58:23 +0000 (17:58 +0000)]
tsan: clean up code after r261658

llvm-svn: 261660

8 years ago[InstCombine] improve readability ; NFCI
Sanjay Patel [Tue, 23 Feb 2016 17:41:34 +0000 (17:41 +0000)]
[InstCombine] improve readability ; NFCI

Less indenting, named local variables, more descriptive names.

llvm-svn: 261659

8 years agotsan: fix signal handling in ignored libraries
Dmitry Vyukov [Tue, 23 Feb 2016 17:16:26 +0000 (17:16 +0000)]
tsan: fix signal handling in ignored libraries

The first issue is that we longjmp from ScopedInterceptor scope
when called from an ignored lib. This leaves thr->in_ignored_lib set.
This, in turn, disables handling of sigaction. This, in turn,
corrupts tsan state since signals delivered asynchronously.
Another issue is that we can ignore synchronization in asignal
handler, if the signal is delivered into an IgnoreSync region.
Since signals are generally asynchronous, they should ignore
memory access/synchronization/interceptor ignores.
This could lead to false positives in signal handlers.

llvm-svn: 261658

8 years agoRemove an unnecessary workaround introduced in r259975. (NFC)
Adrian Prantl [Tue, 23 Feb 2016 17:13:47 +0000 (17:13 +0000)]
Remove an unnecessary workaround introduced in r259975. (NFC)

Now that LLVM r259973 allows replacing a temporary type with another
temporary we can rely on the original implementation.

It is possible for enums to be created as part of
their own declcontext. In this case a FwdDecl will be created
twice. This doesn't cause a problem because both FwdDecls are
entered into the ReplaceMap: finalize() will replace the first
FwdDecl with the second and then replace the second with
complete type.

Thanks to echristo for pointing this out.

llvm-svn: 261657

8 years ago[WinEH] Don't inline an 'unwinds to caller' cleanupret into funclets which locally...
David Majnemer [Tue, 23 Feb 2016 17:11:04 +0000 (17:11 +0000)]
[WinEH] Don't inline an 'unwinds to caller' cleanupret into funclets which locally unwind

It is problematic if the inlinee has a cleanupret which unwinds to
caller and we inline it into a call site which doesn't unwind.

If the funclet unwinds anywhere other than to the caller,
then we will give the funclet two unwind destinations.
This will result in a verifier failure.

Seeing as how the caller wasn't an invoke (which would locally unwind)
and that the funclet cannot unwind to caller, we must conclude that an
'unwind to caller' cleanupret is dynamically unreachable.

This fixes PR26698.

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

llvm-svn: 261656

8 years agoMore updates
Marshall Clow [Tue, 23 Feb 2016 17:07:15 +0000 (17:07 +0000)]
More updates

llvm-svn: 261655

8 years agoRevert "[VFS] Add support for handling path traversals"
Bruno Cardoso Lopes [Tue, 23 Feb 2016 17:06:50 +0000 (17:06 +0000)]
Revert "[VFS] Add support for handling path traversals"

This reverts commit r261551 due to failing tests in windows bots:

http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/10054

Failing Tests (4):
    Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.CaseInsensitive
    Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.DirectoryIteration
    Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.MappedFiles
    Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.UseExternalName

llvm-svn: 261654

8 years agoAdd tests for LWG#2560. No code changes, just tests
Marshall Clow [Tue, 23 Feb 2016 17:01:52 +0000 (17:01 +0000)]
Add tests for LWG#2560. No code changes, just tests

llvm-svn: 261653

8 years ago[InstCombine] less indenting; NFC
Sanjay Patel [Tue, 23 Feb 2016 16:59:21 +0000 (16:59 +0000)]
[InstCombine] less indenting; NFC

llvm-svn: 261652

8 years ago[lld] [ELF/AArch64] Fix R_AARCH64_ABS64 in Shared mode
Adhemerval Zanella [Tue, 23 Feb 2016 16:54:40 +0000 (16:54 +0000)]
[lld] [ELF/AArch64] Fix R_AARCH64_ABS64 in Shared mode

This patch fixes the R_AARCH64_ABS64 relocation when used in shared mode,
where it requires a dynamic R_AARCH64_RELATIVE relocation. To correct set
the addend on the dynamic relocation (since it will be used by the dynamic
linker), a new TargetInfo specific hook was created (getDynRelativeAddend)
to get the correct addend based on relocation type.

The patch fixes the issues when creating shared library code against
{init,fini}_array, where it issues R_AARCH64_ABS64 relocation against
local symbols.

llvm-svn: 261651

8 years ago[AArch64] Fix fastcc -tailcallopt epilog code generation.
Geoff Berry [Tue, 23 Feb 2016 16:54:36 +0000 (16:54 +0000)]
[AArch64] Fix fastcc -tailcallopt epilog code generation.

Summary:
Fix a bug in epilog generation where the incoming stack arguments were
not being popped for fastcc functions when -tailcallopt was passed.

Reviewers: t.p.northover, mcrosier, jmolloy, rengolin

Subscribers: aemerson, rengolin, mcrosier, llvm-commits

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

llvm-svn: 261650

8 years ago[InstCombine] add helper function to foldCastedBitwiseLogic() ; NFCI
Sanjay Patel [Tue, 23 Feb 2016 16:36:07 +0000 (16:36 +0000)]
[InstCombine] add helper function to foldCastedBitwiseLogic() ; NFCI

This is a straight cut and paste of the existing code and is intended to
be the first step in solving part of PR26702:
https://llvm.org/bugs/show_bug.cgi?id=26702

We should be able to reuse most of this and delete the nearly identical
existing code in visitOr(). Then, we can enhance visitXor() to use the
same code too.

llvm-svn: 261649

8 years agoAdd additional tests to ensure that we DTRT with short lists. This is LWG#2590, but...
Marshall Clow [Tue, 23 Feb 2016 16:25:20 +0000 (16:25 +0000)]
Add additional tests to ensure that we DTRT with short lists. This is LWG#2590, but there are no code changes, just additional tests

llvm-svn: 261648

8 years agoMore updates; patch for 2583 ready
Marshall Clow [Tue, 23 Feb 2016 16:20:24 +0000 (16:20 +0000)]
More updates; patch for 2583 ready

llvm-svn: 261647

8 years agoFix a typo. NFC
Alexander Kornienko [Tue, 23 Feb 2016 16:12:08 +0000 (16:12 +0000)]
Fix a typo. NFC

llvm-svn: 261646

8 years agoClean up clang-format options documentation. NFC
Alexander Kornienko [Tue, 23 Feb 2016 16:12:00 +0000 (16:12 +0000)]
Clean up clang-format options documentation. NFC

Use uniform style for inline code blocks, specify language for YAML code blocks,
various formatting fixes etc.

llvm-svn: 261645

8 years agoSupport language selection for \code blocks.
Alexander Kornienko [Tue, 23 Feb 2016 16:11:55 +0000 (16:11 +0000)]
Support language selection for \code blocks.

llvm-svn: 261644

8 years agoUpdate clang-format options docs.
Alexander Kornienko [Tue, 23 Feb 2016 16:11:51 +0000 (16:11 +0000)]
Update clang-format options docs.

llvm-svn: 261643

8 years agoAllow running dump_format_style.py from any directory.
Alexander Kornienko [Tue, 23 Feb 2016 16:11:43 +0000 (16:11 +0000)]
Allow running dump_format_style.py from any directory.

llvm-svn: 261642

8 years ago[CLANG] [AVX512] [BUILTIN] Adding prorv{d|q}{128|256|512} builtin to clang
Michael Zuckerman [Tue, 23 Feb 2016 15:59:47 +0000 (15:59 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding prorv{d|q}{128|256|512} builtin to clang

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

llvm-svn: 261641

8 years agoSilencing a signed vs unsigned mismatch.
Aaron Ballman [Tue, 23 Feb 2016 15:02:43 +0000 (15:02 +0000)]
Silencing a signed vs unsigned mismatch.

llvm-svn: 261640

8 years agomath: Add ilogb ported from amd-builtins
Aaron Watry [Tue, 23 Feb 2016 14:43:09 +0000 (14:43 +0000)]
math: Add ilogb ported from amd-builtins

The scalar float/double function bodies are a direct copy/paste
with usage of the CLC wrappers to vectorize them.

This commit also adds in the FP_ILOGB0 and FP_ILOGBNAN macros which are
equal to the results of ilogb(0.0f) and ilogb(float nan) respectively.

v2: Add FP_ILOGB0 and FP_ILOGBNAN definitions

Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
v1 Reviewed-by: Tom Stellard <thomas.stellard@amd.com>

llvm-svn: 261639

8 years ago[CLANG] [AVX512] [BUILTIN] Adding pro{lv|r}{d|q}{128|256|512} builtin to clang
Michael Zuckerman [Tue, 23 Feb 2016 14:23:53 +0000 (14:23 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding pro{lv|r}{d|q}{128|256|512} builtin to clang

Adding closer to the end of macro }->})

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

llvm-svn: 261638

8 years ago[AArch64] Fix comment typo in Cyclone scheduling defs. NFC.
Chad Rosier [Tue, 23 Feb 2016 14:05:13 +0000 (14:05 +0000)]
[AArch64] Fix comment typo in Cyclone scheduling defs. NFC.

llvm-svn: 261637

8 years agoWork around a stepping bug in arm64 android M
Pavel Labath [Tue, 23 Feb 2016 13:56:30 +0000 (13:56 +0000)]
Work around a stepping bug in arm64 android M

Summary:
On arm64, linux<=4.4 and Android<=M there is a bug, which prevents single-stepping from working when
the system comes back from suspend, because of incorrectly initialized CPUs. This did not really
affect Android<M, because it did not use software suspend, but it is a problem for M, which uses
suspend (doze) quite extensively.  Fortunately, it seems that the first CPU is not affected by
this bug, so this commit implements a workaround by forcing the inferior to execute on the first
cpu whenever we are doing single stepping.

While inside, I have moved the implementations of Resume() and SingleStep() to the thread class
(instead of process).

Reviewers: tberghammer, ovyalov

Subscribers: aemerson, rengolin, tberghammer, danalbert, srhines, lldb-commits

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

llvm-svn: 261636

8 years ago[CLANG] [AVX512] [BUILTIN] Adding pro{lv|r}{d|q}{128|256|512} builtin to clang
Michael Zuckerman [Tue, 23 Feb 2016 13:41:13 +0000 (13:41 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding pro{lv|r}{d|q}{128|256|512} builtin to clang

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

llvm-svn: 261635

8 years agoSupporting all entities declared in lexical scope in LLVM debug info.
Amjad Aboud [Tue, 23 Feb 2016 13:37:18 +0000 (13:37 +0000)]
Supporting all entities declared in lexical scope in LLVM debug info.

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

llvm-svn: 261634

8 years agoSupporting all entities declared in lexical scope in LLVM debug info.
Amjad Aboud [Tue, 23 Feb 2016 13:36:51 +0000 (13:36 +0000)]
Supporting all entities declared in lexical scope in LLVM debug info.

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

llvm-svn: 261633

8 years ago[analyzer] Improve pointer arithmetic checker.
Gabor Horvath [Tue, 23 Feb 2016 12:34:39 +0000 (12:34 +0000)]
[analyzer] Improve pointer arithmetic checker.

This patch is intended to improve pointer arithmetic checker.
From now on it only warns when the pointer arithmetic is likely to cause an
error. For example when the pointer points to a single object, or an array of
derived types.

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

llvm-svn: 261632

8 years ago[linux] Remove all traces of signalfd(2)
Pavel Labath [Tue, 23 Feb 2016 12:26:08 +0000 (12:26 +0000)]
[linux] Remove all traces of signalfd(2)

Summary:
Signalfd is not used in the code anymore, and given that the same functionality can be achieved
with the new MainLoop class, it's unlikely we will need it in the future. Remove all traces of
it.

Reviewers: tberghammer, ovyalov

Subscribers: tberghammer, danalbert, srhines, lldb-commits

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

llvm-svn: 261631

8 years agoXFAIL TestInlines for Linux with gcc
Tamas Berghammer [Tue, 23 Feb 2016 11:35:38 +0000 (11:35 +0000)]
XFAIL TestInlines for Linux with gcc

llvm-svn: 261630

8 years agoRemove a space after a trailing backslash.
Alexander Kornienko [Tue, 23 Feb 2016 11:19:56 +0000 (11:19 +0000)]
Remove a space after a trailing backslash.

llvm-svn: 261629

8 years agofix the indentation of the example
Sylvestre Ledru [Tue, 23 Feb 2016 11:17:27 +0000 (11:17 +0000)]
fix the indentation of the example

llvm-svn: 261628

8 years ago[PM] Remove an overly aggressive assert now that I can actually test the
Chandler Carruth [Tue, 23 Feb 2016 10:47:57 +0000 (10:47 +0000)]
[PM] Remove an overly aggressive assert now that I can actually test the
pattern that triggers it. This essentially requires an immutable
function analysis, as that will survive anything we do to invalidate it.
When we have such patterns, the function analysis manager will not get
cleared between runs of the proxy.

If we actually need an assert about how things are queried, we can add
more elaborate machinery for computing it, but so far I'm not aware of
significant value provided.

Thanks to Justin Lebar for noticing this when he made a (seemingly
innocuous) change to FunctionAttrs that is enough to trigger it in one
test there. Now it is covered by a direct test of the pass manager code.

llvm-svn: 261627

8 years agoFix a -Wunused-variable diagnostic.
Alexander Kornienko [Tue, 23 Feb 2016 10:29:04 +0000 (10:29 +0000)]
Fix a -Wunused-variable diagnostic.

llvm-svn: 261626

8 years agoPrint options, if requested.
Alexander Kornienko [Tue, 23 Feb 2016 10:29:02 +0000 (10:29 +0000)]
Print options, if requested.

llvm-svn: 261625

8 years ago[PM] Add a unittest for the CGSCC pass manager in the new pass manager
Chandler Carruth [Tue, 23 Feb 2016 10:02:02 +0000 (10:02 +0000)]
[PM] Add a unittest for the CGSCC pass manager in the new pass manager
system.

Previously, this was only being tested with larger integration tests.
That makes it hard to isolated specific issues with it, and makes the
APIs themselves less well tested. Add a unittest based around the same
patterns used for testing the general pass manager.

llvm-svn: 261624

8 years ago[ARM] fix initialization of PredictableSelectIsExpensive
Junmo Park [Tue, 23 Feb 2016 09:56:58 +0000 (09:56 +0000)]
[ARM] fix initialization of PredictableSelectIsExpensive

Summary:
If we want classify OoO or not, using getSchedModel().isOutOfOrder()
could be more proper way than using Subtarget->isLikeA9().

Reviewers: jmolloy, rengolin

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

llvm-svn: 261623

8 years ago[clang-tidy] Updated docs on testing clang-tidy checks.
Alexander Kornienko [Tue, 23 Feb 2016 09:30:20 +0000 (09:30 +0000)]
[clang-tidy] Updated docs on testing clang-tidy checks.

llvm-svn: 261622

8 years ago[AMDGPU] Fix operands of S_BFE_U64 and S_BFM_B64
Nikolay Haustov [Tue, 23 Feb 2016 09:19:14 +0000 (09:19 +0000)]
[AMDGPU] Fix operands of S_BFE_U64 and S_BFM_B64

src1 of s_bfe_u64 is 32-bit (same as s_bfe_i64).
src0 and src1 of s_bfm_b64 are 32-bit.
Update tests.

Review: http://reviews.llvm.org/D17480

Reviewers: arsenm
llvm-svn: 261621

8 years agoAnnotation of SIMD loops
Roman Gareev [Tue, 23 Feb 2016 09:00:13 +0000 (09:00 +0000)]
Annotation of SIMD loops

Use 'mark' nodes annotate a SIMD loop during ScheduleTransformation and skip
parallelism checks.

The buildbot shows the following compile/execution time changes:

  Compile time:
    Improvements    Δ     Previous  Current  σ
    …/gesummv      -6.06% 0.2640    0.2480   0.0055
    …/gemver       -4.46% 0.4480    0.4280   0.0044
    …/covariance   -4.31% 0.8360    0.8000   0.0065
    …/adi          -3.23% 0.9920    0.9600   0.0065
    …/doitgen      -2.53% 0.9480    0.9240   0.0090
    …/3mm          -2.33% 1.0320    1.0080   0.0087

  Execution time:
    Regressions     Δ     Previous  Current  σ
    …/viterbi       1.70% 5.1840    5.2720   0.0074
    …/smallpt       1.06% 12.4920   12.6240  0.0040

Reviewed-by: Tobias Grosser <tobias@grosser.es>
Differential Revision: http://reviews.llvm.org/D14491

llvm-svn: 261620

8 years agoAVX512: Fix predicate of AVX pcmpeqw/b , pcmpgtb/w/d instructions . AVX512 version...
Igor Breger [Tue, 23 Feb 2016 08:55:33 +0000 (08:55 +0000)]
AVX512: Fix predicate of AVX pcmpeqw/b , pcmpgtb/w/d instructions . AVX512 version of this instructions return result in kmask register, so AVX patterns should not be disabled.

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

llvm-svn: 261619

8 years ago[ms-inline-asm] Fixing bug in single asm statement support
Marina Yatsina [Tue, 23 Feb 2016 08:53:45 +0000 (08:53 +0000)]
[ms-inline-asm] Fixing bug in single asm statement support

Fixing a crash caused by trying to merge a single-line asm statement with an asm block that follows it, e.g:
asm int 4
asm {
  int 5
}

Now, only adjacent single-line asm statements that are not surrounded by braces will be merged into one asm call.

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

llvm-svn: 261618

8 years ago[ELF][MIPS] Rename test case. NFC
Simon Atanasyan [Tue, 23 Feb 2016 08:34:18 +0000 (08:34 +0000)]
[ELF][MIPS] Rename test case. NFC

llvm-svn: 261617

8 years ago[ELF] - Linkerscript KEEP command.
George Rimar [Tue, 23 Feb 2016 07:47:54 +0000 (07:47 +0000)]
[ELF] - Linkerscript KEEP command.

When link-time garbage collection is in use (-gc-sections), it is
often useful to mark sections that should not be eliminated.
This is accomplished by surrounding an input section's wildcard
entry with KEEP(). Patch implements that command.

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

llvm-svn: 261616

8 years ago[WinEH] Visit 'unwind to caller' catchswitches nested in catchswitches
David Majnemer [Tue, 23 Feb 2016 07:18:15 +0000 (07:18 +0000)]
[WinEH] Visit 'unwind to caller' catchswitches nested in catchswitches

We had the right logic for the nested cleanuppad case but omitted it for
catchswitches.

llvm-svn: 261615

8 years agoAssert when trying to seek un-seekable raw_fd_ostream.
Yaron Keren [Tue, 23 Feb 2016 07:17:58 +0000 (07:17 +0000)]
Assert when trying to seek un-seekable raw_fd_ostream.

llvm-svn: 261614

8 years agoRevert "[VFS] Add 'overlay-relative' field to YAML files" and "[VFS] Fix call to...
Bruno Cardoso Lopes [Tue, 23 Feb 2016 07:06:12 +0000 (07:06 +0000)]
Revert "[VFS] Add 'overlay-relative' field to YAML files" and "[VFS] Fix call to getVFSFromYAML in unittests"

This reverts commit r261552 and r261556 because of failing unittests on
windows:

Failing Tests (4):
    Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.CaseInsensitive
    Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.DirectoryIteration
    Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.MappedFiles
    Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.UseExternalName

llvm-svn: 261613

8 years agoRenderScript: silence some -Wmissing-brace warnings
Saleem Abdulrasool [Tue, 23 Feb 2016 04:56:31 +0000 (04:56 +0000)]
RenderScript: silence some -Wmissing-brace warnings

Silence some -Wmissing-brace warnings on Linux with clang 3.7.

llvm-svn: 261612

8 years ago[tests] Run test that uses gnu asm syntax on Posix only.
Alexey Samsonov [Tue, 23 Feb 2016 04:10:53 +0000 (04:10 +0000)]
[tests] Run test that uses gnu asm syntax on Posix only.

llvm-svn: 261609

8 years agoAdd prefix based function layout when profile is available.
Dehao Chen [Tue, 23 Feb 2016 03:39:24 +0000 (03:39 +0000)]
Add prefix based function layout when profile is available.

Summary: If a function is hot, put it in text.hot section.

Reviewers: davidxl

Subscribers: llvm-commits

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

llvm-svn: 261607

8 years agoUse TinyPtrVector<Ty *> instead of SmallVector<Ty *, 1>.
Rui Ueyama [Tue, 23 Feb 2016 03:34:37 +0000 (03:34 +0000)]
Use TinyPtrVector<Ty *> instead of SmallVector<Ty *, 1>.

Thanks to Sean Silva for the suggestion.

llvm-svn: 261606

8 years agoCodeGen: TII: Take MachineInstr& in predicate API, NFC
Duncan P. N. Exon Smith [Tue, 23 Feb 2016 02:46:52 +0000 (02:46 +0000)]
CodeGen: TII: Take MachineInstr& in predicate API, NFC

Change TargetInstrInfo API to take `MachineInstr&` instead of
`MachineInstr*` in the functions related to predicated instructions
(I'll try to come back later and get some of the rest).  All of these
functions require non-null parameters already, so references are more
clear.  As a bonus, this happens to factor away a host of implicit
iterator => pointer conversions.

No functionality change intended.

llvm-svn: 261605

8 years agoRevert "Add prefix based function layout when profile is available."
Duncan P. N. Exon Smith [Tue, 23 Feb 2016 02:28:40 +0000 (02:28 +0000)]
Revert "Add prefix based function layout when profile is available."

This reverts commit r261582, since this bot has been broken for four
hours:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/19399/

llvm-svn: 261604

8 years ago[tests] Remove "supported-target" in favor of "target-arch" lit features.
Alexey Samsonov [Tue, 23 Feb 2016 01:58:56 +0000 (01:58 +0000)]
[tests] Remove "supported-target" in favor of "target-arch" lit features.

Test cases definitely should not care about the complete set of architectures
supported by compiler-rt - they should only care about current
architecture that the test suite was configured for.

Introduce new lit feature to reflect this, and convert tests to use it.

llvm-svn: 261603

8 years agoFix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in some files...
Eugene Zelenko [Tue, 23 Feb 2016 01:43:44 +0000 (01:43 +0000)]
Fix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in some files in source/Commands; other minor fixes.

llvm-svn: 261602

8 years ago[tests] Always specify correct config.target_arch when configuring test suite.
Alexey Samsonov [Tue, 23 Feb 2016 01:34:17 +0000 (01:34 +0000)]
[tests] Always specify correct config.target_arch when configuring test suite.

llvm-svn: 261601

8 years agoFollow up for r261597: Add the * to the auto.
Michael Zolotukhin [Tue, 23 Feb 2016 00:57:48 +0000 (00:57 +0000)]
Follow up for r261597: Add the * to the auto.

llvm-svn: 261600

8 years agoActually commit the test for r261598.
Sean Callanan [Tue, 23 Feb 2016 00:52:34 +0000 (00:52 +0000)]
Actually commit the test for r261598.

llvm-svn: 261599

8 years agoFixed a problem where the DWARF for inline functions was mis-parsed.
Sean Callanan [Tue, 23 Feb 2016 00:51:52 +0000 (00:51 +0000)]
Fixed a problem where the DWARF for inline functions was mis-parsed.

Inline functions in DWARF have AT_abstract_origin set, but we only handled that
if the functions were C++ methods.  Inline functions -- C or C++ -- have this
also, and as a result they got one FunctionDecl for each inlined instance.  When
going to construct the locals, this meant that the arguments (which did properly
have their abstract origins handled) would get associated with the master
FunctionDecl, and the inlined FunctionDecls would all appear to have no locals.

This manifested as not being able to look up local variables when stopped in an
inline fuunction.  We should have had a test for this, but somewhere along the
line the relevant test case lost its .py file (or it never had one).

This patch fixes this problem and restores the .py file.

<rdar://problem/24712434>

llvm-svn: 261598

8 years agoFollow-up for r261595: use range loop.
Michael Zolotukhin [Tue, 23 Feb 2016 00:48:44 +0000 (00:48 +0000)]
Follow-up for r261595: use range loop.

llvm-svn: 261597

8 years agoLex: Return "" when HeaderMap::lookupFilename fails
Duncan P. N. Exon Smith [Tue, 23 Feb 2016 00:48:16 +0000 (00:48 +0000)]
Lex: Return "" when HeaderMap::lookupFilename fails

Change getString() to return Optional<StringRef>, and change
lookupFilename() to return an empty string if either one of the prefix
and suffix can't be found.

This is a more robust follow-up to r261461, but it's still not entirely
satisfactory.  Ideally we'd report that the header map is corrupt;
perhaps something for a follow-up.

llvm-svn: 261596

8 years ago[LoopUnroll] Avoid unnecessary DT recomputation.
Michael Zolotukhin [Tue, 23 Feb 2016 00:30:50 +0000 (00:30 +0000)]
[LoopUnroll] Avoid unnecessary DT recomputation.

Summary:
When we completely unroll a loop, it's pretty easy to update DT in-place and
thus avoid rebuilding it. DT recalculation is one of the most time-consuming
tasks in loop-unroll, so avoiding it at least in case of full unroll should be
beneficial.

On some extreme (but still real-world) tests this patch improves compile time by
~2x.

Reviewers: escha, jmolloy, hfinkel, sanjoy, chandlerc

Subscribers: joker.eph, sanjoy, llvm-commits

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

llvm-svn: 261595

8 years ago[PM] Improve the API and comments around the analysis manager proxies.
Chandler Carruth [Tue, 23 Feb 2016 00:05:00 +0000 (00:05 +0000)]
[PM] Improve the API and comments around the analysis manager proxies.

These are really handles that ensure the analyses get cleared at
appropriate places, and as such copying doesn't really make sense.
Instead, they should look more like unique ownership objects. Make that
the case.

Relatedly, if you create a temporary of one and move out of it
its destructor shouldn't actually clear anything. I don't think there is
any code that can trigger this currently, but it seems like a more
robust implementation.

If folks want, I can add a unittest that forces this to be exercised,
but that seems somewhat pointless -- whether a temporary is ever created
in the innards of AnalysisManager is not really something we should be
adding a reliance on, but I didn't want to leave a timebomb in the code
here.

If anyone has a cleaner way to represent this, I'm all ears, but
I wanted to assure myself that this wasn't in fact responsible for
another bug I'm chasing down (it wasn't) and figured I'd commit that.

llvm-svn: 261594

8 years agoFix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in source...
Eugene Zelenko [Mon, 22 Feb 2016 23:46:47 +0000 (23:46 +0000)]
Fix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in source/Commands/CommandObjectCommands.cpp; other minor fixes.

llvm-svn: 261593

8 years agoAMDGPU: Add failing testcase for register coalescer
Matt Arsenault [Mon, 22 Feb 2016 23:45:42 +0000 (23:45 +0000)]
AMDGPU: Add failing testcase for register coalescer

llvm-svn: 261592

8 years agoHandle a weak undefined tls to archive member.
Rafael Espindola [Mon, 22 Feb 2016 23:19:29 +0000 (23:19 +0000)]
Handle a weak undefined tls to archive member.

A weak undefined should not fetch archive members, so we have to keep
the Lazy symbol.

That means the lazy symbol has to encode information about the original
weak undef.

Fixes pr25762.

llvm-svn: 261591

8 years agoRemove a trivial getter.
Rafael Espindola [Mon, 22 Feb 2016 23:16:05 +0000 (23:16 +0000)]
Remove a trivial getter.

llvm-svn: 261590

8 years agoMore detailed dependence test between volatile and non-volatile accesses
Krzysztof Parzyszek [Mon, 22 Feb 2016 23:07:43 +0000 (23:07 +0000)]
More detailed dependence test between volatile and non-volatile accesses

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

llvm-svn: 261589

8 years agoInclude ProfileData as CodeGen's required library.
Dehao Chen [Mon, 22 Feb 2016 22:54:14 +0000 (22:54 +0000)]
Include ProfileData as CodeGen's required library.

Summary: Fixing buildbot failure introduced by http://reviews.llvm.org/D17460

Reviewers: davidxl, hans

Subscribers: llvm-commits

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

llvm-svn: 261588

8 years agoSet function entry count as 0 if sample profile is not found for the function.
Dehao Chen [Mon, 22 Feb 2016 22:46:21 +0000 (22:46 +0000)]
Set function entry count as 0 if sample profile is not found for the function.

Summary: This change makes the sample profile's behavior consistent with instr profile.

Reviewers: davidxl, eraman, dnovillo

Subscribers: llvm-commits

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

llvm-svn: 261587

8 years agoLex: Check for 0 buckets on header map construction
Duncan P. N. Exon Smith [Mon, 22 Feb 2016 22:24:22 +0000 (22:24 +0000)]
Lex: Check for 0 buckets on header map construction

Switch to using `isPowerOf2_32()` to check whether the buckets are a
power of two, and as a side benefit reject loading a header map with no
buckets.  This is a follow-up to r261448.

llvm-svn: 261585