OSDN Git Service

android-x86/external-llvm.git
6 years ago[lit] Fix some Python 3 compatibility issues.
Zachary Turner [Sat, 16 Sep 2017 18:45:44 +0000 (18:45 +0000)]
[lit] Fix some Python 3 compatibility issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313466 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove some extra code that snuck into r313450.
Craig Topper [Sat, 16 Sep 2017 17:51:55 +0000 (17:51 +0000)]
[X86] Remove some extra code that snuck into r313450.

The same code appears earlier in the function. This represents an earlier version of what became r313373 that I still had sitting in my local repo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313465 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agollvm-dwarfdump: support a --show-children option
Adrian Prantl [Sat, 16 Sep 2017 17:28:00 +0000 (17:28 +0000)]
llvm-dwarfdump: support a --show-children option

This will print all children of a DIE when selectively printing only
one DIE at a given offset.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313464 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agollvm-dwarfdump: Add support for -debug-types=<offset>.
Adrian Prantl [Sat, 16 Sep 2017 16:58:18 +0000 (16:58 +0000)]
llvm-dwarfdump: Add support for -debug-types=<offset>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313463 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Fix the lit unit tests.
Zachary Turner [Sat, 16 Sep 2017 15:48:30 +0000 (15:48 +0000)]
[lit] Fix the lit unit tests.

A few tests were manually constructing a LitConfig object, since
I added a new argument to it this was triggering some failures
I didn't detect.  `ninja check-lit` passes now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313461 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Add a single process mode.
Zachary Turner [Sat, 16 Sep 2017 15:31:34 +0000 (15:31 +0000)]
[lit] Add a single process mode.

This is helpful for debugging test failures since it removes
the multiprocessing pool from the picture.  This will obviously
slow down the test suite by a few orders of magnitude, so it
should only be used for debugging specific failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313460 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-readobj] - Teach tool to report error if some section is in multiple COMDAT...
George Rimar [Sat, 16 Sep 2017 14:29:51 +0000 (14:29 +0000)]
[llvm-readobj] - Teach tool to report error if some section is in multiple COMDAT groups at once.

readelf tool reports an error when output contains the same section
in multiple COMDAT groups. That can be useful.
Path teaches llvm-readobj to do the same.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313459 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[x86] enable storeOfVectorConstantIsCheap() target hook
Sanjay Patel [Sat, 16 Sep 2017 13:29:12 +0000 (13:29 +0000)]
[x86] enable storeOfVectorConstantIsCheap() target hook

This allows vector-sized store merging of constants in DAGCombiner using the existing code in MergeConsecutiveStores().
All of the twisted logic that decides exactly what vector operations are legal and fast for each particular CPU are
handled separately in there using the appropriate hooks.

For the motivating tests in merge-store-constants.ll, we already produce the same vector code in IR via the SLP vectorizer.
So this is just providing a backend backstop for code that doesn't go through that pass (-O1). More details in PR24449:
https://bugs.llvm.org/show_bug.cgi?id=24449 (this change should be the last step to resolve that bug)

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313458 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoReformat.
NAKAMURA Takumi [Sat, 16 Sep 2017 12:13:03 +0000 (12:13 +0000)]
Reformat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313457 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agollvm/IR/DiagnosticHandler.h: Add include guard, or -fmodules would be confused.
NAKAMURA Takumi [Sat, 16 Sep 2017 12:13:00 +0000 (12:13 +0000)]
llvm/IR/DiagnosticHandler.h: Add include guard, or -fmodules would be confused.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313456 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Add isel patterns to be able to fold loads into VPERM2F128 even when the load...
Craig Topper [Sat, 16 Sep 2017 09:16:48 +0000 (09:16 +0000)]
[X86] Add isel patterns to be able to fold loads into VPERM2F128 even when the load is on the first input to the SDNode.

We just need to toggle bits 1 and 5 of the immediate and swap the sources. The peephole pass could trigger commuting/folding for this later, but its easy enough to fix in isel.

Disable the peephole pass on the main vperm2x128 test so we know we're doing this through isel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313455 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove unused check lines that got left behind when I moved tests to the instri...
Craig Topper [Sat, 16 Sep 2017 09:16:46 +0000 (09:16 +0000)]
[X86] Remove unused check lines that got left behind when I moved tests to the instrinsic upgrade file and regenerated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313454 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove VPERM2X128 isel patterns with 32-bit elements.
Craig Topper [Sat, 16 Sep 2017 08:15:52 +0000 (08:15 +0000)]
[X86] Remove VPERM2X128 isel patterns with 32-bit elements.

Now that the intrinsics are gone we only need 64-bit elements since that's what shuffle lowering uses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313453 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove the vperm2f128 test file I just added in r313450.
Craig Topper [Sat, 16 Sep 2017 07:51:01 +0000 (07:51 +0000)]
[X86] Remove the vperm2f128 test file I just added in r313450.

I missed the we already had a pretty thorough test file for these instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313451 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove VPERM2F128/VPERM2I128 intrinsics and autoupgrade to native shuffles.
Craig Topper [Sat, 16 Sep 2017 07:36:14 +0000 (07:36 +0000)]
[X86] Remove VPERM2F128/VPERM2I128 intrinsics and autoupgrade to native shuffles.

