platform/upstream/llvm.git
8 years ago[modules] Teach the ASTWriter to ignore mutations coming from the ASTReader.
Vassil Vassilev [Fri, 22 Jul 2016 21:08:24 +0000 (21:08 +0000)]
[modules] Teach the ASTWriter to ignore mutations coming from the ASTReader.

Processing update records (and loading a module, in general) might trigger
unexpected calls to the ASTWriter (being a mutation listener). Now we have a
mechanism to suppress those calls to the ASTWriter but notify other possible
mutation listeners.

Fixes https://llvm.org/bugs/show_bug.cgi?id=28332

Patch by Cristina Cristescu and me.

Reviewed by Richard Smith (D21800).

llvm-svn: 276473

8 years agoadd tests for icmp vector folds
Sanjay Patel [Fri, 22 Jul 2016 21:02:33 +0000 (21:02 +0000)]
add tests for icmp vector folds

llvm-svn: 276472

8 years agoAdd invariant start call creation in IRBuilder.NFC
Anna Thomas [Fri, 22 Jul 2016 20:57:23 +0000 (20:57 +0000)]
Add invariant start call creation in IRBuilder.NFC

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

llvm-svn: 276471

8 years agoUse RValue refs in APInt add/sub methods.
Pete Cooper [Fri, 22 Jul 2016 20:55:46 +0000 (20:55 +0000)]
Use RValue refs in APInt add/sub methods.

This adds versions of operator + and - which are optimized for the LHS/RHS of the
operator being RValue's.  When an RValue is available, we can use its storage space
instead of allocating new space.

On code such as ConstantRange which makes heavy use of APInt's over 64-bits in size,
this results in significant numbers of saved allocations.

Thanks to David Blaikie for all the review and most of the code here.

llvm-svn: 276470

8 years agoAdd regression test for PR27699.
Vassil Vassilev [Fri, 22 Jul 2016 20:49:31 +0000 (20:49 +0000)]
Add regression test for PR27699.

llvm-svn: 276469

8 years ago[llvm-cov] Don't copy stylesheets into index files
Vedant Kumar [Fri, 22 Jul 2016 20:49:23 +0000 (20:49 +0000)]
[llvm-cov] Don't copy stylesheets into index files

Just link in the stylesheet from the toplevel dir of the report.

llvm-svn: 276468

8 years ago[SCEV] Extract out a helper function; NFC
Sanjoy Das [Fri, 22 Jul 2016 20:47:55 +0000 (20:47 +0000)]
[SCEV] Extract out a helper function; NFC

The helper will get smarter in a later change, but right now this is
just code reorganization.

llvm-svn: 276467

8 years agoupdate to use FileCheck and auto-generate checks
Sanjay Patel [Fri, 22 Jul 2016 20:39:07 +0000 (20:39 +0000)]
update to use FileCheck and auto-generate checks

llvm-svn: 276466

8 years agoFix include case. NFC.
George Burgess IV [Fri, 22 Jul 2016 20:15:19 +0000 (20:15 +0000)]
Fix include case. NFC.

llvm-svn: 276465

8 years agoadd tests for icmp vector folds
Sanjay Patel [Fri, 22 Jul 2016 20:11:08 +0000 (20:11 +0000)]
add tests for icmp vector folds

llvm-svn: 276464

8 years agoMake DebugInfoMsf a dependency of DebugInfoPDBTests.
Zachary Turner [Fri, 22 Jul 2016 20:05:30 +0000 (20:05 +0000)]
Make DebugInfoMsf a dependency of DebugInfoPDBTests.

For some reason this doesn't cause linker errors with MSVC or
clang-cl, but the bots seem to be failing with other compilers.

llvm-svn: 276463

8 years agoGlobalISel: implement legalization pass, with just one transformation.
Tim Northover [Fri, 22 Jul 2016 20:03:43 +0000 (20:03 +0000)]
GlobalISel: implement legalization pass, with just one transformation.

This adds the actual MachineLegalizeHelper to do the work and a trivial pass
wrapper that legalizes all instructions in a MachineFunction. Currently the
only transformation supported is splitting up a vector G_ADD into one acting on
smaller vectors.

llvm-svn: 276461

8 years agoMake PDBFile store an msf::Layout.
Zachary Turner [Fri, 22 Jul 2016 19:56:33 +0000 (19:56 +0000)]
Make PDBFile store an msf::Layout.

Previously it was storing all the fields of an msf::Layout as
separate members.  This is a trivial cleanup to make it store
an msf::Layout directly.  This makes the code more readable
since it becomes clear which fields of PDBFile are actually the
msf specific layout information in a sea of other bookkeeping
fields.

llvm-svn: 276460

8 years ago[pdb] Have builders share a single BumpPtrAllocator.
Zachary Turner [Fri, 22 Jul 2016 19:56:26 +0000 (19:56 +0000)]
[pdb] Have builders share a single BumpPtrAllocator.

This makes it easier to have the writable and readable PDB
interfaces share code since the read/write and write-only
interfaces now share a single allocator, you don't have to worry
about a builder building a read only interface and then having
the read-only interface's data become corrupt when the builder
goes out of scope.  Now the allocator is specified explicitly
to all constructors, so all interfaces can share a single allocator
that is scoped appropriately.

