OSDN Git Service

android-x86/external-llvm.git
7 years ago[LazyValueInfo] Make solveBlockValueCast take a CastInst* instead of Instruction...
Craig Topper [Sat, 3 Jun 2017 07:47:08 +0000 (07:47 +0000)]
[LazyValueInfo] Make solveBlockValueCast take a CastInst* instead of Instruction*. Makes getOpcode return the appropriate enum without a cast. NFC

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

7 years agoInitialized BackedgeTakenInfo.MaxOrZero.
Galina Kistanova [Sat, 3 Jun 2017 05:21:08 +0000 (05:21 +0000)]
Initialized BackedgeTakenInfo.MaxOrZero.

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Sat, 3 Jun 2017 05:19:32 +0000 (05:19 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Sat, 3 Jun 2017 05:19:10 +0000 (05:19 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Sat, 3 Jun 2017 05:18:46 +0000 (05:18 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Sat, 3 Jun 2017 05:11:14 +0000 (05:11 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years ago[WebAssembly] Refactor WasmObjectWriter::writeObject
Sam Clegg [Sat, 3 Jun 2017 02:01:24 +0000 (02:01 +0000)]
[WebAssembly] Refactor WasmObjectWriter::writeObject

The size of this function was getting a little out of.
control.  Split code for writing each section type into
seperate functions.

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

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

7 years ago[sanitizer-coverage] one more flavor of coverage: -fsanitize-coverage=inline-8bit...
Kostya Serebryany [Sat, 3 Jun 2017 01:35:47 +0000 (01:35 +0000)]
[sanitizer-coverage] one more flavor of coverage: -fsanitize-coverage=inline-8bit-counters. Experimental so far, not documenting yet.

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

7 years agoAMDGPU/GlobalISel: Mark 1-bit integer constants as legal
Tom Stellard [Sat, 3 Jun 2017 01:13:33 +0000 (01:13 +0000)]
AMDGPU/GlobalISel: Mark 1-bit integer constants as legal

Summary:
These are mostly legal, but will probably need special lowering for some
cases.

Reviewers: arsenm

Reviewed By: arsenm

Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, igorb, dstuttard, tpr, llvm-commits, t-tye

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

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

7 years ago[CodeGen] Fix Windows builds which treat warnings as errors, broken in r304621.
Eugene Zelenko [Sat, 3 Jun 2017 01:04:06 +0000 (01:04 +0000)]
[CodeGen] Fix Windows builds which treat warnings as errors, broken in r304621.

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

7 years agoRevert "[CFI] Remove LinkerSubsectionsViaSymbols."
Evgeniy Stepanov [Sat, 3 Jun 2017 00:46:27 +0000 (00:46 +0000)]
Revert "[CFI] Remove LinkerSubsectionsViaSymbols."

This reverts commit r304582: breaks cfi-devirt :: anon-namespace.cpp on Darwin.

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

7 years ago[AMDGPU] Preserve operand order in SIFoldOperands
Stanislav Mekhanoshin [Sat, 3 Jun 2017 00:41:52 +0000 (00:41 +0000)]
[AMDGPU] Preserve operand order in SIFoldOperands

SIFoldOperands can commute operands even if no folding was done.
This change is to preserve IR is no folding was done.

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

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

7 years ago[CodeGen] Fix Windows builds broken in r304621.
Eugene Zelenko [Sat, 3 Jun 2017 00:39:36 +0000 (00:39 +0000)]
[CodeGen] Fix Windows builds broken in r304621.

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

7 years ago[PDB] Fix use after free.
Zachary Turner [Sat, 3 Jun 2017 00:33:35 +0000 (00:33 +0000)]
[PDB] Fix use after free.

Previously MappedBlockStream owned its own BumpPtrAllocator that
it would allocate from when a read crossed a block boundary.  This
way it could still return the user a contiguous buffer of the
requested size.  However, It's not uncommon to open a stream, read
some stuff, close it, and then save the information for later.
After all, since the entire file is mapped into memory, the data
should always be available as long as the file is open.

Of course, the exception to this is when the data isn't *in* the
file, but rather in some buffer that we temporarily allocated to
present this contiguous view.  And this buffer would get destroyed
as soon as the strema was closed.

The fix here is to force the user to specify the allocator, this
way it can provide an allocator that has whatever lifetime it
chooses.

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

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

7 years agoLiveRegUnits: Port recent LivePhysRegs bugfixes
Matthias Braun [Sat, 3 Jun 2017 00:26:35 +0000 (00:26 +0000)]
LiveRegUnits: Port recent LivePhysRegs bugfixes

Adjust code to look more like the code in LivePhysRegs and port over the
fix for LivePhysRegs from r304001 and adapt to the new CSR management in
MachineRegisterInfo.

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

7 years ago[CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings...
Eugene Zelenko [Sat, 3 Jun 2017 00:22:41 +0000 (00:22 +0000)]
[CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC).

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

7 years ago[AMDGPU] V_DIV_FIXUP_F16 is not a commutable operation
Stanislav Mekhanoshin [Sat, 3 Jun 2017 00:16:44 +0000 (00:16 +0000)]
[AMDGPU] V_DIV_FIXUP_F16 is not a commutable operation

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

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

7 years ago[SLP] Improve comments and naming of functions/variables/members, NFC.
Alexey Bataev [Sat, 3 Jun 2017 00:08:21 +0000 (00:08 +0000)]
[SLP] Improve comments and naming of functions/variables/members, NFC.

Fixed some comments, added an additional description of the algorithms,
improved readability of the code.

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

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

7 years ago[SystemZ] Simplify test case. NFC
Quentin Colombet [Fri, 2 Jun 2017 23:40:58 +0000 (23:40 +0000)]
[SystemZ] Simplify test case. NFC

Remove useless successors information.

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

7 years ago[x86] fix over-specific triple; NFC
Sanjay Patel [Fri, 2 Jun 2017 23:40:46 +0000 (23:40 +0000)]
[x86] fix over-specific triple; NFC

There's nothing darwin-specific in these tests, and using
that setting causes extra phantom diffs when the auto-generated
check lines are regenerated today.

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

7 years agoCanonicalize a test via utils/update_test_checks.py
Philip Reames [Fri, 2 Jun 2017 23:27:36 +0000 (23:27 +0000)]
Canonicalize a test via utils/update_test_checks.py

Turns out I might not have further changes to make here, but with the way I'd written the tests, even I couldn't tell that.  :(

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

7 years ago[x86] add tests for unsigned vector compares with known signbits; NFC (PR33276)
Sanjay Patel [Fri, 2 Jun 2017 23:24:28 +0000 (23:24 +0000)]
[x86] add tests for unsigned vector compares with known signbits; NFC (PR33276)

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

7 years ago[x86] simplify code for vector icmp pred transforms; NFCI
Sanjay Patel [Fri, 2 Jun 2017 23:21:53 +0000 (23:21 +0000)]
[x86] simplify code for vector icmp pred transforms; NFCI

Organizing by transform is smaller and easier to read than a squashed switch with fall-throughs.

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

7 years ago[sanitizer-coverage] refactor the code to make it easier to add more sections in...
Kostya Serebryany [Fri, 2 Jun 2017 23:13:44 +0000 (23:13 +0000)]
[sanitizer-coverage] refactor the code to make it easier to add more sections in future. NFC

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

7 years agoRevert "[SLP] Improve comments and naming of functions/variables/members, NFC."
Alexey Bataev [Fri, 2 Jun 2017 23:09:15 +0000 (23:09 +0000)]
Revert "[SLP] Improve comments and naming of functions/variables/members, NFC."

This reverts commit 6e311de8b907aa20da9a1a13ab07c3ce2ef4068a.

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

7 years agoChange code formatting to look like the surrounding code
Quentin Colombet [Fri, 2 Jun 2017 23:07:58 +0000 (23:07 +0000)]
Change code formatting to look like the surrounding code

clang-format decided differently and Matthias pointed out the
difference.

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

7 years ago[Statepoint] Be consistent about using deopt naming [NFCI]
Philip Reames [Fri, 2 Jun 2017 23:03:26 +0000 (23:03 +0000)]
[Statepoint] Be consistent about using deopt naming [NFCI]

We'd called this "vm state" in the early days, but have long since standardized on calling it "deopt" in line with the operand bundle tag.  Fix a few cases we'd missed.

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

7 years agoRegisterScavenging: Add ScavengerTest pass
Matthias Braun [Fri, 2 Jun 2017 23:01:42 +0000 (23:01 +0000)]
RegisterScavenging: Add ScavengerTest pass

This pass allows to run the register scavenging independently of
PrologEpilogInserter to allow targeted testing.

Also adds some basic register scavenging tests.

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

7 years agoInitializePasses: Sort initializer list (by ASCII)
Matthias Braun [Fri, 2 Jun 2017 23:01:38 +0000 (23:01 +0000)]
InitializePasses: Sort initializer list (by ASCII)

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

7 years ago[RABasic] Properly update the LiveRegMatrix when LR splitting occur
Quentin Colombet [Fri, 2 Jun 2017 22:46:31 +0000 (22:46 +0000)]
[RABasic] Properly update the LiveRegMatrix when LR splitting occur

Prior to this patch we used to not touch the LiveRegMatrix while doing
live-range splitting. In other words, when live-range splitting was
occurring, the LiveRegMatrix was not reflecting the changes.
This is generally fine because it means the query to the LiveRegMatrix
will be conservately correct. However, when decisions are taken based on
what is going to happen on the interferences (e.g., when we spill a
register and know that it is going to be available for another one), we
might hit an assertion that the color used for the assignment is still
in use.

This patch makes sure the changes on the live-ranges are properly
reflected in the LiveRegMatrix, so the assertions don't break.
An alternative could have been to remove the assertion, but it would
make the invariants of the code and the general reasoning more
complicated in my opnion.

http://llvm.org/PR33057

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

7 years ago[RABasic] Properly initialize the pass
Quentin Colombet [Fri, 2 Jun 2017 22:46:26 +0000 (22:46 +0000)]
[RABasic] Properly initialize the pass

Use the initializeXXX method to initialize the RABasic pass in the
pipeline. This enables us to take advantage of the .mir infrastructure.

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

7 years agoFix debug build test failure
Xinliang David Li [Fri, 2 Jun 2017 22:38:48 +0000 (22:38 +0000)]
Fix debug build test failure

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

7 years ago[PartialInlining] Minor cost anaysis tuning
Xinliang David Li [Fri, 2 Jun 2017 22:08:04 +0000 (22:08 +0000)]
[PartialInlining] Minor cost anaysis tuning

Also added a test option and 2 cost analysis related tests.

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

7 years agoFunctionAttrs: Skip it if the effective SCC (ignoring optnone functions) is empty
David Blaikie [Fri, 2 Jun 2017 21:24:17 +0000 (21:24 +0000)]
FunctionAttrs: Skip it if the effective SCC (ignoring optnone functions) is empty

Minor optimization but mostly simplifies my debugging so I'm not dealing
with empty SCCNodeSets while investigating issues in this optimization.

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

7 years agoRegisterScavenging: Move scavenging logic from PEI to RegisterScavenging; NFC
Matthias Braun [Fri, 2 Jun 2017 21:02:03 +0000 (21:02 +0000)]
RegisterScavenging: Move scavenging logic from PEI to RegisterScavenging; NFC

These parts do not depend on any PrologEpilogInserter logic and
therefore better fits RegisterScaveging.cpp.

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

7 years agoFix build error on gcc.
Zachary Turner [Fri, 2 Jun 2017 21:00:22 +0000 (21:00 +0000)]
Fix build error on gcc.

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

7 years ago[InlineCost] Enable the new switch cost heuristic
Jun Bum Lim [Fri, 2 Jun 2017 20:42:54 +0000 (20:42 +0000)]
[InlineCost] Enable the new switch cost heuristic

Summary:
This is to enable the new switch inline cost heuristic (r301649) by removing the
old heuristic as well as the flag itself.
In my experiment for LLVM test suite and spec2000/2006, +17.82% performance and
8% code size reduce was observed in spec2000/vertex with O3 LTO in AArch64.
No significant code size / performance regression was found in O3/O2/Os. No
significant complain was reported from the llvm-dev thread.

Reviewers: hans, chandlerc, eraman, haicheng, mcrosier, bmakam, eastig, ddibyend, echristo

Reviewed By: echristo

Subscribers: javed.absar, kristof.beyls, echristo, aemerson, rengolin, mehdi_amini

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

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

7 years ago[SLP] Improve comments and naming of functions/variables/members, NFC.
Alexey Bataev [Fri, 2 Jun 2017 20:39:27 +0000 (20:39 +0000)]
[SLP] Improve comments and naming of functions/variables/members, NFC.

Summary:
Fixed some comments, added an additional description of the algorithms,
improved readability of the code.

Reviewers: anemet

Subscribers: llvm-commits, mzolotukhin

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

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

7 years ago[X86] Correctly broadcast NaN-like integers as float on AVX.
Ahmed Bougacha [Fri, 2 Jun 2017 20:02:59 +0000 (20:02 +0000)]
[X86] Correctly broadcast NaN-like integers as float on AVX.

Since r288804, we try to lower build_vectors on AVX using broadcasts of
float/double.  However, when we broadcast integer values that happen to
have a NaN float bitpattern, we lose the NaN payload, thereby changing
the integer value being broadcast.

This is caused by ConstantFP::get, to which we pass the splat i32 as
a float (by bitcasting it using bitsToFloat).  ConstantFP::get takes
a double parameter, so we end up lossily converting a single-precision
NaN to double-precision.

Instead, avoid any kinds of conversions by directly building an APFloat
from the splatted APInt.

Note that this also fixes another piece of code (broadcast of
subvectors), that currently isn't susceptible to the same problem.

Also note that we could really just use APInt and ConstantInt
throughout: the constant pool type doesn't matter much.  Still, for
consistency, use the appropriate type.

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

7 years agoFix build error with clang and gcc.
Zachary Turner [Fri, 2 Jun 2017 20:00:10 +0000 (20:00 +0000)]
Fix build error with clang and gcc.

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

7 years ago[CodeView] Support CodeView subsections in any order.
Zachary Turner [Fri, 2 Jun 2017 19:49:14 +0000 (19:49 +0000)]
[CodeView] Support CodeView subsections in any order.

Previously we would expect certain subsections to appear
in a certain order because some subsections would reference
other subsections, but in practice we need to support
arbitrary orderings since some object file and PDB file
producers generate them this way.  This also paves the
way for supporting Yaml <-> Object File conversion of
CodeView, since Object Files typically have quite a
large number of subsections in their debug info.

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

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

7 years ago[CMake][runtimes] Add install target for runtimes builtins
Petr Hosek [Fri, 2 Jun 2017 19:38:11 +0000 (19:38 +0000)]
[CMake][runtimes] Add install target for runtimes builtins

This adds an install-builtins target to avoid having to list all
builtins targets explicitly.

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

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

7 years agoRegenerate expectation for wide-fma-contraction.ll . NFC
Amaury Sechet [Fri, 2 Jun 2017 19:15:04 +0000 (19:15 +0000)]
Regenerate expectation for wide-fma-contraction.ll . NFC

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

7 years ago[SROA] Fix crash due to bad bitcast
Keno Fischer [Fri, 2 Jun 2017 19:04:17 +0000 (19:04 +0000)]
[SROA] Fix crash due to bad bitcast

Summary:
As shown in the test case, SROA was crashing when trying to split
stores (to the alloca) of loads (from anywhere), because it assumed
the pointer operand to the loads and stores had to have the same
address space. This isn't the case. Make sure to use the correct
pointer type for both the load and the store.

Reviewed By: yaxunl
Differential Revision: https://reviews.llvm.org/D32593

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

7 years ago[CFI] Remove LinkerSubsectionsViaSymbols.
Evgeniy Stepanov [Fri, 2 Jun 2017 18:45:14 +0000 (18:45 +0000)]
[CFI] Remove LinkerSubsectionsViaSymbols.

Since D17854 LinkerSubsectionsViaSymbols is unnecessary.

It is interfering with ThinLTO implementation of CFI-ICall, where
the aliases used on the !LinkerSubsectionsViaSymbols branch are
needed to export jump tables to ThinLTO backends.

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

7 years agoBitcodeWriter: Removing unnecessary std::function in favor of template
David Blaikie [Fri, 2 Jun 2017 18:25:29 +0000 (18:25 +0000)]
BitcodeWriter: Removing unnecessary std::function in favor of template

More cleanup from post-commit discussion on r304516

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

7 years agoSkip CFI for dead functions.
Evgeniy Stepanov [Fri, 2 Jun 2017 18:24:23 +0000 (18:24 +0000)]
Skip CFI for dead functions.

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

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

7 years agoMove summary dead stripping before regular LTO.
Evgeniy Stepanov [Fri, 2 Jun 2017 18:24:17 +0000 (18:24 +0000)]
Move summary dead stripping before regular LTO.

This way dead stripping results are recorded in combined summary and
can be used in regular LTO passes.

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

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

7 years ago[x86] fix formatting; NFCI
Sanjay Patel [Fri, 2 Jun 2017 18:14:31 +0000 (18:14 +0000)]
[x86] fix formatting; NFCI

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

7 years agoAMDGPU: Register AMDGPUAlwaysInline
Matt Arsenault [Fri, 2 Jun 2017 18:02:42 +0000 (18:02 +0000)]
AMDGPU: Register AMDGPUAlwaysInline

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

7 years agoRe-land "COFF: migrate def parser from LLD to LLVM"
Reid Kleckner [Fri, 2 Jun 2017 17:53:06 +0000 (17:53 +0000)]
Re-land "COFF: migrate def parser from LLD to LLVM"

This reverts commit r304561 and re-lands r303490 & co.

The fix was to use "SymbolName" when translating LLD's internal export
list to lib/Object's short export struct. The SymbolName reflects the
actual symbol name, which may include fastcall and stdcall mangling bits
not included in the /EXPORT or .def file EXPORTS name:

@@ -434,8 +434,7 @@ std::vector<COFFShortExport> createCOFFShortExportFromConfig() {
   std::vector<COFFShortExport> Exports;
   for (Export &E1 : Config->Exports) {
     COFFShortExport E2;
-    E2.Name = E1.Name;
+    // Use SymbolName, which will have any stdcall or fastcall qualifiers.
+    E2.Name = E1.SymbolName;
     E2.ExtName = E1.ExtName;
     E2.Ordinal = E1.Ordinal;
     E2.Noname = E1.Noname;

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

7 years agoAMDGPU: Make auto waitcnt before barrier a feature
Konstantin Zhuravlyov [Fri, 2 Jun 2017 17:40:26 +0000 (17:40 +0000)]
AMDGPU: Make auto waitcnt before barrier a feature

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

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

7 years ago[TargetLowering] fix formatting; NFC
Sanjay Patel [Fri, 2 Jun 2017 17:35:02 +0000 (17:35 +0000)]
[TargetLowering] fix formatting; NFC

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

7 years ago[LazyValueInfo] Fix formatting NFC.
Craig Topper [Fri, 2 Jun 2017 17:28:12 +0000 (17:28 +0000)]
[LazyValueInfo] Fix formatting NFC.

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

7 years agoTidy up a bit of r304516, use SmallVector::assign rather than for loop
David Blaikie [Fri, 2 Jun 2017 17:24:26 +0000 (17:24 +0000)]
Tidy up a bit of r304516, use SmallVector::assign rather than for loop

This might give a few better opportunities to optimize these to memcpy
rather than loops - also a few minor cleanups (StringRef-izing,
templating (to avoid std::function indirection), etc).

The SmallVector::assign(iter, iter) could be improved with the use of
SFINAE, but the (iter, iter) ctor and append(iter, iter) need it to and
don't have it - so, workaround it for now rather than bothering with the
added complexity.

(also, as noted in the added FIXME, these assign ops could potentially
be optimized better at least for non-trivially-copyable types)

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

7 years agoVerify a couple more fields in STATEPOINT instructions
Philip Reames [Fri, 2 Jun 2017 17:02:33 +0000 (17:02 +0000)]
Verify a couple more fields in STATEPOINT instructions

While doing so, clarify the comments and update them to reflect current reality.

Note: I'm going to let this sit for a week or so before adding further verification.  I want to give this time to cycle through bots and merge it into our downstream tree before pushing this further.

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

7 years agoAdd placeholder for more extensive verification of psuedo ops
Philip Reames [Fri, 2 Jun 2017 16:36:37 +0000 (16:36 +0000)]
Add placeholder for more extensive verification of psuedo ops

This initial patch doesn't actually do much useful. It's just to show where the new code goes. Once this is in, I'll extend the verification logic to check more useful properties.

For those curious, the more complicated version of this patch already found one very suspicious thing.

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

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

7 years ago[LazyValueInfo] Make solveBlockValueBinaryOp take a BinaryOperator* instead of Instru...
Craig Topper [Fri, 2 Jun 2017 16:33:13 +0000 (16:33 +0000)]
[LazyValueInfo] Make solveBlockValueBinaryOp take a BinaryOperator* instead of Instruction*. This removes a cast of getOpcode to BinaryOps.

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

7 years ago[InstCombine] fix icmp with not op and constant to work with splat vector constant
Sanjay Patel [Fri, 2 Jun 2017 16:29:41 +0000 (16:29 +0000)]
[InstCombine] fix icmp with not op and constant to work with splat vector constant

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

7 years agoRevert "COFF: migrate def parser from LLD to LLVM"
Reid Kleckner [Fri, 2 Jun 2017 16:26:24 +0000 (16:26 +0000)]
Revert "COFF: migrate def parser from LLD to LLVM"

This reverts commits r303490, r303491, r303493, and r303494.

This caused http://crbug.com/728726. Essentially, exporting stdcall
functions doesn't appear to work after this change. Reduced test case
soon.

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

7 years ago[LazyValueInfo] Fix typo in comment. NFC
Craig Topper [Fri, 2 Jun 2017 16:21:13 +0000 (16:21 +0000)]
[LazyValueInfo] Fix typo in comment. NFC

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

7 years ago[InstSimplify][ConstantFolding] Teach constant folding how to handle icmp null, ...
Craig Topper [Fri, 2 Jun 2017 16:17:32 +0000 (16:17 +0000)]
[InstSimplify][ConstantFolding] Teach constant folding how to handle icmp null, (inttoptr x) as well as it handles icmp (inttoptr x), null

Summary:
The constant folding code currently assumes that the constant expression will always be on the left and the simple null will be on the right. But that's not true at least on the path from InstSimplify.

This patch adds support to ConstantFolding to detect the reversed case.

Reviewers: spatel, dberlin, majnemer, davide, joey

Reviewed By: joey

Subscribers: joey, llvm-commits

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

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

7 years ago[InstCombine] improve perf by not creating a known non-canonical instruction
Sanjay Patel [Fri, 2 Jun 2017 16:11:14 +0000 (16:11 +0000)]
[InstCombine] improve perf by not creating a known non-canonical instruction

Op1 (RHS) is a constant, so putting it on the LHS makes us churn through visitICmp
an extra time to canonicalize it:

INSTCOMBINE ITERATION #1 on cmpnot
IC: ADDING: 3 instrs to worklist
IC: Visiting:   %notx = xor i8 %x, -1
IC: Visiting:   %cmp = icmp sgt i8 %notx, 42
IC: Old =   %cmp = icmp sgt i8 %notx, 42
    New =   <badref> = icmp sgt i8 -43, %x
IC: ADD:   %cmp = icmp sgt i8 -43, %x
IC: ERASE   %1 = icmp sgt i8 %notx, 42
IC: ADD:   %notx = xor i8 %x, -1
IC: DCE:   %notx = xor i8 %x, -1
IC: ERASE   %notx = xor i8 %x, -1
IC: Visiting:   %cmp = icmp sgt i8 -43, %x
IC: Mod =   %cmp = icmp sgt i8 -43, %x
    New =   %cmp = icmp slt i8 %x, -43
IC: ADD:   %cmp = icmp slt i8 %x, -43
IC: Visiting:   %cmp = icmp slt i8 %x, -43
IC: Visiting:   ret i1 %cmp

If we create the swapped ICmp directly, we go faster:

INSTCOMBINE ITERATION #1 on cmpnot
IC: ADDING: 3 instrs to worklist
IC: Visiting:   %notx = xor i8 %x, -1
IC: Visiting:   %cmp = icmp sgt i8 %notx, 42
IC: Old =   %cmp = icmp sgt i8 %notx, 42
    New =   <badref> = icmp slt i8 %x, -43
IC: ADD:   %cmp = icmp slt i8 %x, -43
IC: ERASE   %1 = icmp sgt i8 %notx, 42
IC: ADD:   %notx = xor i8 %x, -1
IC: DCE:   %notx = xor i8 %x, -1
IC: ERASE   %notx = xor i8 %x, -1
IC: Visiting:   %cmp = icmp slt i8 %x, -43
IC: Visiting:   ret i1 %cmp

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

7 years agoUpdate select.ll expected results. NFC
Amaury Sechet [Fri, 2 Jun 2017 16:07:43 +0000 (16:07 +0000)]
Update select.ll expected results. NFC

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

7 years ago[InstCombine] fix/add tests for icmp with not ops; NFC
Sanjay Patel [Fri, 2 Jun 2017 15:35:45 +0000 (15:35 +0000)]
[InstCombine] fix/add tests for icmp with not ops; NFC

The existing test was not minimal, and there was no coverage
for the variants with a constant or vector types.

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

7 years agoAMDGPUAnnotateUniformValue should always treat volatile loads as divergent
Alexander Timofeev [Fri, 2 Jun 2017 15:25:52 +0000 (15:25 +0000)]
AMDGPUAnnotateUniformValue should always treat volatile loads as divergent

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

7 years ago[AArch64][Falkor] Model immediate forwarding.
Geoff Berry [Fri, 2 Jun 2017 14:27:41 +0000 (14:27 +0000)]
[AArch64][Falkor] Model immediate forwarding.

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

7 years ago[AMDGPU] Turn on the new waitcnt insertion pass. Adjust tests.
Mark Searles [Fri, 2 Jun 2017 14:19:25 +0000 (14:19 +0000)]
[AMDGPU] Turn on the new waitcnt insertion pass. Adjust tests.

-enable-si-insert-waitcnts=1 becomes the default
-enable-si-insert-waitcnts=0 to use old pass

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

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

7 years ago[mips][microMIPS] Extending size reduction pass with LBU16, LHU16, SB16 and SH16
Zoran Jovanovic [Fri, 2 Jun 2017 14:14:21 +0000 (14:14 +0000)]
[mips][microMIPS] Extending size reduction pass with LBU16, LHU16, SB16 and SH16
Author: milena.vujosevic.janicic
Reviewers: sdardis
The patch extends size reduction pass for MicroMIPS.
The following instructions are examined and transformed, if possible:
LBU instruction is transformed into 16-bit instruction LBU16
LHU instruction is transformed into 16-bit instruction LHU16
SB instruction is transformed into 16-bit instruction SB16
SH instruction is transformed into 16-bit instruction SH16
Differential Revision: https://reviews.llvm.org/D33091

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

7 years ago[Hexagon] Return 0 from getDotNewPredOp when .new opcode does not exist
Krzysztof Parzyszek [Fri, 2 Jun 2017 14:07:06 +0000 (14:07 +0000)]
[Hexagon] Return 0 from getDotNewPredOp when .new opcode does not exist

This allows using this function to test if an instruction can be converted
to a .new form.

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

7 years agoRegenerate sse3.ll test results. NFC
Amaury Sechet [Fri, 2 Jun 2017 14:02:49 +0000 (14:02 +0000)]
Regenerate sse3.ll test results. NFC

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

7 years agoRegenerate and-sink.ll test results. NFC
Amaury Sechet [Fri, 2 Jun 2017 14:02:46 +0000 (14:02 +0000)]
Regenerate and-sink.ll test results. NFC

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

7 years agoRegenerate shrink-compare.ll test results. NFC
Amaury Sechet [Fri, 2 Jun 2017 14:02:43 +0000 (14:02 +0000)]
Regenerate shrink-compare.ll test results. NFC

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

7 years ago[OrderedBasicBlock] Return false for comesBefore(A, A)
Benjamin Kramer [Fri, 2 Jun 2017 13:10:31 +0000 (13:10 +0000)]
[OrderedBasicBlock] Return false for comesBefore(A, A)

So far it would return true for the first uncached query, then cached
queries return false.

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

7 years ago[lit][macOS] Add a utility function to find the platform SDK version
Alex Lorenz [Fri, 2 Jun 2017 11:21:37 +0000 (11:21 +0000)]
[lit][macOS] Add a utility function to find the platform SDK version
on macOS

This function will be used to tie Clang's Integeration tests to a particular
SDK version. See https://reviews.llvm.org/D32178 for more context.

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

7 years ago[X86] Don't fold into memory operands into insertps in the generated folding tables.
Benjamin Kramer [Fri, 2 Jun 2017 10:50:22 +0000 (10:50 +0000)]
[X86] Don't fold into memory operands into insertps in the generated folding tables.

insertps behaves differently, the register form selects from an input
register based on the immediate operand while the memory form just loads
the given address. We have custom code to change the immediate in cases
where that's legal, so completely remove insertps from the generated
tables.

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

7 years ago[GlobalMerge] Don't merge globals that may be preempted
John Brawn [Fri, 2 Jun 2017 10:24:14 +0000 (10:24 +0000)]
[GlobalMerge] Don't merge globals that may be preempted

When a global may be preempted it needs to be accessed directly, instead of
indirectly through a MergedGlobals symbol, for the preemption to work.

This fixes PR33136.

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

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

7 years ago[ARM] GlobalISel: Support struct params/returns
Diana Picus [Fri, 2 Jun 2017 10:16:48 +0000 (10:16 +0000)]
[ARM] GlobalISel: Support struct params/returns

Very very similar to the support for arrays. As with arrays, we don't
support returning large structs that wouldn't fit in R0-R3. Most
front-ends would likely use sret arguments for that anyway.

The only significant difference is that when splitting a struct, we need
to make sure we set the correct original alignment on each member,
otherwise it may get split incorrectly between stack and registers.

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

7 years agonits in TargetLowering.cpp . NFC
Amaury Sechet [Fri, 2 Jun 2017 09:18:18 +0000 (09:18 +0000)]
nits in TargetLowering.cpp . NFC

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

7 years ago[ARM] Cortex-A57 scheduling model for ARM backend (AArch32)
Javed Absar [Fri, 2 Jun 2017 08:53:19 +0000 (08:53 +0000)]
[ARM] Cortex-A57 scheduling model for ARM backend (AArch32)

This patch implements the Cortex-A57 scheduling model.
The main code is in ARMScheduleA57.td, ARMScheduleA57WriteRes.td.
Small changes in cpp,.h files to support required scheduling predicates.

Scheduling model implemented according to:
 http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Software_Optimization_Guide_external.pdf.

Patch by : Andrew Zhogin (submitted on his behalf, as requested).
Rewiewed by: Renato Golin, Diana Picus, Javed Absar, Kristof Beyls.
Differential Revision: https://reviews.llvm.org/D28152

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

7 years agoSpecify triple for xor-icmp.ll .
Amaury Sechet [Fri, 2 Jun 2017 07:45:22 +0000 (07:45 +0000)]
Specify triple for xor-icmp.ll .

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

7 years agoRegenerate expectations for xor-icmp.ll . NFC
Amaury Sechet [Fri, 2 Jun 2017 07:25:02 +0000 (07:25 +0000)]
Regenerate expectations for xor-icmp.ll . NFC

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

7 years ago[SelectionDAG] Get rid of recursion in findNonImmUse
Max Kazantsev [Fri, 2 Jun 2017 07:11:00 +0000 (07:11 +0000)]
[SelectionDAG] Get rid of recursion in findNonImmUse

The recursive implementation of findNonImmUse may overflow stack
on extremely long use chains. This patch replaces it with an equivalent
iterative implementation.

Reviewed By: bogner

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

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

7 years ago[TableGen] Remove a couple unused methods from Record that take a StringRef argument...
Craig Topper [Fri, 2 Jun 2017 05:56:47 +0000 (05:56 +0000)]
[TableGen] Remove a couple unused methods from Record that take a StringRef argument. NFC

We also have a version that takes an Init* that are used.

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

7 years ago[coroutines] PR33271: Remove stray coro.save intrinsics during CoroSplit
Gor Nishanov [Fri, 2 Jun 2017 02:18:36 +0000 (02:18 +0000)]
[coroutines] PR33271: Remove stray coro.save intrinsics during CoroSplit

Summary:
Optimization passes may remove llvm.coro.suspend intrinsic while leaving matching llvm.coro.save intrinsic orphaned.
Make sure we clean up orphaned coro.saves.  The bug manifested with a crash similar to this:

```
    llvm_unreachable("Unknown type!");
    llvm::MVT::getVT (Ty=0x489518, HandleUnknown=false)
    llvm::EVT::getEVT
    llvm::TargetLoweringBase::getValueType
    llvm::ComputeValueVTs
    llvm::SelectionDAGBuilder::visitTargetIntrinsic
```

Reviewers: GorNishanov

Subscribers: EricWF, llvm-commits

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

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

7 years ago[Profile] Enhance expect lowering to handle correlated branches
Xinliang David Li [Fri, 2 Jun 2017 02:09:31 +0000 (02:09 +0000)]
[Profile] Enhance expect lowering to handle correlated branches

builtin_expect applied on && or || expressions were not
handled properly before. With this patch, the problem is fixed.

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

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

7 years ago[ThinLTO] Efficiency improvement when writing module path string table
Teresa Johnson [Fri, 2 Jun 2017 01:56:02 +0000 (01:56 +0000)]
[ThinLTO] Efficiency improvement when writing module path string table

Summary:
When writing the combined index, we are walking the entire module
path StringMap in the full index, and checking whether each one should be
included in the index being written. For distributed backends, where we
write an individual combined index for each file, each with only a few
module paths, this is incredibly inefficient. Add a method that takes
a callback and hides the details of whether we are writing the full
combined index, or just a slice, and in the latter case it walks the set
of modules to include instead of the entire index.

For a huge application with around 23K files (i.e. where we were iterating
through the 23K-entry modulePath StringMap 23K times), this change improved
the thin link time by a whopping 48%.

Reviewers: pcc

Subscribers: Prazek, inglorion, llvm-commits

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

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

7 years ago[RS4GC] Comment clarification
Philip Reames [Fri, 2 Jun 2017 01:52:06 +0000 (01:52 +0000)]
[RS4GC] Comment clarification

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

7 years agoRevert r304117 - WebAssembly object format isn't ready to be the default
Jacob Gravelle [Fri, 2 Jun 2017 01:26:17 +0000 (01:26 +0000)]
Revert r304117 - WebAssembly object format isn't ready to be the default

Summary: Wasm object format has some functionality regressions from the ELF format, and doesn't play nicely with the rest of the toolchain. It should eventually be the default, but not yet.

Reviewers: sunfish, sbc100

Subscribers: jfb, dschuff, llvm-commits

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

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

7 years ago[WebAssembly] MC: Fix references to undefined externals in data section
Sam Clegg [Fri, 2 Jun 2017 01:05:24 +0000 (01:05 +0000)]
[WebAssembly] MC: Fix references to undefined externals in data section

Undefined externals don't need to have a size or an offset.
This was broken by r303915.  Added a test for this case.

This fixes the "Compile LLVM Torture (o)" step on the wasm
waterfall.

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

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

7 years ago[PredicateInfo] Enable -reverse-iterate tests only for +Asserts builds
Mandeep Singh Grang [Thu, 1 Jun 2017 23:52:59 +0000 (23:52 +0000)]
[PredicateInfo] Enable -reverse-iterate tests only for +Asserts builds

Summary: The flag -reverse-iterate is present only on +Asserts builds.

Reviewers: dberlin, davide, RKSimon, efriedma, chapuni

Reviewed By: efriedma, chapuni

Subscribers: chapuni, llvm-commits

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

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

7 years ago[PM] GVNSink is off by default, fix an obvious typo.
Davide Italiano [Thu, 1 Jun 2017 23:47:53 +0000 (23:47 +0000)]
[PM] GVNSink is off by default, fix an obvious typo.

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

7 years ago[CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings...
Eugene Zelenko [Thu, 1 Jun 2017 23:25:02 +0000 (23:25 +0000)]
[CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC).

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

7 years agoFix 2 more -Wreorder warnings.
Zachary Turner [Thu, 1 Jun 2017 23:24:50 +0000 (23:24 +0000)]
Fix 2 more -Wreorder warnings.

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

7 years ago[ThinLTO] Move -lto-use-new-pm to llvm-lto2, and change it to -use-new-pm.
Tim Shen [Thu, 1 Jun 2017 23:13:44 +0000 (23:13 +0000)]
[ThinLTO] Move -lto-use-new-pm to llvm-lto2, and change it to -use-new-pm.

Summary:
As we teach Clang to use ThinkLTO + new PM, it's good for the users to
inject through Config, instead of setting a flag in the LTOBackend
library. Move the flag to llvm-lto2.

As it moves to llvm-lto2, a new name -use-new-pm seems simpler and as
clear.

Reviewers: davide, tejohnson

Subscribers: mehdi_amini, Prazek, inglorion, eraman, chandlerc, llvm-commits

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

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

7 years agoMove GVNHoist to the right position in the new pass manager pipeline.
Davide Italiano [Thu, 1 Jun 2017 23:08:14 +0000 (23:08 +0000)]
Move GVNHoist to the right position in the new pass manager pipeline.

GVNHoist was moved as part of simplification passes for the current
pass manager (but not for the new), so they're out-of-sync.

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

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

7 years agoFix compiler_rt buildbot failure
Xinliang David Li [Thu, 1 Jun 2017 23:05:11 +0000 (23:05 +0000)]
Fix compiler_rt buildbot failure

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

7 years agoReapply "[Cloning] Take another pass at properly cloning debug info"
Keno Fischer [Thu, 1 Jun 2017 23:02:12 +0000 (23:02 +0000)]
Reapply "[Cloning] Take another pass at properly cloning debug info"

This was rL304226, reverted in 304228 due to a clang assertion failure
on the build bots. That problem should have been addressed by clang
commit rL304470.

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

7 years agoFix -Wreorder warnings.
Zachary Turner [Thu, 1 Jun 2017 22:03:17 +0000 (22:03 +0000)]
Fix -Wreorder warnings.

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

7 years ago[CodeView] Properly align symbol records on read/write.
Zachary Turner [Thu, 1 Jun 2017 21:52:41 +0000 (21:52 +0000)]
[CodeView] Properly align symbol records on read/write.

Object files have symbol records not aligned to any particular
boundary (e.g. 1-byte aligned), while PDB files have symbol
records padded to 4-byte aligned boundaries.  Since they share
the same reading / writing code, we have to provide an option to
specify the alignment and propagate it up to the producer or
consumer who knows what the alignment is supposed to be for the
given container type.

Added a test for this by modifying the existing PDB -> YAML -> PDB
round-tripping code to round trip symbol records as well as types.

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

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