I've moved the test cases from the InstCombine optimizations to the backend to keep the coverage we had there. It covered every possible immediate so I've preserved the resulting shuffle mask for each of those immediates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313450 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Fix some FileCheck lines that use the wrong prefix.
Craig Topper [Sat, 16 Sep 2017 07:13:39 +0000 (07:13 +0000)]
[X86] Fix some FileCheck lines that use the wrong prefix.

Assume they were moved during autoupgrading and not changed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313448 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[git] Update the llvm git helper script to work correctly with the
Chandler Carruth [Sat, 16 Sep 2017 02:13:35 +0000 (02:13 +0000)]
[git] Update the llvm git helper script to work correctly with the
latest Python versions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313435 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Don't set reserved bits in the immediate in the test cases for vperm2f128.
Craig Topper [Sat, 16 Sep 2017 02:11:21 +0000 (02:11 +0000)]
[X86] Don't set reserved bits in the immediate in the test cases for vperm2f128.

I'm going to autoupgrade these intrinsics in a future commit. This bit will never be set in the resulting output so pre-removing the bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313434 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove slash in front of a CHECK line in a test.
Craig Topper [Sat, 16 Sep 2017 01:43:21 +0000 (01:43 +0000)]
[X86] Remove slash in front of a CHECK line in a test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313433 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert "Fix Bug 30978 by emitting cv file checksums."
Eric Beckmann [Sat, 16 Sep 2017 01:14:36 +0000 (01:14 +0000)]
Revert "Fix Bug 30978 by emitting cv file checksums."

This reverts commit 6389e7aa724ea7671d096f4770f016c3d86b0d54.

There is a bug in this implementation where the string value of the
checksum is outputted, instead of the actual hex bytes.  Therefore the
checksum is incorrect, and this prevent pdbs from being loaded by visual
studio.  Revert this until the checksum is emitted correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313431 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert lit changes related to lit.llvm module.
Zachary Turner [Sat, 16 Sep 2017 00:52:49 +0000 (00:52 +0000)]
Revert lit changes related to lit.llvm module.

It looks like this is going to be non-trivial to get working
in both Py2 and Py3, so for now I'm reverting until I have time
to fully test it under Python 3.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313429 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Fix another Python 3 error.
Zachary Turner [Sat, 16 Sep 2017 00:43:16 +0000 (00:43 +0000)]
[lit] Fix another Python 3 error.

Apparently we have a buildbot running Python 3.  This is going
to be fun :-/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313428 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Better check for integral value.
Zachary Turner [Sat, 16 Sep 2017 00:38:20 +0000 (00:38 +0000)]
[lit] Better check for integral value.

Some versions of python don't have 'long'.  Use numbers.Number
instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313427 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoResubmit "[lit] Add a lit.llvm module that all llvm projects can use"
Zachary Turner [Sat, 16 Sep 2017 00:25:58 +0000 (00:25 +0000)]
Resubmit "[lit] Add a lit.llvm module that all llvm projects can use"

This was reverted alongside the revert of the lit/llvm-lit refactor,
but now that that has re-landed, I'm relanding this as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313426 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove usages of vperm2f intrinsics from fast isel tests to match what clang...
Craig Topper [Fri, 15 Sep 2017 23:53:43 +0000 (23:53 +0000)]
[X86] Remove usages of vperm2f intrinsics from fast isel tests to match what clang generates after r313418.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313424 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-cov] Fix a bot failure due to r313417
Vedant Kumar [Fri, 15 Sep 2017 23:14:22 +0000 (23:14 +0000)]
[llvm-cov] Fix a bot failure due to r313417

There's a type mismatch issue with the arguments to a call to std::min
introduced in r313417.

http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15/builds/11174

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313422 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove GCCBuiltin names from perm2f128/perm2i128 intrinsics so we can provide...
Craig Topper [Fri, 15 Sep 2017 23:05:51 +0000 (23:05 +0000)]
[X86] Remove GCCBuiltin names from perm2f128/perm2i128 intrinsics so we can provide a custom implementation in clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313420 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agollvm-dwarfdump: Add support for -debug-info=<offset>.
Adrian Prantl [Fri, 15 Sep 2017 23:04:04 +0000 (23:04 +0000)]
llvm-dwarfdump: Add support for -debug-info=<offset>.

This is the first of many commits that enable selectively dumping just
one record from the debug info.

This reapplies r313412 with some extra qualification to appease GCC and MSVC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313419 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-cov] Avoid over-counting covered lines and regions
Vedant Kumar [Fri, 15 Sep 2017 23:00:02 +0000 (23:00 +0000)]
[llvm-cov] Avoid over-counting covered lines and regions

* Fix an unsigned integer overflow in the logic that computes the
  number of uncovered lines in a function.

* When aggregating region and line coverage summaries, take into account
  that different instantiations may have a different number of regions.

The new test case provides test coverage for both bugs. I also verified
this change by preparing a coverage report for a stage2 build of llc --
the new assertions should detect any outstanding over-counting bugs.

Fixes PR34613.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313417 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-cov] Make some summary info fields private. NFC.
Vedant Kumar [Fri, 15 Sep 2017 23:00:01 +0000 (23:00 +0000)]
[llvm-cov] Make some summary info fields private. NFC.