llvm-svn: 276459

8 years ago[msf] Create LLVMDebugInfoMsf
Zachary Turner [Fri, 22 Jul 2016 19:56:05 +0000 (19:56 +0000)]
[msf] Create LLVMDebugInfoMsf

This provides a better layering of responsibilities among different
aspects of PDB writing code.  Some of the MSF related code was
contained in CodeView, and some was in PDB prior to this.  Further,
we were often saying PDB when we meant MSF, and the two are
actually independent of each other since in theory you can have
other types of data besides PDB data in an MSF.  So, this patch
separates the MSF specific code into its own library, with no
dependencies on anything else, and DebugInfoCodeView and
DebugInfoPDB take dependencies on DebugInfoMsf.

llvm-svn: 276458

8 years ago[llvm-ar] Document 'T' thin archive modifier (NFC)
Teresa Johnson [Fri, 22 Jul 2016 19:41:00 +0000 (19:41 +0000)]
[llvm-ar] Document 'T' thin archive modifier (NFC)

llvm-svn: 276457

8 years ago[sanitizer] revert r276383 while investigating failures on bot
Kostya Serebryany [Fri, 22 Jul 2016 19:02:59 +0000 (19:02 +0000)]
[sanitizer] revert r276383 while investigating failures on bot

llvm-svn: 276456

8 years agoAdd .rgba syntax extension to ext_vector_type types
Pirama Arumuga Nainar [Fri, 22 Jul 2016 18:49:43 +0000 (18:49 +0000)]
Add .rgba syntax extension to ext_vector_type types

Summary:
This patch enables .rgba accessors to ext_vector_type types and adds
tests for syntax validation and code generation.

'a' and 'b' can appear either in the point access mode or the numeric
access mode (for indices 10 and 11).  To disambiguate between the two
usages, the accessor type is explicitly passed to relevant methods.

Reviewers: rsmith

Subscribers: Anastasia, bader, srhines, cfe-commits

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

llvm-svn: 276455

8 years agoTry to fix more Windows portability issues in sanitizer tests
Reid Kleckner [Fri, 22 Jul 2016 18:41:22 +0000 (18:41 +0000)]
Try to fix more Windows portability issues in sanitizer tests

Add a %stdcxx11 lit substitution for -std=c++11. Windows defaults to
-std=c++14 when VS 2015 is used because the STL requires it. Harcoding
-std=c++11 in the ASan tests actually downgrades the C++ standard level,
leading to test failures.

Relax a FileCheck pattern in use-after-scope-types.cc.

Disable the sanitizer_common OOM tests. They fail on bots with low swap,
and cause other concurrently running tests to OOM.

llvm-svn: 276454

8 years ago[ThinLTO/gold] Remove thin archive part of new test due to bot failures
Teresa Johnson [Fri, 22 Jul 2016 18:32:30 +0000 (18:32 +0000)]
[ThinLTO/gold] Remove thin archive part of new test due to bot failures

I am getting a bot failure from the thin archive part of this test:

From
http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/40468/steps/test_llvm/logs/LLVM%20%3A%3A%20tools__gold__X86__thinlto_emit_linked_objects.ll:

Command Output (stderr):
--
/home/bb/cmake-llvm-x86_64-linux/build/./bin/llvm-ar: creating
/home/bb/cmake-llvm-x86_64-linux/build/test/tools/gold/X86/Output/thinlto_emit_linked_objects.ll.tmp2.a
/usr/bin/ld.gold: internal error in add_writer, at
../../gold/token.h:124

--

This appears to be an issue with an older version of gold. The test case
passes for me locally when I use the gold v1.12 I was testing with, but
when I tried the gold installed on my system which is v1.11 I get the
same error.

Remove the thin archive version of the test, since there isn't a way to
predicate it on gold version.

llvm-svn: 276453

8 years agoRecommit - [DSE]Enhance shorthening MemIntrinsic based on OverlapIntervals
Jun Bum Lim [Fri, 22 Jul 2016 18:27:24 +0000 (18:27 +0000)]
Recommit - [DSE]Enhance shorthening MemIntrinsic based on OverlapIntervals

Recommiting r275571 after fixing crash reported in PR28270.
Now we erase elements of IOL in deleteDeadInstruction().

Original Summary:
This change use the overlap interval map built from partial overwrite tracking to perform shortening MemIntrinsics.
Add test cases which was missing opportunities before.

llvm-svn: 276452

8 years agoadd tests for vector bit manipulation intrinsics
Sanjay Patel [Fri, 22 Jul 2016 18:22:25 +0000 (18:22 +0000)]
add tests for vector bit manipulation intrinsics

llvm-svn: 276451

8 years ago[ThinLTO/gold] Support for getting list of included objects from gold
Teresa Johnson [Fri, 22 Jul 2016 18:20:22 +0000 (18:20 +0000)]
[ThinLTO/gold] Support for getting list of included objects from gold

Summary:
In the distributed backend case, the ThinLink step and the final native
object link are separate processes. This can be problematic when archive
libraries are involved in the link (e.g. via --start-lib/--end-lib
pairs). The linker only includes objects from libraries when
there is a strong reference to them, and depending on the intervening
ThinLTO backend processes' importing/inlining, the strong references
may appear different in the two link steps. See D22356 and D22467
for two scenarios where this causes issues.

