OSDN Git Service
Simon Pilgrim [Wed, 20 Dec 2017 13:12:34 +0000 (13:12 +0000)]
[X86][AVX2] Split more shuffle tests into 'slow' and 'fast' variable shuffles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321171
91177308-0d34-0410-b5e6-
96231b3b80d8
Sander de Smalen [Wed, 20 Dec 2017 12:45:40 +0000 (12:45 +0000)]
Trivial commit to force LLVM to run TableGen for Mips target after
a change to the AsmMatcherEmitter, and should fix the buildbot
failure on llvm-clang-x86_64-expensive-checks-win.
The issue is also described here:
http://lists.llvm.org/pipermail/llvm-dev/2017-December/119617.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321170
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Wed, 20 Dec 2017 11:32:43 +0000 (11:32 +0000)]
[TargetParser] Check size before accessing architecture version.
Summary:
This fixes a crash when invalid -march options like `armv` are provided.
Based on a patch by Will Lovett.
Reviewers: rengolin, samparker, mcrosier
Reviewed By: samparker
Subscribers: aemerson, kristof.beyls, llvm-commits
Differential Revision: https://reviews.llvm.org/D41429
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321166
91177308-0d34-0410-b5e6-
96231b3b80d8
Diana Picus [Wed, 20 Dec 2017 11:27:10 +0000 (11:27 +0000)]
[ARM GlobalISel] Fix assertion in RegBankSelect
We get an assertion in RegBankSelect for code along the lines of
my_32_bit_int = my_64_bit_int, which tends to translate into a 64-bit
load, followed by a G_TRUNC, followed by a 32-bit store. This appears in
a couple of places in the test-suite.
At the moment, the legalizer doesn't distinguish between integer and
floating point scalars, so a 64-bit load will be marked as legal for
targets with VFP, and so will the rest of the sequence, leading to a
slightly bizarre G_TRUNC reaching RegBankSelect.
Since the current support for 64-bit integers is rather immature, this
patch works around the issue by explicitly handling this case in
RegBankSelect and InstructionSelect. In the future, we may want to
revisit this decision and make sure 64-bit integer loads are narrowed
before reaching RegBankSelect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321165
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Wed, 20 Dec 2017 11:13:57 +0000 (11:13 +0000)]
[ARM] Lower unsigned saturation to USAT
Summary:
Implement lower of unsigned saturation on an interval [0, k] where k + 1 is a power of two using USAT instruction in a similar way to how [~k, k] is lowered using SSAT on ARM models that supports it.
Patch by Marten Svanfeldt
Reviewers: t.p.northover, pbarrio, eastig, SjoerdMeijer, javed.absar, fhahn
Reviewed By: fhahn
Subscribers: fhahn, aemerson, javed.absar, llvm-commits, kristof.beyls
Differential Revision: https://reviews.llvm.org/D41348
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321164
91177308-0d34-0410-b5e6-
96231b3b80d8
Sander de Smalen [Wed, 20 Dec 2017 11:02:42 +0000 (11:02 +0000)]
[AArch64][SVE] Re-submit patch series for ZIP1/ZIP2
This patch resubmits the SVE ZIP1/ZIP2 patch series consisting of
of r320992, r320986, r320973, and r320970 by reverting
https://reviews.llvm.org/rL321024.
The issue that caused r321024 has been addressed in https://reviews.llvm.org/rL321158,
so this patch-series should be safe to resubmit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321163
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Wed, 20 Dec 2017 10:45:39 +0000 (10:45 +0000)]
AArch64: fix one more place movi.2d could be created.
Somehow got missed out of r320965.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321162
91177308-0d34-0410-b5e6-
96231b3b80d8
Bjorn Steinbrink [Wed, 20 Dec 2017 10:01:30 +0000 (10:01 +0000)]
Give up on array allocas in getPointerDereferenceableBytes
Summary:
As suggested by Eli Friedman, don't try to handle array allocas here,
because of possible overflows, instead rely on instcombine converting
them to allocations of array types.
Reviewers: efriedma
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D41398
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321159
91177308-0d34-0410-b5e6-
96231b3b80d8
Sander de Smalen [Wed, 20 Dec 2017 09:45:45 +0000 (09:45 +0000)]
[AArch64] Asm: Fix parsing of register aliases that have a name starting with 'z'
Summary: This fixes an issue as identified by @rnk in https://reviews.llvm.org/rL321029.
Reviewers: rnk, fhahn, rengolin, efriedma, echristo, olista01
Reviewed By: rnk, fhahn
Subscribers: aemerson, javed.absar, kristof.beyls, llvm-commits, rnk
Differential Revision: https://reviews.llvm.org/D41382
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321158
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Parker [Wed, 20 Dec 2017 08:56:41 +0000 (08:56 +0000)]
[AArch64] CCSIDR2 system register
Implement the 'Current Cache Size' register that has been introduced
as part of the Armv8.3 architecture. I originally missed this, and
(hopefully) should be the final patch for assembler support.
Differential Revision: https://reviews.llvm.org/D41396
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321155
91177308-0d34-0410-b5e6-
96231b3b80d8
Gadi Haber [Wed, 20 Dec 2017 08:28:24 +0000 (08:28 +0000)]
[X86][CLFLUSH]: Adding full coverage of MC encoding for the CLFLUSH isa sets.<NFC>
NFC.
Adding MC regressions tests to cover the CLFLSH and CLFLUSHOPT isa sets.
This patch is part of a larger task to cover MC encoding of all X86 isa sets started in revision: https://reviews.llvm.org/D39952
Reviewers: zvi, RKSimon, craig.topper, m_zuckerman
Differential Revision: https://reviews.llvm.org/D41331
Change-Id: Ifa643dd52f1b7184c52bc1806038dc74b234fc65
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321153
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 20 Dec 2017 07:36:59 +0000 (07:36 +0000)]
[X86] Optimize sign extends on index operand to gather/scatter to not sign extend past i32.
The gather instruction will implicitly sign extend to the pointer width, we don't need to further extend it. This can prevent unnecessary splitting in some cases.
There's still an issue that lowering on non-VLX can introduce another sign extend that doesn't get combined with shifts from a lowered sign_extend_inreg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321152
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Wed, 20 Dec 2017 06:51:45 +0000 (06:51 +0000)]
[AArch64] Implement stack probing for windows
Differential Revision: https://reviews.llvm.org/D41131
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321150
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 20 Dec 2017 06:44:50 +0000 (06:44 +0000)]
[X86] Add a missing return to combineGatherScatter after sucessful combine.
Not sure how to test this cause I think the worst that happens is that we don't revisit the node a second time to look for additional combines. We used UpdateNodeOperands so the updating the DAG work was already done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321148
91177308-0d34-0410-b5e6-
96231b3b80d8
Hiroshi Inoue [Wed, 20 Dec 2017 05:18:19 +0000 (05:18 +0000)]
[PowerPC] fix a bug in redundant compare elimination
This patch fixes a bug in the redundant compare elimination reported in https://reviews.llvm.org/rL320786 and re-enables the optimization.
The redundant compare elimination assumes that we can replace signed comparison with unsigned comparison for the equality check. But due to the difference in the sign extension behavior we cannot change the opcode if the comparison is against an immediate and the most significant bit of the immediate is one.
Differential Revision: https://reviews.llvm.org/D41385
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321147
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 20 Dec 2017 01:36:25 +0000 (01:36 +0000)]
[memcpyopt] Teach memcpyopt to optimize across basic blocks
This teaches memcpyopt to make a non-local memdep query when a local query
indicates that the dependency is non-local. This notably allows it to
eliminate many more llvm.memcpy calls in common Rust code, often by 20-30%.
This is r319482 and r319483, along with fixes for PR35519: fix the
optimization that merges stores into memsets to preserve cached memdep
info, and fix memdep's non-local caching strategy to not assume that larger
queries are always more conservative than smaller ones.
Fixes PR28958 and PR35519.
Differential Revision: https://reviews.llvm.org/D40802
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321138
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 20 Dec 2017 01:26:36 +0000 (01:26 +0000)]
[X86] Improve coverage of fma negations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321137
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 20 Dec 2017 01:26:35 +0000 (01:26 +0000)]
[X86] Fix probable typo in fma fneg test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321136
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 20 Dec 2017 01:00:01 +0000 (01:00 +0000)]
[X86] Remove code from combineSext that looks for MVT::i1 after operation legalization which can never happen.
Type legalization guarantees this to be impossible since MVT::i1 isn't a legal type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321132
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 20 Dec 2017 00:59:28 +0000 (00:59 +0000)]
[WebAssembly] Disable tee_local optimizations when targeting the ELF ABI.
These optimizations depend on the ExplicitLocals pass to lower TEE
instructions, which is disabled in the ELF ABI, so disable them too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321131
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 20 Dec 2017 00:10:28 +0000 (00:10 +0000)]
[WebAssembly] Remove an obsolete comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321127
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian McCarthy [Tue, 19 Dec 2017 23:34:37 +0000 (23:34 +0000)]
Revert "Fix faulty assertion in debug info"
This reverts commit
e32def3f7ebe1136b7038336eff56a415a962bf2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321125
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian McCarthy [Tue, 19 Dec 2017 23:01:17 +0000 (23:01 +0000)]
Fix faulty assertion in debug info
It appears the code uses nullptr to represent a void type in debug metadata,
which led to an assertion failure when building DeltaAlgorithm.cpp with a
self-hosted clang on Windows.
I'm not sure why/if the problem was Windows-specific.
Fixes bug https://bugs.llvm.org/show_bug.cgi?id=35543
Differential Revision: https://reviews.llvm.org/D41264
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321122
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Dec 2017 22:38:09 +0000 (22:38 +0000)]
[X86] Add an assert to indicate that there is only once specific VT allowed at a certain point in LowerMULH.
Helps with code readability a little.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321118
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Tue, 19 Dec 2017 22:05:25 +0000 (22:05 +0000)]
Silence a bunch of implicit fallthrough warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321114
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 21:47:14 +0000 (21:47 +0000)]
[CodeGen] Move printing MO_BlockAddress operands to MachineOperand::print
Work towards the unification of MIR and debug output by refactoring the
interfaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321113
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 21:47:10 +0000 (21:47 +0000)]
[CodeGen] Move printing MO_IntrinsicID operands to MachineOperand::print
Work towards the unification of MIR and debug output by refactoring the
interfaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321112
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 21:47:05 +0000 (21:47 +0000)]
[CodeGen] Move printing MO_IntrinsicID operands to MachineOperand::print
Work towards the unification of MIR and debug output by refactoring the
interfaces.
Also add support for printing with a null TargetIntrinsicInfo and no
MachineFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321111
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 21:47:00 +0000 (21:47 +0000)]
[CodeGen] Move printing MO_FPImmediate operands to MachineOperand::print
Work towards the unification of MIR and debug output by refactoring the
interfaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321110
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 21:46:55 +0000 (21:46 +0000)]
[CodeGen] Refactor printOffset from MO and MIRPrinter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321109
91177308-0d34-0410-b5e6-
96231b3b80d8
Haicheng Wu [Tue, 19 Dec 2017 20:53:32 +0000 (20:53 +0000)]
[CGP] Format. NFC
Clang-format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321107
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Tue, 19 Dec 2017 20:24:12 +0000 (20:24 +0000)]
TargetLoweringBase: Fix darwinHasSinCos()
Another followup to my refactoring in r321036: Turns out we can end up
with an x86 darwin target that is not macos (simulator triples can look
like i386-apple-ios) so we need the x86/32bit check in all cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321104
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Tue, 19 Dec 2017 19:42:32 +0000 (19:42 +0000)]
[dwarfdump][test] Add test case for r321064
Verify that -lookup takes a 64-bit address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321101
91177308-0d34-0410-b5e6-
96231b3b80d8
Mark Searles [Tue, 19 Dec 2017 19:26:23 +0000 (19:26 +0000)]
[AMDGPU] Turn off MergeConsecutiveStores() before Instruction Selection for AMDGPU. Commit
dbbb6c5fc3642987430866dffdf710df4f616ac7 turned on MergeConsecutiveStores() before Instruction Selection for all targets. Enough AMDGPU compiles go into an infinite loop ( MergeConsecutiveStores() merges two stores; LegalizeStoreOps() un-merges; MergeConsecutiveStores() re-merges, etc. ) to warrant turning it off until the issues can be addressed.
Differential Revision: https://reviews.llvm.org/D41377
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321100
91177308-0d34-0410-b5e6-
96231b3b80d8
Haicheng Wu [Tue, 19 Dec 2017 18:49:21 +0000 (18:49 +0000)]
[SeparateConstOffsetFromGEP] Fix a typo. NFC.
do CSE for to => do CSE to
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321098
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Dec 2017 18:05:13 +0000 (18:05 +0000)]
[X86] Regenerate popcnt tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321093
91177308-0d34-0410-b5e6-
96231b3b80d8
Amara Emerson [Tue, 19 Dec 2017 17:21:35 +0000 (17:21 +0000)]
[GlobalISel][Legalizer] Fix crash when trying to lower G_FNEG of fp128 types.
This doesn't add legalizer support, just prevents crashing so that we
can gracefully fall back to SDAG.
Fixes PR35690.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321091
91177308-0d34-0410-b5e6-
96231b3b80d8
Nirav Dave [Tue, 19 Dec 2017 17:10:56 +0000 (17:10 +0000)]
[DAG] Elide overlapping store
Summary:
Extend overlapping store elision to handle overwrites of stores by
larger stores.
Nontemporal tests have been modified to add memory dependencies to
prevent store elision.
Reviewers: craig.topper, rnk, t.p.northover
Subscribers: javed.absar, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D40969
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321089
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Dec 2017 16:54:07 +0000 (16:54 +0000)]
[X86][AVX512] Attempt target shuffle combining to different types instead of early-out
We try to prevent shuffle combining to value types that would stop the folding of masked operations, but by just returning early, we were failing to try different shuffle types.
The TODOs are all still relevant here to improve codegen but we're lacking test examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321085
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 16:51:52 +0000 (16:51 +0000)]
[CodeGen] Move printing MO_CFIIndex operands to MachineOperand::print
Work towards the unification of MIR and debug output by refactoring the
interfaces.
Before this patch we printed "<call frame instruction>" in the debug
output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321084
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 15:20:18 +0000 (15:20 +0000)]
[CFGVPrinter] Fix -dot-cfg-only
The refactoring in r281640 made -dot-cfg-only ignore the "-only" part.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321079
91177308-0d34-0410-b5e6-
96231b3b80d8
Ben Dunbobbin [Tue, 19 Dec 2017 14:49:33 +0000 (14:49 +0000)]
[ThinLTO][C-API] Correct api comments
Negative values never disabled the pruning - they simply set high values for the pruning interval.
The behaviour now is that negative values set the maximum pruning interval (which appears to have been the intention from the start) see https://reviews.llvm.org/D41231.
I have adjusted the comments to reflect this, removed any inaccurate statements, and corrected any typos I spotted in the English.
Differential Revision: https://reviews.llvm.org/D41279
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321078
91177308-0d34-0410-b5e6-
96231b3b80d8
Ben Dunbobbin [Tue, 19 Dec 2017 14:42:38 +0000 (14:42 +0000)]
[Support][CachePruning] Disable cache pruning regression fix
borked by: rL284966 (see: https://reviews.llvm.org/D25730).
Previously, Interval was unsigned (see: CachePruning.h), replacing the type with std::chrono::seconds (which is signed) causes a regression in behaviour because the c-api intends negative values to translate to large positive intervals to *effectively* disable the pruning (see comments on: setCachePruningInterval()).
Differential Revision: https://reviews.llvm.org/D41231
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321077
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Dec 2017 14:34:35 +0000 (14:34 +0000)]
[X86] Fix uninitialized variable sanitizer warning from rL321074
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321076
91177308-0d34-0410-b5e6-
96231b3b80d8
Haicheng Wu [Tue, 19 Dec 2017 13:42:58 +0000 (13:42 +0000)]
[InlineCost] Skip volatile loads when looking for repeated loads
This is a follow-up fix of r320814. A test case is also added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321075
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Dec 2017 13:16:43 +0000 (13:16 +0000)]
[X86][SSE] Add cpu feature for aggressive combining to variable shuffles
As mentioned in D38318 and D40865, modern Intel processors prefer to combine multiple shuffles to a variable shuffle mask (PSHUFB/VPERMPS etc.) instead of having multiple stage 'fixed' shuffles which put more pressure on Port 5 (at the expense of extra shuffle mask loads).
This patch provides a FeatureFastVariableShuffle target flag for Haswell+ CPUs that prefers combining 2 or more fixed shuffles to a single variable shuffle (default is 3 shuffles).
The long term aim is to drive more of this from schedule data (probably via the MC) but we're not close to being ready for that yet.
Differential Revision: https://reviews.llvm.org/D41323
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321074
91177308-0d34-0410-b5e6-
96231b3b80d8
David Green [Tue, 19 Dec 2017 12:19:08 +0000 (12:19 +0000)]
[ARM] Register the Thumb2SizeReducePass. NFC
Also adds a simple test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321072
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Tue, 19 Dec 2017 12:15:50 +0000 (12:15 +0000)]
[Support] Add WritableMemoryBuffer class
Summary:
The motivation here is LLDB, where we need to fixup relocations in
mmapped files before their contents can be read correctly. The
MemoryBuffer class does exactly what we need, *except* that it maps the
file in read-only mode.
WritableMemoryBuffer reuses the existing machinery for opening and
mmapping a file. The only difference is in the argument to the
mapped_file_region constructor -- we create a private copy-on-write
mapping, so that we can make changes to the mapped data, but the changes
aren't carried over to the underlying file.
This patch is based on an initial version by Zachary Turner.
Reviewers: mehdi_amini, rnk, rafael, dblaikie, zturner
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D40291
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321071
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 19 Dec 2017 12:02:40 +0000 (12:02 +0000)]
[X86][SSE] Use (V)PHMINPOSUW for vXi8 SMAX/SMIN/UMAX/UMIN horizontal reductions (PR32841)
Extension to D39729 which performed this for vXi16, with the same bit flipping to handle SMAX/SMIN/UMAX cases, vXi8 UMIN horizontal reductions can be performed.
This makes use of the fact that by performing a pair-wise i8 SHUFFLE/UMIN before PHMINPOSUW, we both get the UMIN of each pair but also zero-extend the upper bits ready for v8i16.
Differential Revision: https://reviews.llvm.org/D41294
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321070
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 11:59:28 +0000 (11:59 +0000)]
Fix: [YAML] Always double quote UTF-8 characters
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321069
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Visoiu Mistrih [Tue, 19 Dec 2017 11:51:05 +0000 (11:51 +0000)]
[YAML] Always double quote UTF-8 characters
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321068
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Tue, 19 Dec 2017 11:16:22 +0000 (11:16 +0000)]
[mips] Handle the emission of microMIPSr6 sll instruction when used as a nop.
This instruction is encoded as zero, so we have handle that case when checking
for unimplemented opcodes when producing the encoding for an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321066
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Tue, 19 Dec 2017 09:45:26 +0000 (09:45 +0000)]
[dwarfdump] Lookup needs to be an unsigned long long parameter.
Before this patch, dwarfdump's lookup parameter only accepts unsigned.
Given that for many current platforms the load address already exceeds
unsigned (e.g. arm64 w/ 0x100000000), dwarfdump needs an unsigned long
long parameter.
Patch by: Dr. Michael 'Mickey' Lauer <mickey@vanille-media.de>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321064
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Tue, 19 Dec 2017 09:10:21 +0000 (09:10 +0000)]
[JumpThreading] Restrict PRE across instructions that don't pass control to successors
PRE in JumpThreading should not be able to hoist copy of non-speculable loads across
instructions that don't always transfer execution to their successors, otherwise they may
introduce an unsafe load which otherwise would not be executed.
The same problem for GVN was fixed as rL316975.
Differential Revision: https://reviews.llvm.org/D40347
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321063
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Laevsky [Tue, 19 Dec 2017 08:52:51 +0000 (08:52 +0000)]
[FuzzMutate] Don't crash when mutator is unable to find operation
Differential Revision: https://reviews.llvm.org/D41009
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321062
91177308-0d34-0410-b5e6-
96231b3b80d8
Bjorn Steinbrink [Tue, 19 Dec 2017 08:46:46 +0000 (08:46 +0000)]
Treat sret arguments as being dereferenceable in getPointerDereferenceableBytes()
Reviewers: rnk, hfinkel, efriedma
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D41355
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321061
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Dec 2017 06:59:10 +0000 (06:59 +0000)]
[X86] Don't extend v16i8 non-uniform shifts to v16i32 if we have BWI. Use v16i16 instead.
BWI supports shifting by word amounts. Even if VLX isn't support we can still widen to v32i16 and extract the lower half. For SKX its preferrable to not use 512-bit vector if we can.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321059
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Dec 2017 06:29:00 +0000 (06:29 +0000)]
[X86] Use a specific list of MVTs in combineShiftRightArithmetic instead of iterating over every integer VT and checking their size.
Previously, we were checking for MVTs with sizes betwen 8 and 64 which only includes i8, i16, i32, and i64 today. But I don't think we should assume that and should list the types that are legal for x86. I also don't think we need i64 since type legalization is guaranteed to split those up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321058
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Dec 2017 06:28:58 +0000 (06:28 +0000)]
[X86] Remove unnecessary check for integer VT from combineShiftRightArithmetic.
I doubt there's any way to create a ashr for an FP type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321057
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Dec 2017 05:21:50 +0000 (05:21 +0000)]
[X86] Remove dead code for turning vector shifts by large amounts into a zero vector.
Pretty sure these are handled by a target independent DAG combine that turns them into undef these days.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321056
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 19 Dec 2017 04:52:04 +0000 (04:52 +0000)]
[X86] Use ZERO_EXTEND instead of ANY_EXTEND when extending the shift amount for a non-uniform shift.
My reading of the SDM says that all bits of the shift amount are used. If the value of the element is larger than the number of bits the result the shift result is zero. So I think we need to zero_extend here to avoid garbage in the upper bits.
In reality we lower any_extend as zero_extend so in most cases it would be hard to hit this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321055
91177308-0d34-0410-b5e6-
96231b3b80d8
Serguei Katkov [Tue, 19 Dec 2017 04:27:39 +0000 (04:27 +0000)]
Fix APFloat from string conversion for Inf
The method IEEEFloat::convertFromStringSpecials() does not recognize
the "+Inf" and "-Inf" strings but these strings are printed for
the double Infinities by the IEEEFloat::toString().
This patch adds the "+Inf" and "-Inf" strings to the list of recognized
patterns in IEEEFloat::convertFromStringSpecials().
Re-landing after fix.
Reviewers: sberg, bogner, majnemer, timshen, rnk, skatkov, gottesmm, bkramer, scanon, anna
Reviewed By: anna
Subscribers: mkazantsev, FlameTop, llvm-commits, reames, apilipenko
Differential Revision: https://reviews.llvm.org/D38030
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321054
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Tue, 19 Dec 2017 02:57:23 +0000 (02:57 +0000)]
[TableGen][GlobalISel] Reset the internal map of RuleMatchers just before the emission
Between the creation of the last InstructionMatcher and the first
emission of the related Rule, we need to clear the internal map of IDs.
We used to do that right after the creation of the main
InstructionMatcher when building the rule and although that worked, this
is fragile because if for some reason some later code decides to create
more InstructionMatcher before the final call to emit, then the IDs
would be completely messed up.
Move that to the beginning of "emit" so that the IDs are guarantee to be
consistent.
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321053
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 19 Dec 2017 01:08:53 +0000 (01:08 +0000)]
Fix Wasm as a follow up to r321035 and the other one
This array is tightly coupled with the .def file. Someone should look
into fixing that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321050
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Tue, 19 Dec 2017 00:49:04 +0000 (00:49 +0000)]
update_mir_test_checks: Accept IR as input as well as MIR
We need to handle IR for tests that want to do lowering (or just
-stop-after with IR as input). I've run this on one AArch64 test to
demonstrate what it looks like.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321048
91177308-0d34-0410-b5e6-
96231b3b80d8
Jake Ehrlich [Tue, 19 Dec 2017 00:47:30 +0000 (00:47 +0000)]
[llvm-objcopy] Add option to add a progbits section from a file
This change adds support for adding progbits sections with contents from a file
Differential Revision: https://reviews.llvm.org/D41212
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321047
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Tue, 19 Dec 2017 00:43:00 +0000 (00:43 +0000)]
TargetLoweringBase: Followup to r321035
I missed some prefixes and the fact that on AArch64 we use "bzero"
instead of "__bzero" as on X86 when doing my refactoring in r321035.
Improve tests for bzero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321046
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Tue, 19 Dec 2017 00:20:33 +0000 (00:20 +0000)]
TargetLowering: Fix InitLibcallCallingConvs() overriding things set in InitLibcalls()
I missed the fact that the later called InitLibcallCallingConvs()
overrides some things set in InitLibcalls() when I did the refactoring
in r321036.
Fix by merging InitLibcallCallingConvs() into InitLibcalls() and doing
the initialization earlier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321045
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Tue, 19 Dec 2017 00:05:10 +0000 (00:05 +0000)]
TargetLowering: Fix off-by-one error
This problem was present for a while, but somehow asan didn't catch
it before the refactoring in r321036.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321043
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Tue, 19 Dec 2017 00:04:41 +0000 (00:04 +0000)]
[llvm-readobj] Dump wasm init functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321042
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 18 Dec 2017 23:33:28 +0000 (23:33 +0000)]
TargetLoweringBase: Remove unnecessary watchos exception; NFC
WatchOS isn't report as iOS (as opposed to tvos) so the exception I
added in my last commit wasn't necessary after all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321041
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Mon, 18 Dec 2017 23:31:55 +0000 (23:31 +0000)]
update_mir_test_checks: Add "mir" to some states and regex names
For tests that do lowering we need to support IR as input, so here we
clarify some names to avoid ambiguity in upcoming commits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321039
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 18 Dec 2017 23:31:43 +0000 (23:31 +0000)]
[X86] Don't use NOPL when the assembler is passed an empty CPU string.
This recommits the change from r321026. I have a fix for the lld test now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321038
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 18 Dec 2017 23:19:44 +0000 (23:19 +0000)]
LiveStacks: Rename LiveStack.{h|cpp} to LiveStacks.{h|cpp}; NFC
Filenames should match the name of the class they contain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321037
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 18 Dec 2017 23:19:42 +0000 (23:19 +0000)]
X86/AArch64/ARM: Factor out common sincos_stret logic; NFCI
Note:
- X86ISelLowering: setLibcallName(SINCOS) was superfluous as
InitLibcalls() already does it.
- ARMISelLowering: Setting libcallnames for sincos/sincosf seemed
superfluous as in the darwin case it wouldn't be used while for all
other cases InitLibcalls already does it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321036
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 18 Dec 2017 23:14:28 +0000 (23:14 +0000)]
AArch64/X86: Factor out common bzero logic; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321035
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Mon, 18 Dec 2017 23:13:27 +0000 (23:13 +0000)]
[Hexagon] Cache loads to select to avoid traversing mutating DAG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321034
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 18 Dec 2017 22:20:10 +0000 (22:20 +0000)]
Revert part of r321026 "[X86] Don't use NOPL when the assembler is passed an empty CPU string." while I investigate how to fix an lld test failure.
Looks like lld also needs to pass a -mcpu in some of its tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321033
91177308-0d34-0410-b5e6-
96231b3b80d8
Evandro Menezes [Mon, 18 Dec 2017 22:17:39 +0000 (22:17 +0000)]
[AArch64] Expand test coverage of vector element shuffling to Exynos
Make sure that all test cases are run for Exynos as well. Otherwise, NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321032
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Mon, 18 Dec 2017 22:12:13 +0000 (22:12 +0000)]
[TableGen][GlobalISel] Make the arguments of the Instruction and Operand Matchers consistent
Move InsnVarID and OpIdx at the beginning of the list of arguments
for all the constructors of the OperandMatcher subclasses.
This matches what we do for the InstructionMatcher.
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321031
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Haarman [Mon, 18 Dec 2017 22:10:14 +0000 (22:10 +0000)]
Fix buffer overrun in WindowsResourceCOFFWriter::writeSymbolTable()
Summary:
We were using sprintf(..., "$R06X", <some uint32_t>) to create strings
that are expected to be exactly length 8, but this results in longer
strings if the uint32_t is greater than 0xffffff. This change modifies
the behavior as follows:
- Uses the loop counter instead of the data offset. This gives us
sequential symbol names, avoiding collisions as much as possible.
- Masks the value to 0xffffff to avoid generating names longer than 8
bytes.
- Uses formatv instead of sprintf.
Fixes PR35581.
Reviewers: ruiu, zturner
Reviewed By: ruiu
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D41270
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321030
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 18 Dec 2017 22:01:18 +0000 (22:01 +0000)]
Add test for .req directive starting with 'p'
Reduced test case from libjpeg_turbo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321029
91177308-0d34-0410-b5e6-
96231b3b80d8
Jessica Paquette [Mon, 18 Dec 2017 21:44:52 +0000 (21:44 +0000)]
[MachineOutliner][NFC] Gardening: use std::any_of instead of bool + loop
River Riddle suggested to use std::any_of instead of the bool + loop thing on
r320229. This commit does that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321028
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 18 Dec 2017 21:37:27 +0000 (21:37 +0000)]
[X86] Don't use NOPL when the assembler is passed an empty CPU string. Update tests to force a CPU with NOPL
Empty string should be equivalent to "generic" which doesn't allow NOPL. Force tests to use specificy 'pentiumpro' to guarantee NOPL.
Fixes PR35686
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321026
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Mon, 18 Dec 2017 21:25:53 +0000 (21:25 +0000)]
[TableGen][GlobalISel] Refactor optimizeRules related bit to allow code reuse
In theory, reapplying optimizeRules on each group matchers should give
us a second nesting level on the matching table. In practice, we need
more work to make that happen because all the predicates are actually
not directly available through the predicate matchers list.
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321025
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 18 Dec 2017 20:58:25 +0000 (20:58 +0000)]
Revert "[AArch64][SVE] Asm" changes, they broke libjpeg_turbo
This reverts changes r320992, r320986, r320973, and r320970.
r320970 by itself breaks the test case, and the rest depend on it.
Test case will land soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321024
91177308-0d34-0410-b5e6-
96231b3b80d8
Ivan A. Kosarev [Mon, 18 Dec 2017 20:05:20 +0000 (20:05 +0000)]
[Analysis] Generate more precise TBAA tags when one access encloses the other
There are cases when two tags with different base types denote
accesses to the same direct or indirect member of a structure
type. Currently, merging of such tags results in a tag that
represents an access to an object that has the type of that
member. This patch changes this so that if one of the accesses
encloses the other, then the generic tag is the one of the
enclosed access.
Differential Revision: https://reviews.llvm.org/D39557
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321019
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Mon, 18 Dec 2017 20:02:43 +0000 (20:02 +0000)]
[PGO] Fix handling of cold entry count for instrumented PGO
Summary:
In r277849, getEntryCount was changed to return None when the entry
count was 0, specifically for SamplePGO where it means no samples were
recorded. However, for instrumentation PGO a 0 entry count should be
returned directly, since it does mean that the function was completely
cold. Otherwise we end up treating these functions conservatively
in isFunctionEntryCold() and isColdBB().
Instead, for SamplePGO use -1 when there are no samples, and change
getEntryCount to return None when the value is -1.
Reviewers: danielcdh, davidxl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D41307
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321018
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Mon, 18 Dec 2017 19:47:41 +0000 (19:47 +0000)]
[TableGen][GlobalISel] Optimize MatchTable for faster instruction selection
*** Context ***
Prior to this patchw, the table generated for matching instruction was
straight forward but highly inefficient.
Basically, each pattern generates its own set of self contained checks
and actions.
E.g., TableGen generated:
// First pattern
CheckNumOperand 3
CheckOpcode G_ADD
...
Build ADDrr
// Second pattern
CheckNumOperand 3
CheckOpcode G_ADD
...
Build ADDri
// Third pattern
CheckNumOperand 3
CheckOpcode G_SUB
...
Build SUBrr
*** Problem ***
Because of that generation, a *lot* of check were redundant between each
pattern and were checked every single time until we reach the pattern
that matches.
E.g., Taking the previous table, let say we are matching a G_SUB, that
means we were going to check all the rules for G_ADD before looking at
the G_SUB rule. In particular we are going to do:
check 3 operands; PASS
check G_ADD; FAIL
; Next rule
check 3 operands; PASS (but we already knew that!)
check G_ADD; FAIL (well it is still not true)
; Next rule
check 3 operands; PASS (really!!)
check G_SUB; PASS (at last :P)
*** Proposed Solution ***
This patch introduces a concept of group of rules (GroupMatcher) that
share some predicates and only get checked once for the whole group.
This patch only creates groups with one nesting level. Conceptually
there is nothing preventing us for having deeper nest level. However,
the current implementation is not smart enough to share the recording
(aka capturing) of values. That limits its ability to do more sharing.
For the given example the current patch will generate:
// First group
CheckOpcode G_ADD
// First pattern
CheckNumOperand 3
...
Build ADDrr
// Second pattern
CheckNumOperand 3
...
Build ADDri
// Second group
CheckOpcode G_SUB
// Third pattern
CheckNumOperand 3
...
Build SUBrr
But if we allowed several nesting level, it could create a sub group
for the checknumoperand 3.
(We would need to call optimizeRules on the rules within a group.)
*** Result ***
With only one level of nesting, the instruction selection pass is up
to 4x faster. For instance, one instruction now takes 500 checks,
instead of 24k! With more nesting we could get in the tens I believe.
Differential Revision: https://reviews.llvm.org/D39034
rdar://problem/
34670699
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321017
91177308-0d34-0410-b5e6-
96231b3b80d8
Dimitry Andric [Mon, 18 Dec 2017 19:46:56 +0000 (19:46 +0000)]
Fix more inconsistent line endings. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321016
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 18 Dec 2017 19:40:11 +0000 (19:40 +0000)]
[X86] Minor formatting fix to getHostCPUFeatures. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321015
91177308-0d34-0410-b5e6-
96231b3b80d8
Jessica Paquette [Mon, 18 Dec 2017 19:33:21 +0000 (19:33 +0000)]
[MachineOutliner] Recommit r320229
LR was undefined entering outlined functions that contain calls. This made the
machine verifier unhappy when expensive checks were enabled. This fixes that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321014
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 18 Dec 2017 19:21:56 +0000 (19:21 +0000)]
[PPC] Also disable the pre-emit version of reg+reg to reg+imm transformation.
This has the same issue as the early pass disabled in r321010.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321013
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Mon, 18 Dec 2017 19:15:15 +0000 (19:15 +0000)]
[cmake] Update experimental target error message
Summary:
Update this error message indicate this test only ensures experimental
targets were passed via LLVM_EXPERIMENTAL_TARGETS_TO_BUILD.
Originally, this test validated all targets, but in r184923, it was moved
after the LLVMBUILDTOOL test, which also validates all targets, making
that part of the test redundant.
Differential Revision: https://reviews.llvm.org/D41273
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321012
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Mon, 18 Dec 2017 19:08:35 +0000 (19:08 +0000)]
Recommit "[DWARFv5] Dump an MD5 checksum in the line-table header."
Adds missing support for DW_FORM_data16.
Update of r320852/r320886, fixing the unittest again, this time use a
raw char string for the test data.
Differential Revision: https://reviews.llvm.org/D41090
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321011
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 18 Dec 2017 18:56:57 +0000 (18:56 +0000)]
[PPC] Disable reg+reg to reg+imm transformation.
It creates invalid instructions. PR35688.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321010
91177308-0d34-0410-b5e6-
96231b3b80d8
Dimitry Andric [Mon, 18 Dec 2017 18:56:00 +0000 (18:56 +0000)]
Fix inconsistent line endings in HexagonVectorLoopCarriedReuse.cpp. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321009
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Mon, 18 Dec 2017 18:51:57 +0000 (18:51 +0000)]
[Hexagon] Higher versions of HVX imply presence of lower versions
The code in Hexagon_MC::completeHVXFeatures wasn't setting all HVX-
related features correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321008
91177308-0d34-0410-b5e6-
96231b3b80d8
Ivan A. Kosarev [Mon, 18 Dec 2017 18:46:44 +0000 (18:46 +0000)]
[IR] Support the new TBAA metadata format in IR verifier
Differential Revision: https://reviews.llvm.org/D40438
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321007
91177308-0d34-0410-b5e6-
96231b3b80d8
Dimitry Andric [Mon, 18 Dec 2017 18:45:37 +0000 (18:45 +0000)]
Fix inconsistent line endings in ARCDisassembler.cpp. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321006
91177308-0d34-0410-b5e6-
96231b3b80d8