There's a bug in the way the line and region summary objects are merged.
It would have been less likely to occur if those objects kept some data
private.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313416 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-cov] Remove a redundant field. NFC.
Vedant Kumar [Fri, 15 Sep 2017 23:00:00 +0000 (23:00 +0000)]
[llvm-cov] Remove a redundant field. NFC.

The "NotCovered" fields in the region and line summary structs are
redundant. We should remove them to make the code clearer.

As a follow-up, the "NotCovered" entries should be removed from the
reports as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313415 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert "llvm-dwarfdump: Add support for -debug-info=<offset>."
Adrian Prantl [Fri, 15 Sep 2017 22:47:16 +0000 (22:47 +0000)]
Revert "llvm-dwarfdump: Add support for -debug-info=<offset>."

This reverts commit r313412 because of a g++ incompatibility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313413 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agollvm-dwarfdump: Add support for -debug-info=<offset>.
Adrian Prantl [Fri, 15 Sep 2017 22:37:56 +0000 (22:37 +0000)]
llvm-dwarfdump: Add support for -debug-info=<offset>.

This is the first of many commits that enable selectively dumping just
one record from the debug info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313412 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[TargetTransformInfo] Static alloca has 0 cost
Guozhi Wei [Fri, 15 Sep 2017 22:28:12 +0000 (22:28 +0000)]
[TargetTransformInfo] Static alloca has 0 cost

Static alloca usually doesn't generate any machine instructions, so it has 0 cost.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313410 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[SLP] Revert r312791 and other necessary commits, except for TTI and
Chandler Carruth [Fri, 15 Sep 2017 22:23:27 +0000 (22:23 +0000)]
[SLP] Revert r312791 and other necessary commits, except for TTI and
CostModel.

The original patch added support for horizontal min/max reductions to
the SLP vectorizer.

This patch causes LLVM to miscompile fairly simple signed min
reductions. I have attached a test progrom to http://llvm.org/PR34635
that shows the behavior change after this patch. We found this in a test
for the open source Eigen library, but also in other code.

Unfortunately, the revert is moderately challenging. It required
reverting:
r313042: [SLP] Test with multiple uses of conditional op and wrong parent.
r312853: [SLP] Fix buildbots, NFC.
r312793: [SLP] Fix the warning about paths not returning the value, NFC.
r312791: [SLP] Support for horizontal min/max reduction.

And even then, I had to completely skip reverting the changes to TTI and
CostModel because r312832 rewrote so much of this code. Plus, the cost
modeling changes aren implicated in the miscompile, so they should be
fine and will just not be used until this gets re-introduced.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313409 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoResubmit "[lit] Force site configs to run before source-tree configs"
Zachary Turner [Fri, 15 Sep 2017 22:10:46 +0000 (22:10 +0000)]
Resubmit "[lit] Force site configs to run before source-tree configs"

This is a resubmission of r313270.  It broke standalone builds of
compiler-rt because we were not correctly generating the llvm-lit
script in the standalone build directory.

The fixes incorporated here attempt to find llvm/utils/llvm-lit
from the source tree returned by llvm-config.  If present, it
will generate llvm-lit into the output directory.  Regardless,
the user can specify -DLLVM_EXTERNAL_LIT to point to a specific
lit.py on their file system.  This supports the use case of
someone installing lit via a package manager.  If it cannot find
a source tree, and -DLLVM_EXTERNAL_LIT is either unspecified or
invalid, then we print a warning that tests will not be able
to run.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313407 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoName the sentinel value used for the location number of the undefined register NFC
Reid Kleckner [Fri, 15 Sep 2017 22:08:50 +0000 (22:08 +0000)]
Name the sentinel value used for the location number of the undefined register NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313405 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoTest patch to check my commit access
Jake Ehrlich [Fri, 15 Sep 2017 22:04:09 +0000 (22:04 +0000)]
Test patch to check my commit access

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313404 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[DebugInfo] Insert DW_OP_deref when spilling indirect DBG_VALUEs
Reid Kleckner [Fri, 15 Sep 2017 21:54:38 +0000 (21:54 +0000)]
[DebugInfo] Insert DW_OP_deref when spilling indirect DBG_VALUEs

Summary:
This comes up in optimized debug info for C++ programs that pass and
return objects indirectly by address. In these programs,
llvm.dbg.declare survives optimization, which causes us to emit indirect
DBG_VALUE instructions. The fast register allocator knows to insert
DW_OP_deref when spilling indirect DBG_VALUE instructions, but the
LiveDebugVariables did not until this change.

This fixes part of PR34513. I need to look into why this doesn't work at
-O0 and I'll send follow up patches to handle that.

Reviewers: aprantl, dblaikie, probinson

Subscribers: qcolombet, hiraditya, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313400 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[DebugInfo] Add missing DW_OP_deref when an NRVO pointer is spilled
Reid Kleckner [Fri, 15 Sep 2017 21:49:56 +0000 (21:49 +0000)]
[DebugInfo] Add missing DW_OP_deref when an NRVO pointer is spilled

Summary:
Fixes PR34513.

Indirect DBG_VALUEs typically come from dbg.declares of non-trivially
copyable C++ objects that must be passed by address. We were already
handling the case where the virtual register gets allocated to a
physical register and is later spilled. That's what usually happens for
normal parameters that aren't NRVO variables: they usually appear in
physical register parameters, and are spilled later in the function,
which would correctly add deref.

NRVO variables are different because the dbg.declare can come much later
after earlier instructions cause the incoming virtual register to be
spilled.