To ensure that the final link includes the same objects, this patch
adds support for an "=filename" form of the thinlto-index-only plugin
option, in which case objects gold included in the link are emitted to
the given filename. This should be used as input to the final link (e.g.
via the @filename option to gold), instead of listing all the objects
within --start-lib/--end-lib pairs again.

Note that the support for the gold callback that identifies included
objects was added in gold version 1.12.

Reviewers: davidxl, mehdi_amini

Subscribers: llvm-commits, mehdi_amini

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

llvm-svn: 276450

8 years ago[PM] Port BreakCriticalEdges to the new PM.
Wei Mi [Fri, 22 Jul 2016 18:04:25 +0000 (18:04 +0000)]
[PM] Port BreakCriticalEdges to the new PM.

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

llvm-svn: 276449

8 years agoClang changes for overloading invariant.start and end intrinsics
Anna Thomas [Fri, 22 Jul 2016 17:50:08 +0000 (17:50 +0000)]
Clang changes for overloading invariant.start and end intrinsics

This change depends on the corresponding LLVM change at:
https://reviews.llvm.org/D22519

The llvm.invariant.start and llvm.invariant.end intrinsics currently
support specifying invariant memory objects only in the default address
space.

With this LLVM change, these intrinsics are overloaded for any adddress space
for memory objects and we can use these llvm invariant intrinsics in
non-default address spaces.

Example: llvm.invariant.start.p1i8(i64 4, i8 addrspace(1)* %ptr)

This overloaded intrinsic is needed for representing final or invariant
memory in managed languages.

llvm-svn: 276448

8 years agoInvariant start/end intrinsics overloaded for address space
Anna Thomas [Fri, 22 Jul 2016 17:49:40 +0000 (17:49 +0000)]
Invariant start/end intrinsics overloaded for address space

Summary:
The llvm.invariant.start and llvm.invariant.end intrinsics currently
support specifying invariant memory objects only in the default address
space.

With this change, these intrinsics are overloaded for any adddress space
for memory objects
and we can use these llvm invariant intrinsics in non-default address
spaces.

Example: llvm.invariant.start.p1i8(i64 4, i8 addrspace(1)* %ptr)

This overloaded intrinsic is needed for representing final or invariant
memory in managed languages.

Reviewers: apilipenko, reames

Subscribers: llvm-commits
llvm-svn: 276447

8 years ago[utils] Update coverage regression checking script
Vedant Kumar [Fri, 22 Jul 2016 17:38:03 +0000 (17:38 +0000)]
[utils] Update coverage regression checking script

r276409 changed the coverage summary format. Update the script so that
it can parse the new output, and incorporate the new information into
its warnings.

llvm-svn: 276446

8 years agoClangRenameTests: Update libdeps.
NAKAMURA Takumi [Fri, 22 Jul 2016 17:33:04 +0000 (17:33 +0000)]
ClangRenameTests: Update libdeps.

llvm-svn: 276445

8 years agoRemove unused parameters from simplifySCoP(). NFC.
Michael Kruse [Fri, 22 Jul 2016 17:31:17 +0000 (17:31 +0000)]
Remove unused parameters from simplifySCoP(). NFC.

llvm-svn: 276444

8 years agoAMDGPU: Implement get_global_offset builtin
Jan Vesely [Fri, 22 Jul 2016 17:24:24 +0000 (17:24 +0000)]
AMDGPU: Implement get_global_offset builtin

Also fix get_global_id to consider offset
No idea how to add this for ptx, so they are stuck with the old get_global_id
implementation.

v2: split to a separate patch

v3: Switch R600 to use implictarg.ptr

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 276443

8 years agoAMDGPU: Use clang intrinsics for workitem builtins
Jan Vesely [Fri, 22 Jul 2016 17:24:20 +0000 (17:24 +0000)]
AMDGPU: Use clang intrinsics for workitem builtins

v2: split into 2 patches
    use clang builtins for other intrinsics as well

v3: Fix warnings
    Switch r600 to use implictarg.ptr

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 276442

8 years ago[Hexagon] Make HexagonCodeGen depend on Scalar
Krzysztof Parzyszek [Fri, 22 Jul 2016 17:23:46 +0000 (17:23 +0000)]
[Hexagon] Make HexagonCodeGen depend on Scalar

Hexagon backend uses LoopDataPrefetch pass that is defined in Scalar.

llvm-svn: 276441

8 years ago[sanitizers] Enable sanitizer_common tests on Win64
Reid Kleckner [Fri, 22 Jul 2016 17:14:31 +0000 (17:14 +0000)]
[sanitizers] Enable sanitizer_common tests on Win64

llvm-svn: 276440

8 years agoAMDGPU: Remove redundant test
Matt Arsenault [Fri, 22 Jul 2016 17:01:36 +0000 (17:01 +0000)]
AMDGPU: Remove redundant test

llvm-svn: 276439

8 years agoAMDGPU: Fix groupstaticsize for large LDS
Matt Arsenault [Fri, 22 Jul 2016 17:01:33 +0000 (17:01 +0000)]
AMDGPU: Fix groupstaticsize for large LDS

