OSDN Git Service
Craig Topper [Sun, 1 Oct 2017 23:53:50 +0000 (23:53 +0000)]
[X86] Remove a couple unnecessary COPY_TO_REGCLASS from some output patterns where the instruction already produces the correct register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314638
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 1 Oct 2017 18:43:48 +0000 (18:43 +0000)]
[X86][SSE] Add faux shuffle combining support for PACKUS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314631
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 1 Oct 2017 18:17:39 +0000 (18:17 +0000)]
[X86][AVX2] Simplify PACKUS combine test
Trying to use a AND mask is tricky as after legalization its nigh impossible for computeKnownBits to do anything with it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314630
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 1 Oct 2017 17:54:55 +0000 (17:54 +0000)]
[X86][SSE] Improve shuffle combining of PACKSS instructions.
Support unary packing and fix the faux shuffle mask for vectors larger than 128 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314629
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 1 Oct 2017 17:30:44 +0000 (17:30 +0000)]
[X86][SSE] Add shuffle combining tests with PACKSS/PACKUS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314628
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sun, 1 Oct 2017 14:39:10 +0000 (14:39 +0000)]
[x86] formatting; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314627
91177308-0d34-0410-b5e6-
96231b3b80d8
Jina Nahias [Sun, 1 Oct 2017 14:25:21 +0000 (14:25 +0000)]
pre-commit adding test for broadcastm pattern
Differential Revision: https://reviews.llvm.org/D38312
Change-Id: Ifbc4189549f2f59995019a86f85f989c04e4d37d
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314626
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 1 Oct 2017 09:53:53 +0000 (09:53 +0000)]
Revert r314579: "Recommi r314561 after fixing over-debug assertion".
And follow-up r314585.
Leads to segfaults. I'll forward reproduction instructions to the patch
author.
Also, for a recommit, still add the original patch description.
Otherwise, it becomes really tedious to find out what a patch actually
does. The fact that it is a recommit with a fix is somewhat secondary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314622
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Sun, 1 Oct 2017 09:37:38 +0000 (09:37 +0000)]
Adding test for interleved, case stride 4 vf64 store<NFC>.
Change-Id: I9ea62aac81b763c83d26613dca6fcd846997a017
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314621
91177308-0d34-0410-b5e6-
96231b3b80d8
Michal Gorny [Sun, 1 Oct 2017 07:13:25 +0000 (07:13 +0000)]
[lit] Fix running lit tests in unconfigured source dir
Fix llvm_tools_dir attribute access not to fail when the variable is not
present. This directory is not really necessary to run lit tests,
and the code already accounts for it being None.
The reference was added in r313407, and it breaks the stand-alone lit
package in Gentoo.
Differential Revision: https://reviews.llvm.org/D38442
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314620
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Sun, 1 Oct 2017 05:24:51 +0000 (05:24 +0000)]
Separate the logic when handling indirect calls in SamplePGO ThinLTO compile phase and other phases.
Summary: In SamplePGO ThinLTO compile phase, we will not invoke ICP as it may introduce confusion to the 2nd annotation. This patch extracted that logic and makes it clearer before profile annotation. In the mean time, we need to make function importing process both inlined callsites as well as not promoted indirect callsites.
Reviewers: tejohnson
Reviewed By: tejohnson
Subscribers: sanjoy, mehdi_amini, llvm-commits, inglorion
Differential Revision: https://reviews.llvm.org/D38094
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314619
91177308-0d34-0410-b5e6-
96231b3b80d8
Xin Tong [Sun, 1 Oct 2017 00:10:52 +0000 (00:10 +0000)]
Fix typo. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314615
91177308-0d34-0410-b5e6-
96231b3b80d8
Xin Tong [Sun, 1 Oct 2017 00:09:53 +0000 (00:09 +0000)]
Revert "Fix typo [NFC]"
This reverts commit
e60b5028619be1c81bd039d63a0627dac32d38f9.
Incorrectly include changes that are not typo fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314614
91177308-0d34-0410-b5e6-
96231b3b80d8
Xin Tong [Sun, 1 Oct 2017 00:07:24 +0000 (00:07 +0000)]
Fix typo [NFC]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314613
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sat, 30 Sep 2017 23:51:55 +0000 (23:51 +0000)]
NewGVN: Fix PR 34473, by not using ExactlyEqualsExpression for finding
phi of ops users.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314612
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sat, 30 Sep 2017 23:51:54 +0000 (23:51 +0000)]
NewGVN: Evaluate phi of ops expressions before creating phi node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314611
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sat, 30 Sep 2017 23:51:53 +0000 (23:51 +0000)]
NewGVN: Allow dependent PHI of ops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314610
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sat, 30 Sep 2017 23:51:04 +0000 (23:51 +0000)]
NewGVN: Make OpIsSafeForPhiOfOps non-recursive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314609
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 30 Sep 2017 22:27:46 +0000 (22:27 +0000)]
Regenerate mul combine tests to update broadcast comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314607
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Sat, 30 Sep 2017 20:46:15 +0000 (20:46 +0000)]
Refactor the SamplePGO profile annotation logic to extract inlineCallInstruction. (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314601
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 30 Sep 2017 17:57:34 +0000 (17:57 +0000)]
[X86][SSE] Fold (VSRAI (VSHLI X, C1), C1) --> X iff NumSignBits(X) > C1
Remove sign extend in register style pattern if the sign is already extended enough
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314599
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 30 Sep 2017 17:02:39 +0000 (17:02 +0000)]
[AVX-512] Add patterns to make fp compare instructions commutable during isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314598
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 30 Sep 2017 16:14:59 +0000 (16:14 +0000)]
[X86][SSE] Add vector truncation cases inspired by PR34773
We should be using PACKSS/PACKUS more aggressively when we know the state of the upper bits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314597
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Sat, 30 Sep 2017 14:55:03 +0000 (14:55 +0000)]
Code refactoring for the interleaved code <NFC>
Change-Id: I7831c9febad8e14278a5bc87584a0053dc837be1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314596
91177308-0d34-0410-b5e6-
96231b3b80d8
Gadi Haber [Sat, 30 Sep 2017 14:30:23 +0000 (14:30 +0000)]
[X86][SKX] Added codegen regression test for avx512 instructions scheduling.NFC.
NFC.
Added code gen regression tests for avx512 instructions scheduling called avx512-schedule.ll and
avx512-shuffle-schedule.ll.
This patch is in preparation of a larger patch of adding all SKX instruction scheduling and therefore
the scheduling for the avx512 instructions are still missing.
Reviewers: zvi, delena, RKSimon, igorb
Differential Revision: https://reviews.llvm.org/D38035
Change-Id: I792762763127a921b9e13684b58af03646536533
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314594
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sat, 30 Sep 2017 11:57:19 +0000 (11:57 +0000)]
Revert r314435: "[JumpThreading] Preserve DT and LVI across the pass"
Causes a segfault on a builtbot (and in our internal bootstrapping of
Clang). See Eli's response on the commit thread.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314589
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Sat, 30 Sep 2017 05:27:46 +0000 (05:27 +0000)]
Fix buildbot failure -- tighten type check for matching phi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314585
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 30 Sep 2017 04:21:46 +0000 (04:21 +0000)]
[X86] Support v64i8 mulhu/mulhs
Implemented by splitting into two v32i8 mulhu/mulhs and concatenating the results.
Differential Revision: https://reviews.llvm.org/D38307
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314584
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Sat, 30 Sep 2017 00:46:32 +0000 (00:46 +0000)]
Recommi r314561 after fixing over-debug assertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314579
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Sat, 30 Sep 2017 00:38:52 +0000 (00:38 +0000)]
[llvm-rc] Serialize DIALOG(EX) to .res files (serialization, pt 4).
This is now able to serialize DIALOG and DIALOGEX resources to .res
files. It still can't parse dialog-specific CAPTION, FONT, and STYLE
optional statement - these will be added in the following patch.
A limited set of controls is included. However, more can be easily added
by extending SupportedCtls map defined in ResourceScriptStmt.cpp.
Differential Revision: https://reviews.llvm.org/D37862
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314578
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Sat, 30 Sep 2017 00:31:15 +0000 (00:31 +0000)]
typos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314577
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Sat, 30 Sep 2017 00:22:25 +0000 (00:22 +0000)]
llvm-dwarfdump: implement the --name lookup option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314576
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Sat, 30 Sep 2017 00:22:24 +0000 (00:22 +0000)]
Fix 80 column violations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314575
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Sat, 30 Sep 2017 00:22:21 +0000 (00:22 +0000)]
Add comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314574
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Fri, 29 Sep 2017 23:40:19 +0000 (23:40 +0000)]
[AMDGPU] Set fast-math flags on functions given the options
We have a single library build without relaxation options.
When inlined library functions remove fast math attributes
from the functions they are integrated into.
This patch sets relaxation attributes on the functions after
linking provided corresponding relaxation options are given.
Math instructions inside the inlined functions remain to have
no fast flags, but inlining does not prevent fast math
transformations of a surrounding caller code anymore.
Differential Revision: https://reviews.llvm.org/D38325
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314568
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaxun Liu [Fri, 29 Sep 2017 23:31:14 +0000 (23:31 +0000)]
CodeGen: Fix pointer info in expandUnalignedLoad/Store
Currently expandUnalignedLoad/Store uses place holder pointer info for temporary memory operand
in stack, which does not have correct address space. This causes unaligned private double16 load/store to be
lowered to flat_load instead of buffer_load for amdgcn target.
This fixes failures of OpenCL conformance test basic/vload_private/vstore_private on target amdgcn---amdgizcl.
Differential Revision: https://reviews.llvm.org/D35361
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314566
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Fri, 29 Sep 2017 22:46:22 +0000 (22:46 +0000)]
fix 80 column violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314564
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 29 Sep 2017 22:30:34 +0000 (22:30 +0000)]
Revert 314561 due to debug build assertion failure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314563
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Fri, 29 Sep 2017 22:25:05 +0000 (22:25 +0000)]
[llvm-rc] Serialize MENU resources to .res files (serialization, pt 3).
This allows MENU resources to be serialized.
MENU resource statement doc:
msdn.microsoft.com/en-us/library/windows/desktop/
aa381025.aspx
POPUP sub-statement doc:
msdn.microsoft.com/en-us/library/windows/desktop/
aa381030.aspx
MENUITEM sub-statement doc:
msdn.microsoft.com/en-us/library/windows/desktop/
aa381024.aspx
MENUHEADER structure:
msdn.microsoft.com/en-us/library/windows/desktop/ms648018.aspx (and
NORMALMENUITEM, POPUPMENUITEM structs).
Thanks for Nico Weber for his original work in this area.
Differential Revision: https://reviews.llvm.org/D37828
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314562
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 29 Sep 2017 22:10:15 +0000 (22:10 +0000)]
Eliminate PHI (int typed) which has only one use by intptr
This patch will eliminate redundant intptr/ptrtoint that pessimizes
analyses such as SCEV, AA and will make optimization passes such
as auto-vectorization more powerful.
Differential revision: http://reviews.llvm.org/D37832
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314561
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Shlyapnikov [Fri, 29 Sep 2017 22:04:45 +0000 (22:04 +0000)]
Revert "Use the basic cost if a GEP is not used as addressing mode"
This reverts commit r314517.
This commit crashes sanitizer bots, for example:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/4167
Stack snippet:
...
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/include/llvm/Support/Casting.h:255:0
llvm::TargetTransformInfoImplCRTPBase<llvm::X86TTIImpl>::getGEPCost(llvm::GEPOperator const*, llvm::ArrayRef<llvm::Value const*>)
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:742:0
llvm::TargetTransformInfoImplCRTPBase<llvm::X86TTIImpl>::getUserCost(llvm::User const*, llvm::ArrayRef<llvm::Value const*>)
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h:782:0
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/lib/Analysis/TargetTransformInfo.cpp:116:0
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/include/llvm/ADT/SmallVector.h:116:0
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/include/llvm/ADT/SmallVector.h:343:0
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/include/llvm/ADT/SmallVector.h:864:0
/mnt/b/sanitizer-buildbot1/sanitizer-x86_64-linux/build/llvm/include/llvm/Analysis/TargetTransformInfo.h:285:0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314560
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Fri, 29 Sep 2017 21:55:49 +0000 (21:55 +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@314559
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Fri, 29 Sep 2017 19:50:41 +0000 (19:50 +0000)]
Revert "[CMake] Remove `CMAKE_.*_OUTPUT_DIRECTORY` (NFCI)"
Summary:
It appears polly makes use of the `CMAKE_RUNTIME_OUTPUT_DIRECTORY` variable
when configuring its lit test suite. Reverting this for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314551
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Fri, 29 Sep 2017 19:34:57 +0000 (19:34 +0000)]
[CMake] Remove `CMAKE_.*_OUTPUT_DIRECTORY` (NFCI)
Summary:
Three `CMAKE_.*_OUTPUT_DIRECTORY` variables used to be set in CMake and
referenced in various other parts of the project. However, in r198205
chapuni added a note to "don't set them anymore", and any remaining
references to them were subsequently removed in r198316 and r199592.
Now that the variables are no longer used anywhere, remove them, along
with the comments advising against using them any longer.
Test Plan:
I ran `check-all` and confirmed the tests built and passed.
Reviewers: beanz, chapuni
Reviewed By: beanz
Subscribers: mgorny
Differential Revision: https://reviews.llvm.org/D38389
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314550
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Fri, 29 Sep 2017 19:07:44 +0000 (19:07 +0000)]
[llvm-rc] Serialize ACCELERATORS to .res files (serialization, pt 2).
This allows llvm-rc to serialize ACCELERATORS resources.
Additionally, as this is the first type of resource to support basic
optional resource statements (LANGUAGE, CHARACTERISTICS, VERSION),
ACCELERATORS statement documentation:
msdn.microsoft.com/en-us/library/windows/desktop/
aa380610.aspx
Accelerator table structure documentation:
msdn.microsoft.com/en-us/library/windows/desktop/ms648010.aspx
Optional resource statement fields are described in:
msdn.microsoft.com/en-us/library/windows/desktop/ms648027.aspx
Thanks for Nico Weber for his original work in this area.
Differential Revision: https://reviews.llvm.org/D37824
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314549
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Fri, 29 Sep 2017 18:07:39 +0000 (18:07 +0000)]
[LV] Use correct insertion point when type shrinking reductions
When type shrinking reductions, we should insert the truncations and extends at
the end of the loop latch block. Previously, these instructions were inserted
at the end of the loop header block. The difference is only a problem for loops
with predicated instructions (e.g., conditional stores and instructions that
may divide by zero). For these instructions, we create new basic blocks inside
the vectorized loop, which cause the loop header and latch to no longer be the
same block. This should fix PR34687.
Reference: https://bugs.llvm.org/show_bug.cgi?id=34687
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314542
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Fri, 29 Sep 2017 17:46:32 +0000 (17:46 +0000)]
[llvm-rc] Refactoring needed for ACCELERATORS and MENU resources.
This is a part of llvm-rc serialization patch set (serialization, pt 1.5).
This:
* Unifies the internal representation of flags in ACCELERATORS and MENU
with the corresponding representation in .res files (noticed in
https://reviews.llvm.org/D37828#inline-329828).
* Creates an RCResource subclass, OptStatementsRCResource, describing
resource statements that can declare resource-local optional statements
(proposed in https://reviews.llvm.org/D37824#inline-329775).
These modifications don't fit to any of the current patches, so I'm
submitting them as a separate patch.
Differential Revision: https://reviews.llvm.org/D37841
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314541
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Sep 2017 17:17:54 +0000 (17:17 +0000)]
Use LLVM_ENABLE_ABI_BREAKING_CHECKS correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314539
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Fri, 29 Sep 2017 17:14:09 +0000 (17:14 +0000)]
[llvm-rc] Serialize HTML resources to .res files (serialization, pt 1).
This allows to process HTML resources defined in .rc scripts and output
them to resulting .res files. Additionally, some infrastructure allowing
to output these files is created.
This is the first resource type we can operate on.
Thanks to Nico Weber for his original work in this area.
Differential Revision: reviews.llvm.org/D37283
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314538
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Fri, 29 Sep 2017 16:56:54 +0000 (16:56 +0000)]
Display relative hotness with two decimal digits after the decimal point
I've seen cases where tiny inlined functions have such a high execution count
that most everything would show up with a relative of hotness of 0%. Since
the inlined functions effectively disappear you need to tune in the lower
range, thus we need more precision.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314537
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 29 Sep 2017 16:52:27 +0000 (16:52 +0000)]
Fix Wmismatched-tags warning.
InlineAsmIdentifierInfo was declared a class in some places and a struct in others.
Partial reversion of rL314508
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314536
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Ricci [Fri, 29 Sep 2017 16:51:50 +0000 (16:51 +0000)]
[test] Enable LeakSanitizer on 64-bit Darwin ASan llvm builds
Summary:
Also disables leak checking on lto tests, due to many leaks reported
in the system's ld64.
Reviewers: kcc, pcc, bogner, kubamracek
Subscribers: mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D37781
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314535
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Fri, 29 Sep 2017 16:50:08 +0000 (16:50 +0000)]
[WebAssembly] Allow each data segment to specify its own alignment
Also, add a flags field as we will almost certainly
be needing that soon too.
Differential Revision: https://reviews.llvm.org/D38296
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314534
91177308-0d34-0410-b5e6-
96231b3b80d8
Hongbin Zheng [Fri, 29 Sep 2017 16:32:12 +0000 (16:32 +0000)]
[SimplifyIndVar] Do not fail when we constant fold an IV user to ConstantPointerNull
The type of a SCEVConstant may not match the corresponding LLVM Value.
In this case, we skip the constant folding for now.
TODO: Replace ConstantInt Zero by ConstantPointerNull
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314531
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Fri, 29 Sep 2017 16:07:05 +0000 (16:07 +0000)]
AMDGPU: fix bad test exposed by r314522
The test attempts to use -1 as carry-in for v_addc_*.
Before writing r314522, I did actually test this on real hardware,
and found that it doesn't work. So r314522 is correct in restricting
the carry-in operand: just remove those tests to make things pass
again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314530
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Fri, 29 Sep 2017 15:55:42 +0000 (15:55 +0000)]
[ThinLTO] Use decimal suffix for promoted values to match demanglers
Summary:
Demanglers such as libiberty know how to strip suffixes of the form
\.[a-zA-Z]+\.\d+, but our current promoted value suffixes are
.llvm.${modulehash}, where the module hash is in hex. Change the
module hash to decimal to allow demanglers to handle this.
Reviewers: danielcdh
Subscribers: llvm-commits, inglorion
Differential Revision: https://reviews.llvm.org/D38405
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314527
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Fri, 29 Sep 2017 15:41:22 +0000 (15:41 +0000)]
[dwarfdump][NFC] Consistent printing of address ranges
This implement the insertion operator for DWARF address ranges so they
are consistently printed as [LowPC, HighPC).
While a dump method might have felt more consistent, it is used
exclusively for printing error messages in the verifier and never used
for actual dumping. Hence this approach is more intuitive and creates
less clutter at the call sites.
Differential revision: https://reviews.llvm.org/D38395
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314523
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Fri, 29 Sep 2017 15:37:31 +0000 (15:37 +0000)]
AMDGPU: VALU carry-in and v_cndmask condition cannot be EXEC
The hardware will only forward EXEC_LO; the high 32 bits will be zero.
Additionally, inline constants do not work. At least,
v_addc_u32_e64 v0, vcc, v0, v1, -1
which could conceivably be used to combine (v0 + v1 + 1) into a single
instruction, acts as if all carry-in bits are zero.
The llvm.amdgcn.ps.live test is adjusted; it would be nice to combine
s_mov_b64 s[0:1], exec
v_cndmask_b32_e64 v0, v1, v2, s[0:1]
into
v_mov_b32 v0, v3
but it's not particularly high priority.
Fixes dEQP-GLES31.functional.shaders.helper_invocation.value.*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314522
91177308-0d34-0410-b5e6-
96231b3b80d8
Jun Bum Lim [Fri, 29 Sep 2017 14:50:16 +0000 (14:50 +0000)]
Use the basic cost if a GEP is not used as addressing mode
Summary:
Currently, getGEPCost() returns TCC_FREE whenever a GEP is a legal addressing mode in the target.
However, since it doesn't check its actual users, it will return FREE even in cases
where the GEP cannot be folded away as a part of actual addressing mode.
For example, if an user of the GEP is a call instruction taking the GEP as a parameter,
then the GEP may not be folded in isel.
Reviewers: hfinkel, efriedma, mcrosier, jingyue, haicheng
Reviewed By: hfinkel
Subscribers: javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D38085
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314517
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Fri, 29 Sep 2017 14:31:39 +0000 (14:31 +0000)]
[SystemZ] implement shouldCoalesce()
Implement shouldCoalesce() to help regalloc avoid running out of GR128
registers.
If a COPY involving a subreg of a GR128 is coalesced, the live range of the
GR128 virtual register will be extended. If this happens where there are
enough phys-reg clobbers present, regalloc will run out of registers (if
there is not a single GR128 allocatable register available).
This patch tries to allow coalescing only when it can prove that this will be
safe by checking the (local) interval in question.
Review: Ulrich Weigand, Quentin Colombet
https://reviews.llvm.org/D37899
https://bugs.llvm.org/show_bug.cgi?id=34610
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314516
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 29 Sep 2017 14:13:47 +0000 (14:13 +0000)]
Fix spelling in comments. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314515
91177308-0d34-0410-b5e6-
96231b3b80d8
Amara Emerson [Fri, 29 Sep 2017 13:53:44 +0000 (13:53 +0000)]
[X86] Improve codegen for inverted overflow checking intrinsics.
Adds a new combine for: xor(setcc cc, val), 1 --> setcc (invert(cc), val)
Differential Revision: https://reviews.llvm.org/D38161
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314514
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Parker [Fri, 29 Sep 2017 13:11:33 +0000 (13:11 +0000)]
[ARM] v8.3-a complex number support
New instructions are added to AArch32 and AArch64 to aid
floating-point multiplication and addition of complex numbers, where
the complex numbers are packed in a vector register as a pair of
elements. The Imaginary part of the number is placed in the more
significant element, and the Real part of the number is placed in the
less significant element.
This patch adds assembler for the ARM target.
Differential Revision: https://reviews.llvm.org/D36789
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314511
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Fri, 29 Sep 2017 12:45:54 +0000 (12:45 +0000)]
Small modification <NFC>
Change-Id: I360abccee12cae29bd2ac4f8399c9ecc92eb7f13
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314510
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 29 Sep 2017 11:42:05 +0000 (11:42 +0000)]
Fix Wmismatched-tags warning.
InlineAsmIdentifierInfo was declared a class in some places and a class in others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314508
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksandar Beserminji [Fri, 29 Sep 2017 11:05:02 +0000 (11:05 +0000)]
[mips] Reordering callseq* nodes to be linear
Fix nested callseq* nodes by moving callseq_start after the
arguments calculation to temporary registers, so that callseq* nodes
in resulting DAG are linear.
Recommitting r314497. This version does not contain test which fails
when compiler is not build in debug mode.
Differential Revision: https://reviews.llvm.org/D37328
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314507
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksandar Beserminji [Fri, 29 Sep 2017 10:52:03 +0000 (10:52 +0000)]
Revert "[mips] Reordering callseq* nodes to be linear"
Added test relies on the compiler being built in debug mode,
which may not be the case.
This reverts commit r314497.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314506
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Fri, 29 Sep 2017 10:08:06 +0000 (10:08 +0000)]
[mips] Add missing license info, formatting changes. NFCI
Add missing license information to MicroMipsInstrFPU.td and
fix most of the formatting errors present. Others will be
addressed in a follow up commits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314505
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 29 Sep 2017 10:02:01 +0000 (10:02 +0000)]
[X86][SSE] Added more tests for vector multiplications as utility for D37896
Added additional tests for vector multiplications with multipliers that are:
* powers of 2 displaced by 1,
* product of a power of 2 displaced by one with another power of 2.
Patch by @pacxx (Michael Haidl)
Differential Revision: https://reviews.llvm.org/D38350
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314504
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksandar Beserminji [Fri, 29 Sep 2017 09:53:24 +0000 (09:53 +0000)]
[mips] Add test cases for dext/dins family of instructions
Add missing test cases for dext, dextm, dextu, dins, dinsm and
dinsu instructions.
Differential Revision: https://reviews.llvm.org/D37741
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314503
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Renouf [Fri, 29 Sep 2017 09:51:22 +0000 (09:51 +0000)]
[AMDGPU] calling conventions for AMDPAL OS type
Summary:
This commit adds comments on how the AMDPAL OS type overloads the
existing AMDGPU_ calling conventions used by Mesa, and adds a couple of
new ones.
Reviewers: arsenm, nhaehnle, dstuttard
Subscribers: mehdi_amini, kzhuravl, wdng, yaxunl, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D37752
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314502
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Renouf [Fri, 29 Sep 2017 09:49:35 +0000 (09:49 +0000)]
[AMDGPU] AMDPAL scratch buffer support
Summary:
Added support for scratch (including spilling) for OS type amdpal:
generates code to set up the scratch descriptor if it is needed.
With amdpal, the scratch resource descriptor is loaded from offset 0 of
the global information table. The low 32 bits of the address of the
global information table is passed in s0.
Added amdgpu-git-ptr-high function attribute to hard-wire the high 32
bits of the address of the global information table. If the function
attribute is not specified, or is 0xffffffff, then the backend generates
code to use the high 32 bits of pc.
The documentation for the AMDPAL ABI will be added in a later commit.
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, t-tye
Differential Revision: https://reviews.llvm.org/D37483
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314501
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Renouf [Fri, 29 Sep 2017 09:48:12 +0000 (09:48 +0000)]
[Triple] Add AMDPAL operating system type
Summary:
This operating system type represents the AMDGPU PAL runtime, and will
be required by the AMDGPU backend in order to generate correct code for
this runtime.
Currently it generates the same code as not specifying an OS at all.
That will change in future commits.
Patch from Tim Corringham.
Subscribers: arsenm, nhaehnle
Differential Revision: https://reviews.llvm.org/D37380
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314500
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Fri, 29 Sep 2017 09:33:31 +0000 (09:33 +0000)]
[dwarfdump][NFC] Consistent errors and warnings with --verify
This patch introduces 3 helper functions: error(), warn() and note() to
make printing during verification more consistent. When supported, the
respective prefixes are printed in color using the same color scheme as
clang.
Differential revision: https://reviews.llvm.org/D38368
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314498
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksandar Beserminji [Fri, 29 Sep 2017 09:32:14 +0000 (09:32 +0000)]
[mips] Reordering callseq* nodes to be linear
Fix nested callseq* nodes by moving callseq_start after the
arguments calculation to temporary registers, so that callseq* nodes
in resulting DAG are linear.
Differential Revision: https://reviews.llvm.org/D37328
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314497
91177308-0d34-0410-b5e6-
96231b3b80d8
Coby Tayree [Fri, 29 Sep 2017 07:02:46 +0000 (07:02 +0000)]
[X86][MS-InlineAsm] Extended support for variables / identifiers on memory / immediate expressions
Allow the proper recognition of Enum values and global variables inside ms inline-asm memory / immediate expressions, as they require some additional overhead and treated incorrect if doesn't early recognized.
supersedes D33278, D35774
Differential Revision: https://reviews.llvm.org/D37412
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314493
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Fri, 29 Sep 2017 05:20:53 +0000 (05:20 +0000)]
Make find_opt_files vararg
This is slightly less verbose for the common case of a single build directory
and more intuitive when using this API directly from the interpreter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314491
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 29 Sep 2017 05:03:43 +0000 (05:03 +0000)]
[ORC] Replace decltype with a concrete type to make MSVC happy.
This should fix some build failures on windows bots due to r314486.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314490
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Fri, 29 Sep 2017 02:48:07 +0000 (02:48 +0000)]
[CMake] Fix typo "Wraning" (NFC)
Summary:
The typo was added in https://reviews.llvm.org/rL247151.
It should be "warning", not "wraning".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314486
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Fri, 29 Sep 2017 02:45:44 +0000 (02:45 +0000)]
llvm-readobj: fix a few typos (NFC)
Correct the spelling of multiple in a couple of sites.
Patch by Alex Langford!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314485
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Fri, 29 Sep 2017 00:54:16 +0000 (00:54 +0000)]
Revert "[BypassSlowDivision] Improve our handling of divisions by constants"
This reverts commit r314253. It causes a miscompile on P100 in an internal
benchmark. Reverting while I investigate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314482
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Fri, 29 Sep 2017 00:52:33 +0000 (00:52 +0000)]
llvm-dwarfdump: support .apple-namespaces in --find
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314481
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Fri, 29 Sep 2017 00:33:57 +0000 (00:33 +0000)]
[llvm-rc] Import all make_unique invocations from llvm namespace.
Previous patch fixed one of LLVM buildbots (lld-x86_64-win7).
However, some others have already been failing because of make_unique
compilation error (llvm-clang-x86_64-expensive-checks-win).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314480
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Fri, 29 Sep 2017 00:33:22 +0000 (00:33 +0000)]
llvm-dwarfdump: add support for .apple_types in --find
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314479
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Fri, 29 Sep 2017 00:14:18 +0000 (00:14 +0000)]
[llvm-rc] Add user-defined resources parsing ability. [8/8]
This allows llvm-rc to parse user-defined resources (ref:
msdn.microsoft.com/en-us/library/windows/desktop/
aa381054.aspx).
These statements either import files, or put the specified raw data in
the resulting resource file.
Thanks to Nico Weber for his original work in this area.
Differential Revision: https://reviews.llvm.org/D37033
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314478
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Thu, 28 Sep 2017 23:53:25 +0000 (23:53 +0000)]
[llvm-rc] Add integer expressions parsing ability. [7/8]
This allows the ints to be written as integer expressions evaluating to
unsigned 16-bit/32-bit integers.
All the expressions may use the following operators: + - & | ~, and
parentheses. Minus token - can be also unary. There is no precedence of
the operators other than the unary operators binding stronger than their
binary counterparts.
Differential Revision: https://reviews.llvm.org/D37022
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314477
91177308-0d34-0410-b5e6-
96231b3b80d8
Jessica Paquette [Thu, 28 Sep 2017 23:39:36 +0000 (23:39 +0000)]
[MachineOutliner][NFC] Simplify logic in pruneCandidates
This commit yanks out the repeated sections of code in pruneCandidates into
two lambdas: ShouldSkipCandidate and Prune. This simplifies the logic in
pruneCandidates significantly, and reduces the chance of introducing bugs by
folding all of the shared logic into one place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314475
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 28 Sep 2017 23:35:36 +0000 (23:35 +0000)]
[X86] Don't select (cmp (and, imm), 0) to testw
Summary:
X86ISelDAGToDAG tries to analyze ANDs compared with 0 to optimize to narrower immediates using subregisters.
I don't think we should be optimizing to 16-bit test instructions. It goes against our normal behavior of promoting i16 operations to i32. It only saves one byte due to the need to add a 0x66 prefix. I think it would also be subject to a length changing prefix penalty in the decoders on Intel CPUs.
Reviewers: RKSimon, zvi, spatel
Reviewed By: spatel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D38273
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314474
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Thu, 28 Sep 2017 23:12:53 +0000 (23:12 +0000)]
[llvm-rc] Fix-up for r314468 (argument-dependent lookup in make_unique).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314472
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Thu, 28 Sep 2017 23:12:06 +0000 (23:12 +0000)]
ARM: Fix cases where CSI Restored bit is not cleared
LR is an untypical callee saved register in that it is restored into a
different register (PC) and thus does not live-out of the return block.
This case requires the `Restored` flag in CalleeSavedInfo to be cleared.
This fixes a number of cases where this wasn't handled correctly yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314471
91177308-0d34-0410-b5e6-
96231b3b80d8
Yonghong Song [Thu, 28 Sep 2017 22:47:34 +0000 (22:47 +0000)]
bpf: fix a bug for disassembling ld_pseudo inst
Signed-off-by: Yonghong Song <yhs@fb.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314469
91177308-0d34-0410-b5e6-
96231b3b80d8
Marek Sokolowski [Thu, 28 Sep 2017 22:41:38 +0000 (22:41 +0000)]
[llvm-rc] Add VERSIONINFO parsing ability. [6/8]
This extends the set of llvm-rc parser's available resources by
another one, VERSIONINFO.
Ref: msdn.microsoft.com/en-us/library/windows/desktop/
aa381058.aspx
Thanks to Nico Weber for his original work in this area.
Differential Revision: https://reviews.llvm.org/D37021
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314468
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Thu, 28 Sep 2017 22:27:31 +0000 (22:27 +0000)]
[Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314467
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 28 Sep 2017 22:27:25 +0000 (22:27 +0000)]
[x86] add tests for possible insertelement to shuffle transform; NFC
See PR34716 and D38316 for more discussion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314466
91177308-0d34-0410-b5e6-
96231b3b80d8
Ulrich Weigand [Thu, 28 Sep 2017 22:08:25 +0000 (22:08 +0000)]
[SystemZ] Fix fall-out from r314428
The expensive-checks build bot found a problem with the r314428 commit:
if CC is live after a ATOMIC_CMP_SWAPW instruction, it needs to be
marked as live-in to the block after the loop the pseudo gets expanded
to. This actually fixes a code-gen bug as well, since if the CC isn't
live, the CR and JLH are merged to a CRJLH which doesn't actually set
the condition code any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314465
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 28 Sep 2017 20:10:34 +0000 (20:10 +0000)]
[X86] Make use of vpmovwb when possible in LowerMULH
If we have BWI, we can truncate in a much simpler way by using vpmovwb. This even works without VLX by using the wider zmm->ymm truncate with a subvector extract.
Differential Revision: https://reviews.llvm.org/D38375
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314457
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Thu, 28 Sep 2017 19:43:53 +0000 (19:43 +0000)]
Fix -Werror build.
/code/llvm-project/llvm/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp:260:38: error: lambda capture 'this' is not used [-Werror,-Wunused-lambda-capture]
[this](decltype(ObjLayer)::ObjHandleT,
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314454
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Thu, 28 Sep 2017 19:04:30 +0000 (19:04 +0000)]
[ARM] Restore the right frame pointer register in Int_eh_sjlj_longjmp
In setupEntryBlockAndCallSites in CodeGen/SjLjEHPrepare.cpp,
we fetch and store the actual frame pointer, but on return via
the longjmp intrinsic, it always was restored into the r7 variable.
On windows, the frame pointer should be restored into r11 instead of r7.
On Darwin (where sjlj exception handling is used by default), the frame
pointer is always r7, both in arm and thumb mode, and likewise, on
windows, the frame pointer always is r11.
On linux however, if sjlj exception handling is enabled (which it isn't
by default), libcxxabi and the user code can be built in differing modes
using different registers as frame pointer. Therefore, when restoring
registers on a platform where we don't always use the same register
depending on code mode, restore both r7 and r11.
Differential Revision: https://reviews.llvm.org/D38253
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314451
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Thu, 28 Sep 2017 19:04:14 +0000 (19:04 +0000)]
[ARM] Fix SJLJ exception handling when manually chosen on a platform where it isn't default
Differential Revision: https://reviews.llvm.org/D38252
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314450
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Thu, 28 Sep 2017 18:52:14 +0000 (18:52 +0000)]
MIR: Serialize CaleeSavedInfo Restored flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314449
91177308-0d34-0410-b5e6-
96231b3b80d8