Also, clean up this code. We only need to look at the first operand of a
DBG_VALUE, which eliminates the operand loop.

Reviewers: aprantl, dblaikie, probinson

Subscribers: MatzeB, qcolombet, llvm-commits, hiraditya

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313399 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[AutoUpgrade] Fix a compatibility issue with module flag
Steven Wu [Fri, 15 Sep 2017 21:12:14 +0000 (21:12 +0000)]
[AutoUpgrade] Fix a compatibility issue with module flag

Summary:
After r304661, module flag to record objective-c image info section is
encoded without whitespaces after comma. The new name is equivalent to
the old one, except that when LTO a module built by old compiler and a
module built by a new compiler, it will fail with conflicting values.

Fix the issue by removing whitespaces in bitcode upgrade path.

rdar://problem/34416934

Reviewers: compnerd

Reviewed By: compnerd

Subscribers: mehdi_amini, hans, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313398 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFix build for LLVM unittests
Reid Kleckner [Fri, 15 Sep 2017 21:12:13 +0000 (21:12 +0000)]
Fix build for LLVM unittests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313397 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] MC: Create wasm data segments based on MCSections
Sam Clegg [Fri, 15 Sep 2017 20:54:59 +0000 (20:54 +0000)]
[WebAssembly] MC: Create wasm data segments based on MCSections

This means that we can honor -fdata-sections rather than
always creating a segment for each symbol.

It also allows for a followup change to add .init_array and friends.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313395 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[ConstantFold] Return the correct type when folding a GEP with vector indices.
Davide Italiano [Fri, 15 Sep 2017 20:53:05 +0000 (20:53 +0000)]
[ConstantFold] Return the correct type when folding a GEP with vector indices.

As Eli pointed out (and I got wrong in the first place), langref says: "The
getelementptr returns a vector of pointers, instead of a single address, when one
or more of its arguments is a vector. In such cases, all vector arguments should
have the same number of elements, and every scalar argument will be effectively
broadcast into a vector during address calculation."

Costantfold for gep doesn't really take in account this paragraph, returning a
pointer instead of a vector of pointer which triggers an assertion in RAUW,
as we're trying to replace values with mistmatching types.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313394 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoChange encodeU/SLEB128 to pad to certain number of bytes
Sam Clegg [Fri, 15 Sep 2017 20:34:47 +0000 (20:34 +0000)]
Change encodeU/SLEB128 to pad to certain number of bytes

Previously the 'Padding' argument was the number of padding
bytes to add. However most callers that use 'Padding' know
how many overall bytes they need to write.  With the previous
code this would mean encoding the LEB once to find out how
many bytes it would occupy and then using this to calulate
the 'Padding' value.

See: https://reviews.llvm.org/D36595

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313393 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoThis patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352
Vivek Pandya [Fri, 15 Sep 2017 20:10:09 +0000 (20:10 +0000)]
This patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352
It enables OptimizationRemarkEmitter::allowExtraAnalysis and MachineOptimizationRemarkEmitter::allowExtraAnalysis to return true not only for -fsave-optimization-record but when specific remarks are requested with
command line options.
The diagnostic handler used to be callback now this patch adds a class
DiagnosticHandler. It has virtual method to provide custom diagnostic handler
and methods to control which particular remarks are enabled.
However LLVM-C API users can still provide callback function for diagnostic handler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313390 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm] Fix some typos. NFC.
Mandeep Singh Grang [Fri, 15 Sep 2017 20:01:43 +0000 (20:01 +0000)]
[llvm] Fix some typos. NFC.

Reviewers: mcrosier

Reviewed By: mcrosier

Subscribers: mcrosier, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313388 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoThis reverts r313381
Vivek Pandya [Fri, 15 Sep 2017 19:53:54 +0000 (19:53 +0000)]
This reverts r313381

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313387 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Pass ArrayRef rather than SmallVector
Sam Clegg [Fri, 15 Sep 2017 19:50:44 +0000 (19:50 +0000)]
[WebAssembly] Pass ArrayRef rather than SmallVector

This is more flexible and less verbose.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313384 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoImprove comment
Adam Nemet [Fri, 15 Sep 2017 19:38:01 +0000 (19:38 +0000)]
Improve comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313383 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoThis patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352
Vivek Pandya [Fri, 15 Sep 2017 19:30:59 +0000 (19:30 +0000)]
This patch fixes https://bugs.llvm.org/show_bug.cgi?id=32352
It enables OptimizationRemarkEmitter::allowExtraAnalysis and MachineOptimizationRemarkEmitter::allowExtraAnalysis to return true not only for -fsave-optimization-record but when specific remarks are requested with
command line options.
The diagnostic handler used to be callback now this patch adds a class
DiagnosticHandler. It has virtual method to provide custom diagnostic handler
and methods to control which particular remarks are enabled.
However LLVM-C API users can still provide callback function for diagnostic handler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313382 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] MC: Fix crash in getProvitionalValue on weak references
Sam Clegg [Fri, 15 Sep 2017 19:22:01 +0000 (19:22 +0000)]
[WebAssembly] MC: Fix crash in getProvitionalValue on weak references

- Create helper function for resolving weak references.
- Add test that preproduces the crash.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313381 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFix selecting legal types in TypeInfer::getLegalTypes
Krzysztof Parzyszek [Fri, 15 Sep 2017 18:58:07 +0000 (18:58 +0000)]
Fix selecting legal types in TypeInfer::getLegalTypes