The size can exceed s_movk_i32's limit, and we don't
want to use it this early since it inhibits optimizations.

This should probably be merged to the release branch.

llvm-svn: 276438

8 years agoAMDGPU: Add HSA dispatch id intrinsic
Matt Arsenault [Fri, 22 Jul 2016 17:01:30 +0000 (17:01 +0000)]
AMDGPU: Add HSA dispatch id intrinsic

llvm-svn: 276437

8 years agoAMDGPU: Delete more dead code
Matt Arsenault [Fri, 22 Jul 2016 17:01:25 +0000 (17:01 +0000)]
AMDGPU: Delete more dead code

Remove dead code from r600 intrinsic removal.
Remove unset members, rename StackSize to be less ambiguous.

llvm-svn: 276436

8 years agoAMDGPU: Fix i1 fp_to_int
Matt Arsenault [Fri, 22 Jul 2016 17:01:21 +0000 (17:01 +0000)]
AMDGPU: Fix i1 fp_to_int

R600's i1 fp_to_uint selected but was incorrect according to
what instcombine constant folds to.

llvm-svn: 276435

8 years agoAMDGPU: Don't reinvent transferSuccessorsAndUpdatePHIs
Matt Arsenault [Fri, 22 Jul 2016 17:01:15 +0000 (17:01 +0000)]
AMDGPU: Don't reinvent transferSuccessorsAndUpdatePHIs

llvm-svn: 276434

8 years agoGlobalISel: implement alloca instruction
Tim Northover [Fri, 22 Jul 2016 16:59:52 +0000 (16:59 +0000)]
GlobalISel: implement alloca instruction

llvm-svn: 276433

8 years ago[SelectionDAG] Optimization of BITREVERSE legalization for power-of-2 integer scalar...
Simon Pilgrim [Fri, 22 Jul 2016 16:46:25 +0000 (16:46 +0000)]
[SelectionDAG] Optimization of BITREVERSE legalization for power-of-2 integer scalar/vector types

An extension of D19978, this patch replaces the default BITREVERSE evaluation of individual bit masks+shifts with block mask+shifts when we have integer elements of power-of-2 bits in size.

After calling BSWAP to reverse the order of the constituent bytes (which typically follows a similar approach), every neighbouring 4-bits, 2-bits and finally 1-bit pairs are masked off and swapped over with shifts.

In doing so we can significantly reduce the number of operations required.

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

llvm-svn: 276432

8 years ago[Profile] Cleanup: remove unused interface
Xinliang David Li [Fri, 22 Jul 2016 16:11:56 +0000 (16:11 +0000)]
[Profile] Cleanup: remove unused interface

llvm-svn: 276431

8 years ago[Support] Make ErrorAsOutParameter take an Error* rather than an Error&.
Lang Hames [Fri, 22 Jul 2016 16:11:25 +0000 (16:11 +0000)]
[Support] Make ErrorAsOutParameter take an Error* rather than an Error&.

This allows ErrorAsOutParameter to work better with "optional" errors. For
example, consider a function where for certain input values it is known that
the function can't fail. This can now be written as:

Result foo(Arg X, Error *Err) {
  ErrorAsOutParameter EAO(Err);

  if (<Error Condition>) {
    if (Err)
      *Err = <report error>;
    else
      llvm_unreachable("Unexpected failure!");
  }
}

Rather than having to construct an ErrorAsOutParameter under every conditional
where Err is known to be non-null.

llvm-svn: 276430

8 years ago[RDF] Make the graph construction/use less expensive
Krzysztof Parzyszek [Fri, 22 Jul 2016 16:09:47 +0000 (16:09 +0000)]
[RDF] Make the graph construction/use less expensive

- FuncNode::findBlock traverses the function every time. Avoid using it,
  and keep a cache of block addresses in DataFlowGraph instead.
- The operator[] in the map of definition stacks was very slow. Replace
  the map with unordered_map.

llvm-svn: 276429

8 years agoReplace enum types in variadic functions by build-in types.
Samuel Antao [Fri, 22 Jul 2016 16:05:35 +0000 (16:05 +0000)]
Replace enum types in variadic functions by build-in types.

Summary:
When compiling the runtime library with clang we get warnings like:
```
error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
    va_start( args, id );
                    ^
note: parameter of type 'kmp_i18n_id_t' (aka 'kmp_i18n_id') is declared here
    kmp_i18n_id_t id,
```
My understanding is that the va_start macro only gets the promoted type so it won't know what was the exact type of the argument, which can potentially not work for some targets given that the implementation of the the calling convention could not be done properly.

This patch fixes that by using a built-in type in the function signature.

Reviewers: tlwilmar, jlpeyton, AndreyChurbanov

Subscribers: arpith-jacob, carlo.bertolli, caomhin, openmp-commits

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

llvm-svn: 276428

8 years ago[pdb] Move file layout header structs to RawTypes.h
Zachary Turner [Fri, 22 Jul 2016 15:46:46 +0000 (15:46 +0000)]
[pdb] Move file layout header structs to RawTypes.h

This facilitates code reuse between the builder classes and the
"frozen" read only versions of the classes used for parsing
existing PDB files.