Collect all legal types for all modes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313380 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert r313343 "[X86] PR32755 : Improvement in CodeGen instruction selection for...
Hans Wennborg [Fri, 15 Sep 2017 18:40:26 +0000 (18:40 +0000)]
Revert r313343 "[X86] PR32755 : Improvement in CodeGen instruction selection for LEAs."

This caused PR34629: asserts firing when building Chromium. It also broke some
buildbots building test-suite as reported on the commit thread.

> Summary:
>    1/  Operand folding during complex pattern matching for LEAs has been
>        extended, such that it promotes Scale to accommodate similar operand
>        appearing in the DAG.
>        e.g.
>           T1 = A + B
>           T2 = T1 + 10
>           T3 = T2 + A
>        For above DAG rooted at T3, X86AddressMode will no look like
>           Base = B , Index = A , Scale = 2 , Disp = 10
>
>    2/  During OptimizeLEAPass down the pipeline factorization is now performed over LEAs
>        so that if there is an opportunity then complex LEAs (having 3 operands)
>        could be factored out.
>        e.g.
>           leal 1(%rax,%rcx,1), %rdx
>           leal 1(%rax,%rcx,2), %rcx
>        will be factored as following
>           leal 1(%rax,%rcx,1), %rdx
>           leal (%rdx,%rcx)   , %edx
>
>    3/ Aggressive operand folding for AM based selection for LEAs is sensitive to loops,
>       thus avoiding creation of any complex LEAs within a loop.
>
> Reviewers: lsaba, RKSimon, craig.topper, qcolombet
>
> Reviewed By: lsaba
>
> Subscribers: spatel, igorb, llvm-commits
>
> Differential Revision: https://reviews.llvm.org/D35014

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313376 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFix indentation.
Adrian Prantl [Fri, 15 Sep 2017 18:35:37 +0000 (18:35 +0000)]
Fix indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313375 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFix Bug 30978 by emitting cv file checksums.
Eric Beckmann [Fri, 15 Sep 2017 18:20:28 +0000 (18:20 +0000)]
Fix Bug 30978 by emitting cv file checksums.

Summary:
The checksums had already been placed in the IR, this patch allows
MCCodeView to actually write it out to an MCStreamer.

Subscribers: llvm-commits, hiraditya

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313374 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Prefer VPERMQ over VPERM2F128 for any unary shuffle, not just the ones that...
Craig Topper [Fri, 15 Sep 2017 18:11:13 +0000 (18:11 +0000)]
[X86] Prefer VPERMQ over VPERM2F128 for any unary shuffle, not just the ones that can be done with a insertf128

The early out for AVX2 in lowerV2X128VectorShuffle is positioned in a weird spot below some shuffle mask equivalency checks.

But I think we want to allow VPERMQ for any unary shuffle.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313373 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agollvm-dwarfdump: Factor out the printing of the section header (NFC)
Adrian Prantl [Fri, 15 Sep 2017 17:39:50 +0000 (17:39 +0000)]
llvm-dwarfdump: Factor out the printing of the section header (NFC)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313370 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFix typo in vector reduction costs comment. NFCI.
Simon Pilgrim [Fri, 15 Sep 2017 17:28:07 +0000 (17:28 +0000)]
Fix typo in vector reduction costs comment. NFCI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313368 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Use SDNode::ops() instead of makeArrayRef and op_begin(). NFCI
Craig Topper [Fri, 15 Sep 2017 17:09:05 +0000 (17:09 +0000)]
[X86] Use SDNode::ops() instead of makeArrayRef and op_begin(). NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313367 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Don't create i64 constants on 32-bit targets when lowering v64i1 constant build...
Craig Topper [Fri, 15 Sep 2017 17:09:03 +0000 (17:09 +0000)]
[X86] Don't create i64 constants on 32-bit targets when lowering v64i1 constant build vectors

When handling a v64i1 build vector of constants on 32-bit targets we were creating an illegal i64 constant that we then bitcasted back to v64i1. We need to instead create two 32-bit constants, bitcast them to v32i1 and concat the result. We should also take care to handle the halves being all zeros/ones after the split.

This patch splits the build vector and then recursively lowers the two pieces. This allows us to handle the all ones and all zeros cases with minimal effort. Ideally we'd just do the split and concat, and let lowering get called again on the new nodes, but getNode has special handling for CONCAT_VECTORS that reassembles the pieces back into a single BUILD_VECTOR. Hopefully the two temporary BUILD_VECTORS we had to create to do this that don't get returned don't cause any issues.

Fixes PR34605.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313366 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Add isel pattern infrastructure to begin recognizing when we're inserting 0s...
Craig Topper [Fri, 15 Sep 2017 17:09:00 +0000 (17:09 +0000)]
[X86] Add isel pattern infrastructure to begin recognizing when we're inserting 0s into the upper portions of a vector register and the producing instruction as already produced the zeros.

Currently if we're inserting 0s into the upper elements of a vector register we insert an explicit move of the smaller register to implicitly zero the upper bits. But if we can prove that they are already zero we can skip that. This is based on a similar idea of what we do to avoid emitting explicit zero extends for GR32->GR64.

Unfortunately, this is harder for vector registers because there are several opcodes that don't have VEX equivalent instructions, but can write to XMM registers. Among these are SHA instructions and a MMX->XMM move. Bitcasts can also get in the way.

So for now I'm starting with explicitly allowing only VPMADDWD because we emit zeros in combineLoopMAddPattern. So that is placing extra instruction into the reduction loop.

I'd like to allow PSADBW as well after D37453, but that's currently blocked by a bitcast. We either need to peek through bitcasts or canonicalize insert_subvectors with zeros to remove bitcasts on the value being inserted.

Longer term we should probably have a cleanup pass that removes superfluous zeroing moves even when the producer is in another basic block which is something these isel tricks can't do. See PR32544.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313365 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[RuntimeUnroll] Add heuristic for unrolling multi-exit loop
Anna Thomas [Fri, 15 Sep 2017 15:56:05 +0000 (15:56 +0000)]
[RuntimeUnroll] Add heuristic for unrolling multi-exit loop

Add a profitability heuristic to enable runtime unrolling of multi-exit
loop: There can be atmost two unique exit blocks for the loop and the
second exit block should be a deoptimizing block. Also, there can be one
other exiting block other than the latch exiting block. The reason for
the latter is so that we limit the number of branches in the unrolled
code to being at most the unroll factor.  Deoptimizing blocks are rarely
taken so these additional number of branches created due to the
unrolling are predictable, since one of their target is the deopt block.

Reviewers: apilipenko, reames, evstupac, mkuper

Subscribers: llvm-commits

Reviewed by: reames

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313363 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] Switch to parameterized register classes for HVX
Krzysztof Parzyszek [Fri, 15 Sep 2017 15:46:05 +0000 (15:46 +0000)]
[Hexagon] Switch to parameterized register classes for HVX

This removes the duplicate HVX instruction set for the 128-byte mode.
Single instruction set now works for both modes (64- and 128-byte).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313362 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAdded optional validation of svn sources to Dockerfiles.
Ilya Biryukov [Fri, 15 Sep 2017 13:35:54 +0000 (13:35 +0000)]
Added optional validation of svn sources to Dockerfiles.

Summary: This commit also adds a script to compute sha256 hashes of llvm checkouts.

Reviewers: klimek, mehdi_amini

Reviewed By: klimek

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313359 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[RuntimeUnrolling] Populate the VMap entry correctly when default generated through...
Anna Thomas [Fri, 15 Sep 2017 13:29:33 +0000 (13:29 +0000)]
[RuntimeUnrolling] Populate the VMap entry correctly when default generated through lookup

During runtime unrolling on loops with multiple exits, we update the
exit blocks with the correct phi values from both original and remainder
loop.
In this process, we lookup the VMap for the mapped incoming phi values,
but did not update the VMap if a default entry was generated in the VMap
during the lookup. This default value is generated when constants or
values outside the current loop are looked up.
This patch fixes the assertion failure when null entries are present in
the VMap because of this lookup. Added a testcase that showcases the
problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313358 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRemove unneeded forward declaration. NFC
Alexander Kornienko [Fri, 15 Sep 2017 11:45:57 +0000 (11:45 +0000)]
Remove unneeded forward declaration. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313357 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAdd a ReleaseNotes blurb for Execute.*Wait API change
Alexander Kornienko [Fri, 15 Sep 2017 11:45:30 +0000 (11:45 +0000)]
Add a ReleaseNotes blurb for Execute.*Wait API change

... in r313155, r313156.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313356 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86][SSE] Add test cases vector for integer multiplies
Simon Pilgrim [Fri, 15 Sep 2017 11:17:42 +0000 (11:17 +0000)]
[X86][SSE] Add test cases vector for integer multiplies

Mainly inspired by PR34474 / D37896

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313353 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert "[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in...
Ilya Biryukov [Fri, 15 Sep 2017 10:15:00 +0000 (10:15 +0000)]
Revert "[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in integer binary ops."

This reverts commit r313348.

Reason: it caused buildbot failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313352 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[AArch64] allow v8f16 types when FullFP16 is supported
Sjoerd Meijer [Fri, 15 Sep 2017 09:24:48 +0000 (09:24 +0000)]
[AArch64] allow v8f16 types when FullFP16 is supported

This adds support for allowing v8f16 vector types, thus avoiding conversions
from/to single precision for these types. This is a follow up patch of
commits r311154 and r312104, which added support for scalars and v4f16
types, respectively.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313351 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRecommit "[RegAlloc] Make sure live-ranges reflect the state of the IR when
Jonas Paulsson [Fri, 15 Sep 2017 07:47:38 +0000 (07:47 +0000)]
Recommit "[RegAlloc] Make sure live-ranges reflect the state of the IR when
         removing them"

This was temporarily reverted, but now that the fix has been commited (r313197)
it should be put back in place.

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

This reverts commit 9ef93d9dc4c51568e858cf8203cd2c5ce8dca796.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313349 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in integer...
Dinar Temirbulatov [Fri, 15 Sep 2017 06:56:39 +0000 (06:56 +0000)]
[SLPVectorizer] Failure to beneficially vectorize 'copyable' elements in integer binary ops.

Patch tries to improve vectorization of the following code:

void add1(int * __restrict dst, const int * __restrict src) {
  *dst++ = *src++;
  *dst++ = *src++ + 1;
  *dst++ = *src++ + 2;
  *dst++ = *src++ + 3;
}
Allows to vectorize even if the very first operation is not a binary add, but just a load.