llvm-svn: 276427

8 years ago[pdb] Round-trip module & file info to/from YAML.
Zachary Turner [Fri, 22 Jul 2016 15:46:37 +0000 (15:46 +0000)]
[pdb] Round-trip module & file info to/from YAML.

This implements support for writing compiland and compiland source
file info to a binary PDB.  This is tested by adding support for
dumping these fields from an existing PDB to yaml, reading them
back in, and dumping them again and verifying the values are as
expected.

llvm-svn: 276426

8 years agotest commit. update comment grammatically. NFC
Anna Thomas [Fri, 22 Jul 2016 15:37:56 +0000 (15:37 +0000)]
test commit. update comment grammatically. NFC

llvm-svn: 276425

8 years agoptx: Fix builtin names after clang r274770
Jan Vesely [Fri, 22 Jul 2016 15:00:08 +0000 (15:00 +0000)]
ptx: Fix builtin names after clang r274770

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Acked-By: Aaron Watry <awatry@gmail.com>
llvm-svn: 276423

8 years ago[Hexagon] Use loop data prefetch on Hexagon
Krzysztof Parzyszek [Fri, 22 Jul 2016 14:22:43 +0000 (14:22 +0000)]
[Hexagon] Use loop data prefetch on Hexagon

llvm-svn: 276422

8 years agoUse INT64_MAX instead of LLONG_MAX
Reid Kleckner [Fri, 22 Jul 2016 14:11:58 +0000 (14:11 +0000)]
Use INT64_MAX instead of LLONG_MAX

llvm-svn: 276419