Reviewers: spatel, mzolotukhin, mkuper, hfinkel, RKSimon, filcab, ABataev, davide

Subscribers: llvm-commits, RKSimon

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313348 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[ORC] Fix a typo.
Lang Hames [Fri, 15 Sep 2017 06:50:19 +0000 (06:50 +0000)]
[ORC] Fix a typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313346 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] PR32755 : Improvement in CodeGen instruction selection for LEAs.
Jatin Bhateja [Fri, 15 Sep 2017 05:29:51 +0000 (05:29 +0000)]
[X86] PR32755 : Improvement in CodeGen instruction selection for LEAs.

Summary:
   1/  Operand folding during complex pattern matching for LEAs has been
       extended, such that it promotes Scale to accommodate similar operand
       appearing in the DAG.
       e.g.
          T1 = A + B
          T2 = T1 + 10
          T3 = T2 + A
       For above DAG rooted at T3, X86AddressMode will no look like
          Base = B , Index = A , Scale = 2 , Disp = 10

   2/  During OptimizeLEAPass down the pipeline factorization is now performed over LEAs
       so that if there is an opportunity then complex LEAs (having 3 operands)
       could be factored out.
       e.g.
          leal 1(%rax,%rcx,1), %rdx
          leal 1(%rax,%rcx,2), %rcx
       will be factored as following
          leal 1(%rax,%rcx,1), %rdx
          leal (%rdx,%rcx)   , %edx

   3/ Aggressive operand folding for AM based selection for LEAs is sensitive to loops,
      thus avoiding creation of any complex LEAs within a loop.

Reviewers: lsaba, RKSimon, craig.topper, qcolombet

Reviewed By: lsaba

Subscribers: spatel, igorb, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313343 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[SLPVectorizer] Remove duplicated functionality code in initScheduleData function...
Dinar Temirbulatov [Fri, 15 Sep 2017 04:31:54 +0000 (04:31 +0000)]
[SLPVectorizer] Remove duplicated functionality code in initScheduleData function, NFCI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313341 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[XRay] fix and clarify comments in the log file decoder
Martin Pelikan [Fri, 15 Sep 2017 04:22:16 +0000 (04:22 +0000)]
[XRay] fix and clarify comments in the log file decoder

Summary:
For readers unfamiliar with the XRay code base, reference the compiler-rt
implementation even though we're not allowed to share any code and explain
our little-endian views more clearly.

For code clarity either get rid of obvious comments or explain their
intentions, fix typos, correct coding style according to LLVM's standards
and manually CSE long expressions to point out it is the same expression.

Reviewers: dberris

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313340 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Object] Fix missing arguments to getType and getSymbol in Elf_Rel_Impl
Petr Hosek [Fri, 15 Sep 2017 02:59:55 +0000 (02:59 +0000)]
[Object] Fix missing arguments to getType and getSymbol in Elf_Rel_Impl

Somehow this was compiling without these methods having their arguments
passed to them. I used these methods in some code I wrote and it raised
an error on me. It appears no one else has used these methods let (LLD
uses setSymbolAndType however). This change resolves the issue.

Patch by Jake Ehrlich

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313336 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert "[lit] Force site configs to run before source-tree configs"
Zachary Turner [Fri, 15 Sep 2017 02:56:40 +0000 (02:56 +0000)]
Revert "[lit] Force site configs to run before source-tree configs"

This patch is still breaking several multi-stage compiler-rt bots.
I already know what the fix is, but I want to get the bots green
for now and then try re-applying in the morning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313335 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agomerge-request.sh: Update to use new "Fixed by Commit(s)" field
Tom Stellard [Fri, 15 Sep 2017 02:25:22 +0000 (02:25 +0000)]
merge-request.sh: Update to use new "Fixed by Commit(s)" field

Summary:
This will be used instead of the url field to track which commits need
to be merged.

This patch also drops support for version 1.x of the bugzilla CLI tool.

Reviewers: hansw, hans

Reviewed By: hans

Subscribers: hans, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313334 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[cmake] Fix a variable shadowing bug
Reid Kleckner [Fri, 15 Sep 2017 01:18:46 +0000 (01:18 +0000)]
[cmake] Fix a variable shadowing bug

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313331 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[codeview] Use a type index of zero for static method "this" types
Reid Kleckner [Fri, 15 Sep 2017 00:59:07 +0000 (00:59 +0000)]
[codeview] Use a type index of zero for static method "this" types

Otherwise VS won't show anything in the autos or watch window of static
methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313329 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Revert "Add a lit.llvm module that all llvm projects can use"
Zachary Turner [Fri, 15 Sep 2017 00:56:08 +0000 (00:56 +0000)]
[lit] Revert "Add a lit.llvm module that all llvm projects can use"

This is breaking due to some changes I forgot to merge in, so I'm
temporarily reverting them until I can re-test that this works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313328 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Remove some code that I forgot to remove.
Zachary Turner [Fri, 15 Sep 2017 00:43:38 +0000 (00:43 +0000)]
[lit] Remove some code that I forgot to remove.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313326 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Add a lit.llvm module that all test suites can use.
Zachary Turner [Fri, 15 Sep 2017 00:34:00 +0000 (00:34 +0000)]
[lit] Add a lit.llvm module that all test suites can use.

To further reduce duplicate code, this patch introduces a module
that configs can simply import and get access to a lot of useful
functionality such as setting up paths, adding features that are
useful across all projects, and other utility-type functions.

For now this only updates llvm's suite to use this new library,
but subsequent patches will update other projects.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313325 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRefactor collectChildrenInLoop to LoopUtils [NFC]
Alina Sbirlea [Fri, 15 Sep 2017 00:04:16 +0000 (00:04 +0000)]
Refactor collectChildrenInLoop to LoopUtils [NFC]

Summary: Move to LoopUtils method that collects all children of a node inside a loop.

Reviewers: majnemer, sanjoy

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313322 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Use a separate wasm data segment for each global symbol
Sam Clegg [Thu, 14 Sep 2017 23:07:53 +0000 (23:07 +0000)]
[WebAssembly] Use a separate wasm data segment for each global symbol

This is stepping stone towards honoring -fdata-sections
and letting the assembler decide how many wasm data
segments to create.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313313 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFix bug 34608 by moving private header out of public header.
Eric Beckmann [Thu, 14 Sep 2017 23:01:13 +0000 (23:01 +0000)]
Fix bug 34608 by moving private header out of public header.

WindowsManifestMerger.h should not include llvm/Config/config.h, since it is private.  The include has been moved to the source instead.

Summary:
The checksums had already been placed in the IR, this patch allows
MCCodeView to actually write it out to an MCStreamer.

Move private config.h header dependency out of public header file.

Addresses Bug 34608

Subscribers: javed.absar, hiraditya, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313312 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86] Remove an unnecessary SmallVector from LowerBUILD_VECTOR.
Craig Topper [Thu, 14 Sep 2017 22:47:59 +0000 (22:47 +0000)]
[X86] Remove an unnecessary SmallVector from LowerBUILD_VECTOR.

I think this may have existed to convert from SDUse to SDValue, but it doesn't look like its needed now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313311 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFix warnings in r313297.
Jan Sjodin [Thu, 14 Sep 2017 21:49:52 +0000 (21:49 +0000)]
Fix warnings in r313297.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313302 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Fix some windows line endings that snuck in.
Zachary Turner [Thu, 14 Sep 2017 21:32:13 +0000 (21:32 +0000)]
[lit] Fix some windows line endings that snuck in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313301 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAMDGPU: Fix violating constant bus restriction
Matt Arsenault [Thu, 14 Sep 2017 20:54:29 +0000 (20:54 +0000)]
AMDGPU: Fix violating constant bus restriction

You can't use madmk/madmk if it already uses an SGPR input.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313298 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAdd AddresSpace to PseudoSourceValue.
Jan Sjodin [Thu, 14 Sep 2017 20:53:51 +0000 (20:53 +0000)]
Add AddresSpace to PseudoSourceValue.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313297 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoSubtarget support for parameterized register class information
Krzysztof Parzyszek [Thu, 14 Sep 2017 20:44:20 +0000 (20:44 +0000)]
Subtarget support for parameterized register class information

Implement "checkFeatures" and emitting HW mode check code.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313295 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[TargetTransformInfo] Detect 0 latency instructions
Guozhi Wei [Thu, 14 Sep 2017 19:20:02 +0000 (19:20 +0000)]
[TargetTransformInfo] Detect 0 latency instructions

For instructions that unlikely generate machine instructions, they should also have 0 latency.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313288 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRemove usages of deprecated std::unary_function and std::binary_function.
Benjamin Kramer [Thu, 14 Sep 2017 18:33:25 +0000 (18:33 +0000)]
Remove usages of deprecated std::unary_function and std::binary_function.

These are removed in C++17. We still have some users of
unary_function::argument_type, so just spell that typedef out. No
functionality change intended.

Note that many of the argument types are actually wrong :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313287 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAMDGPU: Fix assert on alloca of array of struct
Matt Arsenault [Thu, 14 Sep 2017 18:02:29 +0000 (18:02 +0000)]
AMDGPU: Fix assert on alloca of array of struct

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313282 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[bpf] Fix test to always use little endian.
Simon Dardis [Thu, 14 Sep 2017 17:55:50 +0000 (17:55 +0000)]
[bpf] Fix test to always use little endian.

r313055 broke the big endian buildbots as the CHECK lines contained little
endian data but -triple bpf uses the host endian.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313281 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[test] Fix TestDWARFDieRangeInfoIntersects
Jonas Devlieghere [Thu, 14 Sep 2017 17:46:23 +0000 (17:46 +0000)]
[test] Fix TestDWARFDieRangeInfoIntersects

Fixes heap buffer overflow triggered in DWARF verifier, detected by ASAN.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313280 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAMDGPU: Stop modifying SP in call sequences
Matt Arsenault [Thu, 14 Sep 2017 17:37:40 +0000 (17:37 +0000)]
AMDGPU: Stop modifying SP in call sequences

Because the stack growth direction and addressing is done
in the same direction, modifying SP at the beginning of the
call sequence was incorrect. If we had a stack passed argument,
we would end up skipping that number of bytes before pushing
arguments, leaving unused/inconsistent space.

The callee creates fixed stack objects in its frame, so
the space necessary for these is already logically allocated
in the callee, so we just let the callee increment SP if
it really requires it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313279 91177308-0d34-0410-b5e6-96231b3b80d8