8 years ago[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128 with generic IR
Simon Pilgrim [Fri, 22 Jul 2016 13:58:56 +0000 (13:58 +0000)]
[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128 with generic IR

As discussed on D22460, I've updated the vbroadcastf128 pd256/ps256 builtins to map directly to generic IR - load+splat a 128-bit vector to both lanes of a 256-bit vector.

Fix for PR28657.

llvm-svn: 276417

8 years ago[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128 (reapplied)
Simon Pilgrim [Fri, 22 Jul 2016 13:58:44 +0000 (13:58 +0000)]
[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128 (reapplied)

As reported on PR26235, we don't currently make use of the VBROADCASTF128/VBROADCASTI128 instructions (or the AVX512 equivalents) to load+splat a 128-bit vector to both lanes of a 256-bit vector.

This patch enables lowering from subvector insertion/concatenation patterns and auto-upgrades the llvm.x86.avx.vbroadcastf128.pd.256 / llvm.x86.avx.vbroadcastf128.ps.256 intrinsics to match.

We could possibly investigate using VBROADCASTF128/VBROADCASTI128 to load repeated constants as well (similar to how we already do for scalar broadcasts).

Reapplied with fix for PR28657 - removed intrinsic definitions (clang companion patch to be be submitted shortly).

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

llvm-svn: 276416

8 years agoRevert "Revert "[clang-tidy] new cppcoreguidelines-slicing""
Clement Courbet [Fri, 22 Jul 2016 13:45:00 +0000 (13:45 +0000)]
Revert "Revert "[clang-tidy] new cppcoreguidelines-slicing""

Second try for r276408

llvm-svn: 276415

8 years ago[clang-rename] introduce better symbol finding
Kirill Bobyrev [Fri, 22 Jul 2016 13:41:09 +0000 (13:41 +0000)]
[clang-rename] introduce better symbol finding

This patch introduces:

* TypeLoc visiting, which helps a lot in renaming types
* NestedNameSpecifierLoc visiting (through getting them via ASTMatcher at the moment, though, because RecursiveASTVisitor<T>::VisitNestedNameSpecifierLoc isn't implemented), which helps to treat nested names correctly
* better code formatting and refactoring
* bunch of tests

Reviewers: alexfh

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

llvm-svn: 276414

8 years agoRevert "[clang-tidy] new cppcoreguidelines-slicing"
Clement Courbet [Fri, 22 Jul 2016 13:33:51 +0000 (13:33 +0000)]
Revert "[clang-tidy] new cppcoreguidelines-slicing"

Tests fail on clang-x64-ninja-win7 due to too narrow expectation.

llvm-svn: 276413

8 years agoSupport loading files even when incorrect file name specified by the linker
Tamas Berghammer [Fri, 22 Jul 2016 12:55:35 +0000 (12:55 +0000)]
Support loading files even when incorrect file name specified by the linker

"Incorrect" file name seen on Android whene the main executable is
called "app_process32" (or 64) but the linker specifies the package
name (e.g. com.android.calculator2). Additionally it can be present
in case of some linker bugs.

This CL adds logic to try to fetch the correct file name from the proc
file system based on the base address sepcified by the linker in case
we are failed to load the module by name.

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

llvm-svn: 276411

8 years ago[FastISel] Ignore @llvm.assume.
Ahmed Bougacha [Fri, 22 Jul 2016 12:54:53 +0000 (12:54 +0000)]
[FastISel] Ignore @llvm.assume.

llvm-svn: 276410

8 years ago[llvm-cov] - Add the coverage of lines in the summary report.
Ying Yi [Fri, 22 Jul 2016 12:46:13 +0000 (12:46 +0000)]
[llvm-cov] - Add the coverage of lines in the summary report.

The llvm-cov â€˜report' command displays a summary of the coverage of a binary file.
The summary report currently only includes covered regions and covered functions.
This patch adds the coverage of lines in the summary report.

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

llvm-svn: 276409

8 years ago[clang-tidy] new cppcoreguidelines-slicing
Clement Courbet [Fri, 22 Jul 2016 12:42:19 +0000 (12:42 +0000)]
[clang-tidy] new cppcoreguidelines-slicing

Flags slicing of member variables or vtable. See:

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es63-dont-slice
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c145-access-polymorphic-objects-through-pointers-and-references

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

llvm-svn: 276408

8 years ago[llvm-profdata] Bring back reading profile data from STDIN.
Benjamin Kramer [Fri, 22 Jul 2016 12:39:55 +0000 (12:39 +0000)]
[llvm-profdata] Bring back reading profile data from STDIN.

This feature was lost in r276197.

llvm-svn: 276407

8 years agoFixing layout of elf-core file related structures
Pavel Labath [Fri, 22 Jul 2016 12:18:45 +0000 (12:18 +0000)]
Fixing layout of elf-core file related structures

Summary:
The binary layout of prstatus and prpsinfo was wrong.
Some of the member variables where not aligned properly
and others where with a wrong type (e.g. the time related
stuff in prstatus).

I used the structs defined in bfd in binutils to see what the layout
of the elf-core format in these section is.
(https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/hosts/x86-64linux.h;h=4e420a1f2081dd3b51f5d6b7a8e4093580f5cdb5;hb=master)
Note: those structures are only for x86 64 bit elf-core files

This shouldn't have any impact on the functionality, because
lldb actually uses only a few of the member variables of those structs
and they are with a correct type and alignment.

I found this while trying to add/fix the support for
i386 core files (https://llvm.org/bugs/show_bug.cgi?id=26947)

Reviewers: labath

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D22628
Author: Dimitar Vlahovski <dvlahovski@google.com>

llvm-svn: 276406

8 years agoRevert "[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128"
Benjamin Kramer [Fri, 22 Jul 2016 11:03:10 +0000 (11:03 +0000)]
Revert "[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128"

It caused PR28657.

This reverts commit r276281.

llvm-svn: 276405

8 years ago[llvm-cov] - Improve llvm-cov error message
Ying Yi [Fri, 22 Jul 2016 10:52:21 +0000 (10:52 +0000)]
[llvm-cov] - Improve llvm-cov error message

Summary:

When giving the following command:
% llvm-cov report -instr-profile=default.profraw

llvm-cov will give the following error message:

>llvm-cov report: Not enough positional command line arguments specified!
>Must specify at least 1 positional arguments: See: orbis-llvm-cov report -help

This patch changes the error message from  '1 positional arguments'
to '1 positional argument'.

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

llvm-svn: 276404

8 years agoFix a crash when an ELF section symbol have no name
Tamas Berghammer [Fri, 22 Jul 2016 10:43:03 +0000 (10:43 +0000)]
Fix a crash when an ELF section symbol have no name

llvm-svn: 276403

8 years ago[compiler-rt][cmake] Don't reset CAN_TARGET_${arch} on every cmake invocation.
Daniel Sanders [Fri, 22 Jul 2016 10:15:09 +0000 (10:15 +0000)]
[compiler-rt][cmake] Don't reset CAN_TARGET_${arch} on every cmake invocation.

Allowing this variable to be cached makes it possible to repair the MIPS
buildbots in lieu of either fixing the mips64 sanitizer issues or fixing the
detection of mips64 support (which I think was changed by r268977 but didn't
take effect on this buildbot until the last couple days) so that it returns to
not being built on these buildbots.

llvm-svn: 276402

8 years agotest commit
Ying Yi [Fri, 22 Jul 2016 09:20:21 +0000 (09:20 +0000)]
test commit

llvm-svn: 276401

8 years ago[include-fixer] Fix faulty sort predicate.
Benjamin Kramer [Fri, 22 Jul 2016 09:07:16 +0000 (09:07 +0000)]
[include-fixer] Fix faulty sort predicate.

Note the == on the last line, this isn't a strict-weak ordering.

llvm-svn: 276400

8 years agoThis refactoring of ARM machine block size computation creates two utility
Sjoerd Meijer [Fri, 22 Jul 2016 08:39:12 +0000 (08:39 +0000)]
This refactoring of ARM machine block size computation creates two utility
functions so that the size computation is available not only in ConstantIslands
but in other passes as well.

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

llvm-svn: 276399

8 years ago[ELF] Support PROVIDE and PROVIDE_HIDDEN inside SECTIONS
Eugene Leviant [Fri, 22 Jul 2016 07:38:40 +0000 (07:38 +0000)]
[ELF] Support PROVIDE and PROVIDE_HIDDEN inside SECTIONS

llvm-svn: 276398

8 years ago[mips][microMIPS] Implement SLT, SLTI, SLTIU, SLTU microMIPS32r6 instructions
Hrvoje Varga [Fri, 22 Jul 2016 07:18:33 +0000 (07:18 +0000)]
[mips][microMIPS] Implement SLT, SLTI, SLTIU, SLTU microMIPS32r6 instructions
Differential Revision: https://reviews.llvm.org/D19906

llvm-svn: 276397

8 years agoGPGPU: Generate PTX assembly code for the kernel modules
Tobias Grosser [Fri, 22 Jul 2016 07:11:12 +0000 (07:11 +0000)]
GPGPU: Generate PTX assembly code for the kernel modules

Run the NVPTX backend over the GPUModule IR and write the resulting assembly
code in a string.

To work correctly, it is important to invalidate analysis results that still
reference the IR in the kernel module. Hence, this change clears all references
to dominators, loop info, and scalar evolution.

Finally, the NVPTX backend has troubles to generate code for various special
floating point types (not surprising), but also for uncommon integer types. This
commit does not resolve these issues, but pulls out problematic test cases into
separate files to XFAIL them individually and resolve them in future (not
immediate) changes one by one.

llvm-svn: 276396

8 years ago[ELF][MIPS] Apply mask while reading implicit addend and writing result of R_MIPS_26...
Simon Atanasyan [Fri, 22 Jul 2016 05:56:43 +0000 (05:56 +0000)]
[ELF][MIPS] Apply mask while reading implicit addend and writing result of R_MIPS_26 relocation.

llvm-svn: 276395

8 years ago[AVX512] Add ExeDomain to vector extend and truncate instructions.
Craig Topper [Fri, 22 Jul 2016 05:46:44 +0000 (05:46 +0000)]
[AVX512] Add ExeDomain to vector extend and truncate instructions.

llvm-svn: 276394

8 years ago[AVX512] Add initial support for the Execution Domain fixing pass to change some...
Craig Topper [Fri, 22 Jul 2016 05:00:52 +0000 (05:00 +0000)]
[AVX512] Add initial support for the Execution Domain fixing pass to change some EVEX instructions.

llvm-svn: 276393

8 years ago[AVX512] Fix the ExeDomain for some packed fp instructions.
Craig Topper [Fri, 22 Jul 2016 05:00:42 +0000 (05:00 +0000)]
[AVX512] Fix the ExeDomain for some packed fp instructions.

llvm-svn: 276392

8 years ago[AVX512] Add load folding for some AVX512VL logic and arithmetic instructions.
Craig Topper [Fri, 22 Jul 2016 05:00:39 +0000 (05:00 +0000)]
[AVX512] Add load folding for some AVX512VL logic and arithmetic instructions.

llvm-svn: 276391

8 years ago[AVX512] Update X86InstrInfo::foldMemoryOperandCustom to handle the EVEX encoded...
Craig Topper [Fri, 22 Jul 2016 05:00:35 +0000 (05:00 +0000)]
[AVX512] Update X86InstrInfo::foldMemoryOperandCustom to handle the EVEX encoded instructions too.

llvm-svn: 276390

8 years agoDon't remove side effecting instructions due to ConstantFoldInstruction
David Majnemer [Fri, 22 Jul 2016 04:54:44 +0000 (04:54 +0000)]
Don't remove side effecting instructions due to ConstantFoldInstruction

Just because we can constant fold the result of an instruction does not
imply that we can delete the instruction.  It may have side effects.

This fixes PR28655.

llvm-svn: 276389

8 years agoSync up InstrProfData.inc with compiler-rt with fixes to references
Xinliang David Li [Fri, 22 Jul 2016 04:46:56 +0000 (04:46 +0000)]
Sync up InstrProfData.inc with compiler-rt with fixes to references

llvm-svn: 276388

8 years agoRevert 276386
Xinliang David Li [Fri, 22 Jul 2016 04:31:26 +0000 (04:31 +0000)]
Revert 276386

llvm-svn: 276387

8 years agoSync up InstrProfData.inc with compiler-rt
Xinliang David Li [Fri, 22 Jul 2016 04:18:17 +0000 (04:18 +0000)]
Sync up InstrProfData.inc with compiler-rt

llvm-svn: 276386

8 years ago[Profile] cleanup: do not reference name directly of vars shared between rt and llvm
Xinliang David Li [Fri, 22 Jul 2016 04:08:16 +0000 (04:08 +0000)]
[Profile] cleanup: do not reference name directly of vars shared between rt and llvm

llvm-svn: 276385

8 years ago[ELF/LinkerScript] Support ONLY_IF_{RO, RW} directive.
Davide Italiano [Fri, 22 Jul 2016 03:36:24 +0000 (03:36 +0000)]
[ELF/LinkerScript] Support ONLY_IF_{RO, RW} directive.

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

llvm-svn: 276384

8 years ago[sanitizer] refactor TransferBatch to hide the implementation. NFC
Kostya Serebryany [Fri, 22 Jul 2016 02:21:12 +0000 (02:21 +0000)]
[sanitizer] refactor TransferBatch to hide the implementation. NFC

llvm-svn: 276383

8 years agoFix r276380 for targets without REALPATH.
Pete Cooper [Fri, 22 Jul 2016 01:52:58 +0000 (01:52 +0000)]
Fix r276380 for targets without REALPATH.

This was a mistake in the layout of the code from r276380.  I moved the appropriate lines out of the #ifdef to fix it.

llvm-svn: 276382

8 years agoFix test on windows, symbolizer returns invalid line
Vitaly Buka [Fri, 22 Jul 2016 01:47:28 +0000 (01:47 +0000)]
Fix test on windows, symbolizer returns invalid line

llvm-svn: 276381

8 years agoAvoid dsymutil calls to getFileNameByIndex.
Pete Cooper [Fri, 22 Jul 2016 01:41:32 +0000 (01:41 +0000)]
Avoid dsymutil calls to getFileNameByIndex.

This change adds a hasFileAtIndex method. getChildDeclContext can first call this method, and if it returns true it knows it can then lookup the resolved path cache for the given file index. If we hit that cache then we don't even have to call getFileNameByIndex.

Running dsymutil against the swift executable built from github gives a 20% performance improvement without any change in the binary.

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

Reviewed by friss.

llvm-svn: 276380

8 years ago[asan] revert to using -std=c++11 on test/asan/TestCases/use-after-scope-capture...
Kostya Serebryany [Fri, 22 Jul 2016 01:34:32 +0000 (01:34 +0000)]
[asan] revert to using -std=c++11 on  test/asan/TestCases/use-after-scope-capture.cc to fix Linux failures after r276332. This probably breaks the windows build, sorry, but returns to the earlier status quo.

llvm-svn: 276379

8 years agofix windows
Vitaly Buka [Fri, 22 Jul 2016 01:34:12 +0000 (01:34 +0000)]
fix windows

llvm-svn: 276378

8 years ago[sanitizer] allocator: introduce kUseSeparateSizeClassForBatch (false by default...
Kostya Serebryany [Fri, 22 Jul 2016 01:13:13 +0000 (01:13 +0000)]
[sanitizer] allocator: introduce kUseSeparateSizeClassForBatch (false by default). When true, it will cause all TransferBatches to be allocated on a separate dedicated size class, which improves security and may potentially simplify memory reclamation. However in the current state this may cause up to 3% extra memory usage. Subsequent changes should bring this overhead down

llvm-svn: 276377

8 years agoFix test on windows
Vitaly Buka [Fri, 22 Jul 2016 01:12:04 +0000 (01:12 +0000)]
Fix test on windows

llvm-svn: 276376

8 years agoAdd test to check detection of stack-use-after-scope on various types
Vitaly Buka [Fri, 22 Jul 2016 00:58:06 +0000 (00:58 +0000)]
Add test to check detection of stack-use-after-scope on various types

Summary:
Test for D22657

PR27453

Reviewers: kcc, eugenis

Subscribers: kubabrecka

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

llvm-svn: 276375

8 years agoFix detection of stack-use-after scope for char arrays.
Vitaly Buka [Fri, 22 Jul 2016 00:56:17 +0000 (00:56 +0000)]
Fix detection of stack-use-after scope for char arrays.

Summary:
Clang inserts GetElementPtrInst so findAllocaForValue was not
able to find allocas.

PR27453

Reviewers: kcc, eugenis

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

llvm-svn: 276374

8 years ago[IRCE] Don't misuse CHECK-LABEL; NFC
Sanjoy Das [Fri, 22 Jul 2016 00:41:02 +0000 (00:41 +0000)]
[IRCE] Don't misuse CHECK-LABEL; NFC

llvm-svn: 276373

8 years ago[IRCE] Add an option to skip profitability checks
Sanjoy Das [Fri, 22 Jul 2016 00:40:56 +0000 (00:40 +0000)]
[IRCE] Add an option to skip profitability checks

If `-irce-skip-profitability-checks` is passed in, IRCE will kick in in
all cases where it is legal for it to kick in.  This flag is intended to
help diagnose and analyse performance issues.

llvm-svn: 276372

8 years agoRestructure release notes.
Eugene Zelenko [Fri, 22 Jul 2016 00:34:42 +0000 (00:34 +0000)]
Restructure release notes.

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

llvm-svn: 276371

8 years ago[Coverage] Attempt to appease a Windows builder
Vedant Kumar [Fri, 22 Jul 2016 00:25:09 +0000 (00:25 +0000)]
[Coverage] Attempt to appease a Windows builder

The builder prints out the following IR:

  \5CCoverageMapping\5COutput\5Ctest\5Cf1.c

The updated test in r276367 expects path separators to be either '/' or
'\\', so it chokes on the unexpected "5C" stuff. I'm not sure what that
is, but I included a kludge that should work around it.

Failing bot:

  http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/8718

llvm-svn: 276370

8 years agoAdd support to get the shared cache information from the new
Jason Molenda [Fri, 22 Jul 2016 00:17:55 +0000 (00:17 +0000)]
Add support to get the shared cache information from the new
debugserver jGetSharedCacheInfo packet instead of reading
the dyld internal data structures directly.  This code is
(currently) only used for ios native lldb's - I should really
move this ObjectFileMachO::GetProcessSharedCacheUUID method
somewhere else, it makes less and less sense being in the
file reader.

<rdar://problem/25251243>

llvm-svn: 276369

8 years agoGVN-hoist: move check before mutating the IR
Sebastian Pop [Fri, 22 Jul 2016 00:07:01 +0000 (00:07 +0000)]
GVN-hoist: move check before mutating the IR

llvm-svn: 276368