Hiroshi Yamauchi [Mon, 28 Oct 2019 19:35:34 +0000 (12:35 -0700)]
[PGO][PGSO] SizeOpts changes.
Summary:
(Split of off D67120)
SizeOpts/MachineSizeOpts changes for profile guided size optimization.
(A second try after previously committed as r375254 and reverted as r375375.)
Subscribers: mgorny, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69409
Francis Visoiu Mistrih [Mon, 28 Oct 2019 18:14:48 +0000 (11:14 -0700)]
[Remarks] Remove references to ELF support
There is no ELF support at the moment.
Remove all the references to the `.remarks` section.
Francis Visoiu Mistrih [Mon, 28 Oct 2019 18:10:07 +0000 (11:10 -0700)]
[Remarks] Emit the remarks section by default for certain formats
Emit a remarks section by default for the following formats:
* bitstream
* yaml-strtab
while still providing -remarks-section=<bool> to override the defaults.
Puyan Lotfi [Mon, 28 Oct 2019 19:10:21 +0000 (15:10 -0400)]
[MachineOuliner][NFC] Refactoring code to make outline rerunning a cleaner diff.
I want to add the ability to rerun the outliner in certain cases, and I
thought this could be an NFC change that could make a subsequent change
that allows for rerunning the outliner a cleaner diff.
Differential Revision: https://reviews.llvm.org/D69482
David Tellenbach [Mon, 28 Oct 2019 18:57:53 +0000 (18:57 +0000)]
[ARM][Thumb2InstrInfo] Fix default `0` opcode when rewriting frame indices
The static functions `positiveOffsetOpcode`, `negativeOffsetOpcode` and
`immediateOffsetOpcode` (lib/Target/ARM/Thumb2InstrInfo.cpp) currently can
return `0` as default opcode which is meaningless in this situation.
This patch replaces this default value by llvm_unreachable.
Reviewers: t.p.northover, tellenbach
Reviewed By: tellenbach
Subscribers: tellenbach, kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69432
Patch By: Lorenzo Casalino <lorenzo.casalino93@gmail.com>
Nico Weber [Mon, 28 Oct 2019 18:39:45 +0000 (14:39 -0400)]
Convert files added in
d157a9bc8ba1 to unix line endings.
Ran:
git show --diff-filter=A --stat
d157a9bc8ba1 | grep '|' | \
awk '{ print $1 }' | xargs dos2unix
Jay Foad [Thu, 24 Oct 2019 12:15:45 +0000 (13:15 +0100)]
[ConstantFold] Fold extractelement of getelementptr
Summary:
Getelementptr has vector type if any of its operands are vectors
(the scalar operands being implicitly broadcast to all vector elements).
Extractelement applied to a vector getelementptr can be folded by
applying the extractelement in turn to all of the vector operands.
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69379
Simon Pilgrim [Mon, 28 Oct 2019 18:28:03 +0000 (18:28 +0000)]
Lexer::ReadToEndOfLine - fix Token uninitialised value warnings. NFCI.
Use Token::startToken to initialize Token.
Craig Topper [Mon, 28 Oct 2019 18:10:49 +0000 (11:10 -0700)]
[X86] Add a DAG combine to turn (and (bitcast (vXi1 (concat_vectors (vYi1 setcc), undef,))), C) into (bitcast (vXi1 (concat_vectors (vYi1 setcc), zero,)))
The legalization of v2i1->i2 or v4i1->i4 bitcasts followed by a setcc can create an and after the bitcast. If we're lucky enough that the input to the bitcast is a concat_vectors where the first operand is a setcc that can natively 0 all the upper bits of ak-register, then we should replace the other operands of the concat_vectors with zero in order to remove the AND.
With the AND removed we might be able to use a kortest on the result.
Differential Revision: https://reviews.llvm.org/D69205
Nico Weber [Mon, 28 Oct 2019 18:17:07 +0000 (14:17 -0400)]
gn build: (manually) merge
d157a9bc
While here, also merge r335850 / r366396.
Jonas Devlieghere [Mon, 28 Oct 2019 18:14:49 +0000 (11:14 -0700)]
[Docs] Update source code link to Github
Julian Lettner [Thu, 21 Feb 2019 06:19:52 +0000 (22:19 -0800)]
[lit] Remove redundant comments from main function
Hopefully the functionality is now clear due to the use of small,
well-named helper functions.
Craig Topper [Mon, 28 Oct 2019 18:01:16 +0000 (11:01 -0700)]
[IR] Use UnaryOperator::CreateFNeg in NoFolder::createFNeg
If IRBuilder is constructed using the NoFolder constant folder, we should use the Unary FNeg to match the non-constant part of IRBuilder.
Differential Revision: https://reviews.llvm.org/D69396
Sander de Smalen [Mon, 28 Oct 2019 09:49:48 +0000 (09:49 +0000)]
Reland [AArch64][DebugInfo] Do not recompute CalleeSavedStackSize (Take 2)
Fixed up test/DebugInfo/MIR/Mips/live-debug-values-reg-copy.mir that
broke r375425.
Craig Topper [Mon, 28 Oct 2019 17:11:20 +0000 (10:11 -0700)]
[LV] Interleaving should not exceed estimated loop trip count.
Currently we may do iterleaving by more than estimated trip count
coming from the profile or computed maximum trip count. The solution is to
use "best known" trip count instead of exact one in interleaving analysis.
Patch by Evgeniy Brevnov.
Differential Revision: https://reviews.llvm.org/D67948
Evgenii Stepanov [Mon, 28 Oct 2019 17:21:01 +0000 (10:21 -0700)]
Add missing lld checks in sanitizer tests.
Do not add an lld dependency when this target does not exist. In this
case the system installation of lld is used (or whatever is detected
with -fuse-ld=lld by default).
Alexey Bataev [Fri, 25 Oct 2019 20:35:32 +0000 (16:35 -0400)]
[OPENMP]Fix PR43771: Do not capture contexprs variables.
If the variable is a constexpr variable, it should not be captured in the OpenMP region.
Bjorn Pettersson [Mon, 28 Oct 2019 16:34:52 +0000 (17:34 +0100)]
[utils] InlineFunction: fix for debug info affecting optimizations
Summary:
Debug info affects output from "opt -inline", InlineFunction could
not handle the llvm.dbg.value when it exist between alloca
instructions.
Problem was that the first alloca in a sequence of allocas was
handled differently from the subsequence alloca instructions. Now
all static alloca instructions are treated the same (being removed
if the have no uses). So it does not matter if there are dbg
instructions (or any other instructions) in between.
Fix the issue: https://bugs.llvm.org/show_bug.cgi?id=43291k
Patch by: yechunliang (Chris Ye)
Reviewers: bjope, jmorse, vsk, probinson, jdoerfert, mtrofin, aprantl, fhahn
Reviewed By: bjope
Subscribers: uabelho, ormris, aprantl, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68633
Austin Kerbow [Mon, 28 Oct 2019 16:39:20 +0000 (09:39 -0700)]
AMDGPU: Avoid overwriting saved PC
Summary:
An outstanding load with same destination sgpr as call could cause PC to be
updated with junk value on return.
Reviewers: arsenm, rampitec
Reviewed By: arsenm
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69474
Julian Lettner [Sat, 26 Oct 2019 01:51:29 +0000 (18:51 -0700)]
[lit] Make main.py a pure Python module
Running it directly as a tool, that is what lit.py is for.
Jonas Devlieghere [Mon, 28 Oct 2019 16:49:58 +0000 (09:49 -0700)]
[Docs] Disable Python docs when LLDB_DISABLE_PYTHON is set
This leads to a configuration error because we're trying to get a
property that doesn't exist:
get_target_property() called with non-existent target "swig_wrapper"
Sean Fertile [Mon, 28 Oct 2019 15:31:26 +0000 (11:31 -0400)]
[AIX] Refactor AIX Call Lowering to use CCState. NFCI.
This patch reworks the AIX call lowering to use CCState. Some defensive errors
are added in this patch to protect from emitting bad code for calling convention
logic that has not been implemented by design. The use of CCState follows the
precedent of other targets and enables the reuse of calling convention logic in
LowerFormalArguments, which will be rewritten to also use CCState in a late
patch.
Patch by Chris Bowler.
Differential Revision: https://reviews.llvm.org/D69101
Kostya Kortchinsky [Mon, 28 Oct 2019 16:25:04 +0000 (09:25 -0700)]
[scudo][standalone] Consolidate lists
Summary:
This is a clean patch using the last diff of D69265, but using git
instead of svn, since svn went ro and arc was making my life harded
than it needed to be.
I was going to introduce a couple more lists and realized that our
lists are currently a bit all over the place. While we have a singly
linked list type relatively well defined, we are using doubly linked
lists defined on the fly for the stats and for the secondary blocks.
This CL adds a doubly linked list object, reorganizing the singly list
one to extract as much of the common code as possible. We use this
new type in the stats and the secondary. We also reorganize the list
tests to benefit from this consolidation.
There are a few side effect changes such as using for iterator loops
that are, in my opinion, cleaner in a couple of places.
Reviewers: hctim, morehouse, pcc, cferris
Reviewed By: hctim
Subscribers: jfb, #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D69516
Simon Pilgrim [Mon, 28 Oct 2019 16:31:01 +0000 (16:31 +0000)]
Remove extra ';'. NFCI.
Guillaume Chatelet [Wed, 25 Sep 2019 09:31:28 +0000 (11:31 +0200)]
[clang] Add no_builtin attribute
Summary:
This is a follow up on https://reviews.llvm.org/D61634
This patch is simpler and only adds the no_builtin attribute.
Reviewers: tejohnson, courbet, theraven, t.p.northover, jdoerfert
Subscribers: mgrang, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D68028
--global [Mon, 28 Oct 2019 15:53:44 +0000 (08:53 -0700)]
[NFC] Comment endif to test commit access
Marcello Maggioni [Mon, 28 Oct 2019 16:15:52 +0000 (09:15 -0700)]
[LiveIntervalUnion] Expose extraction of last index in map for external users
Differential Revision: https://reviews.llvm.org/D69515
David Green [Sun, 20 Oct 2019 10:28:33 +0000 (11:28 +0100)]
[InstCombine] Extra combine for uadd_sat
This is an extra fold for a canonical form of uadd_sat, as shown in
D68651. It essentially selects uadd from an add and a select.
Differential Revision: https://reviews.llvm.org/D69244
Andrew Paverd [Mon, 28 Oct 2019 13:22:19 +0000 (13:22 +0000)]
Add Windows Control Flow Guard checks (/guard:cf).
Summary:
A new function pass (Transforms/CFGuard/CFGuard.cpp) inserts CFGuard checks on
indirect function calls, using either the check mechanism (X86, ARM, AArch64) or
or the dispatch mechanism (X86-64). The check mechanism requires a new calling
convention for the supported targets. The dispatch mechanism adds the target as
an operand bundle, which is processed by SelectionDAG. Another pass
(CodeGen/CFGuardLongjmp.cpp) identifies and emits valid longjmp targets, as
required by /guard:cf. This feature is enabled using the `cfguard` CC1 option.
Reviewers: thakis, rnk, theraven, pcc
Subscribers: ychen, hans, metalcanine, dmajor, tomrittervg, alex, mehdi_amini, mgorny, javed.absar, kristof.beyls, hiraditya, steven_wu, dexonsmith, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D65761
Jinsong Ji [Mon, 28 Oct 2019 15:03:07 +0000 (15:03 +0000)]
[AArch64] Fix unannotated fall-through between switch labels
This is breaking buildbot with -Werror,-Wimplicit-fallthrough on.
eg:
http://lab.llvm.org:8011/builders/ppc64le-lld-multistage-test/builds/6881
Sanne Wouda [Mon, 28 Oct 2019 11:40:45 +0000 (11:40 +0000)]
Precommit AArch64 test for -consider-local-interval-cost
Summary:
Precommitting this test makes it more obvious what the delta is of enabling
-consider-local-interval-cost in D69437.
Reviewers: dmgreen
Subscribers: kristof.beyls, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69512
Alexey Bataev [Mon, 28 Oct 2019 14:39:49 +0000 (10:39 -0400)]
[LIBOMPTARGET]Fix build, NFC.
Need to include nvptx_interface.h in target_impl.h, otherwise the build
is failed because of missing __kmpc_impl_lanemask_t type.
Nico Weber [Mon, 28 Oct 2019 14:35:56 +0000 (10:35 -0400)]
lld/COFF: Simplify getOutputPath() using sys::path functions.
Also mention "basename" and "dirname" in Path.h since I tried
to find these functions by looking for these strings. It might
help others find them faster if the comments contain these strings.
No behavior change.
Differential Revision: https://reviews.llvm.org/D69458
Jeremy Morse [Mon, 28 Oct 2019 14:23:50 +0000 (14:23 +0000)]
[DebugInfo] MachineSink: find more DBG_VALUEs to sink
In the Pre-RA machine sinker, previously we were relying on all DBG_VALUEs
being immediately after the instruction that defined their operands. This
isn't a valid assumption, as a variable location change doesn't
necessarily correspond to where the value is computed. In this patch, we
collect DBG_VALUEs that might need sinking as we walk through a block,
and sink all of them if their defining instruction is sunk.
This patch adds some copy propagation too, so that if we sink a copy inst,
the now non-dominated paths can use the copy source for the variable
location.
Differential Revision: https://reviews.llvm.org/D58386
Sanjay Patel [Mon, 28 Oct 2019 14:04:30 +0000 (10:04 -0400)]
[DAGCombiner] widen any_ext of popcount based on target support
This enhances D69127 (rGe6c145e0548e3b3de6eab27e44e1504387cf6b53)
to handle the looser "any_extend" cast in addition to zext.
This is a prerequisite step for canonicalizing in the other direction
(narrow the popcount) in IR - PR43688:
https://bugs.llvm.org/show_bug.cgi?id=43688
Bryan Chan [Mon, 28 Oct 2019 13:52:28 +0000 (09:52 -0400)]
[AArch64][Builtins] Avoid unnecessary cache cleaning
Use new control bits CTR_EL0.DIC and CTR_EL0.IDC to discover the d-cache
cleaning and i-cache invalidation requirements for instruction-to-data
coherence. This matches the behavior in the latest libgcc.
Author: Shaokun Zhang <zhangshaokun@hisilicon.com>
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D69247
David Green [Mon, 21 Oct 2019 08:11:29 +0000 (09:11 +0100)]
[InstCombine][NFC] Tests for uadd.sat and sadd.sat canonicalisation.
Ilya Biryukov [Mon, 28 Oct 2019 13:41:06 +0000 (14:41 +0100)]
[clangd] Do not report anonymous entities in findExplicitReferences
Summary:
Otherwise every client dealing with name location should handle
anonymous names in a special manner.
This seems too error-prone, clients can probably handle anonymous
entities they care about differently.
Reviewers: hokein
Reviewed By: hokein
Subscribers: MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69511
Sanjay Patel [Mon, 28 Oct 2019 12:56:23 +0000 (08:56 -0400)]
[CVP] prevent propagating poison when substituting edge values into a phi (PR43802)
This phi simplification transform was added with:
D45448
However as shown in PR43802:
https://bugs.llvm.org/show_bug.cgi?id=43802
...we must be careful not to propagate poison when we do the substitution.
There might be some more complicated analysis possible to retain the overflow flag,
but it should always be safe and easy to drop flags (we have similar behavior in
instcombine and other passes).
Differential Revision: https://reviews.llvm.org/D69442
Jeremy Morse [Mon, 28 Oct 2019 12:11:03 +0000 (12:11 +0000)]
[DebugInfo] MachineSink: Insert undef DBG_VALUEs when sinking instructions
When we sink DBG_VALUEs between blocks, we simply move the DBG_VALUE
instruction to below the sunk instruction. However, we should also mark
the variable as being undef at the original location, to terminate any
earlier variable location. This patch does that -- plus, if the
instruction being sunk is a copy, it attempts to propagate the copy
through the DBG_VALUE, replacing the destination with the source.
Differential Revision: https://reviews.llvm.org/D58238
Dmitry Preobrazhensky [Mon, 28 Oct 2019 12:03:43 +0000 (15:03 +0300)]
[AMDGPU][MC][GFX10] Added v_interp_[p1/p2/mov]_f32_e64
See https://bugs.llvm.org/show_bug.cgi?id=43747
Reviewers: arsenm, rampitec
Differential Revision: https://reviews.llvm.org/D69348
David Green [Wed, 23 Oct 2019 16:08:21 +0000 (17:08 +0100)]
[Codegen][ARM] Add float softening for cbrt
We would previously have no soft-float softening for cbrt, so could hit
a crash failing to select. This fills in what appears to be missing.
Differential Revision: https://reviews.llvm.org/D69345
Rafael Stahl [Mon, 28 Oct 2019 11:07:00 +0000 (12:07 +0100)]
minor doc typo fix / testing github commit
vhscampos [Thu, 17 Oct 2019 13:10:30 +0000 (14:10 +0100)]
[ARM][AArch64] Implement __cls, __clsl and __clsll intrinsics from ACLE
Summary:
Writing support for three ACLE functions:
unsigned int __cls(uint32_t x)
unsigned int __clsl(unsigned long x)
unsigned int __clsll(uint64_t x)
CLS stands for "Count number of leading sign bits".
In AArch64, these two intrinsics can be translated into the 'cls'
instruction directly. In AArch32, on the other hand, this functionality
is achieved by implementing it in terms of clz (count number of leading
zeros).
Reviewers: compnerd
Reviewed By: compnerd
Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D69250
Kadir Cetinkaya [Mon, 28 Oct 2019 11:04:47 +0000 (12:04 +0100)]
[clangd] Flush streams when printing HoverInfo Name and Definition
Summary: Fixes some windows breakages when compiled via msvc.
Ilya Biryukov [Mon, 28 Oct 2019 10:31:06 +0000 (11:31 +0100)]
[clangd] Do not highlight keywords in semantic highlighting
Summary:
Editors are good at highlightings the keywords themselves.
Note that this only affects highlightings of builtin types spelled out
as keywords in the source code. Highlightings of typedefs to builtin
types are unchanged.
Reviewers: hokein
Reviewed By: hokein
Subscribers: merge_guards_bot, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69431
vhscampos [Tue, 22 Oct 2019 10:43:51 +0000 (11:43 +0100)]
[ARM][AArch64] Implement __arm_rsrf, __arm_rsrf64, __arm_wsrf & __arm_wsrf64
Summary:
Adding support for ACLE intrinsics.
Patch by Michael Platings.
Reviewers: chill, t.p.northover, efriedma
Reviewed By: chill
Subscribers: kristof.beyls, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69297
Kerry McLaughlin [Mon, 28 Oct 2019 10:00:57 +0000 (10:00 +0000)]
[AArch64][SVE] Implement masked load intrinsics
Summary:
Adds support for codegen of masked loads, with non-extending,
zero-extending and sign-extending variants.
Reviewers: huntergr, rovka, greened, dmgreen
Reviewed By: dmgreen
Subscribers: dmgreen, samparker, tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68877
Sam Elliott [Mon, 28 Oct 2019 09:52:21 +0000 (09:52 +0000)]
[RISCV] Lower llvm.trap and llvm.debugtrap
Summary:
Until this commit, these have lowered to a call to abort().
`llvm.trap()` now lowers to `unimp`, which should trap on all systems.
`llvm.debugtrap()` now lowers to `ebreak`, which is exactly what this
instruction is for.
Reviewers: asb, luismarques
Reviewed By: asb
Subscribers: hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, pzheng, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69390
Guillaume Chatelet [Mon, 28 Oct 2019 09:40:35 +0000 (10:40 +0100)]
Fix https://bugs.llvm.org/show_bug.cgi?id=43791
Ilya Biryukov [Mon, 28 Oct 2019 08:34:21 +0000 (09:34 +0100)]
[clangd] Do not insert parentheses when completing a using declaration
Summary:
Would be nice to also fix this in clang, but that looks like more work
if we want to preserve signatures in informative chunks.
Fixes https://github.com/clangd/clangd/issues/118
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: merge_guards_bot, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69382
Seiya Nuta [Mon, 28 Oct 2019 06:40:37 +0000 (15:40 +0900)]
[llvm-objcopy][MachO] Implement --only-section
Reviewers: alexshap, rupprecht, jdoerfert, jhenderson
Reviewed By: alexshap, rupprecht, jhenderson
Subscribers: mgorny, jakehehrlich, abrachet, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65541
Kadir Cetinkaya [Fri, 18 Oct 2019 12:57:11 +0000 (14:57 +0200)]
[clangd] Reland Store Index in Tweak::Selection
Summary:
Incoming define out-of-line tweak requires access to index.
This patch simply propogates the index in ClangdServer to Tweak::Selection while
passing the AST. Also updates TweakTest to accommodate this change.
Reviewers: ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69165
Kadir Cetinkaya [Fri, 6 Sep 2019 07:49:40 +0000 (09:49 +0200)]
[clangd] Reland DefineInline action apply logic with fully qualified names
Summary:
Initial version of DefineInline action that will fully qualify every
name inside function body.
Reviewers: sammccall, ilya-biryukov, hokein
Tags: #clang
Differential Revision: https://reviews.llvm.org/D66647
David Zarzycki [Sat, 26 Oct 2019 18:34:43 +0000 (21:34 +0300)]
[X86] Fix 48/96 byte memcmp code gen
Detect scalar ISD::ZERO_EXTEND generated by memcmp lowering and convert
it to ISD::INSERT_SUBVECTOR.
https://reviews.llvm.org/D69464
LLVM GN Syncbot [Mon, 28 Oct 2019 06:32:06 +0000 (06:32 +0000)]
gn build: Merge
5ab9a850f6b
Kadir Cetinkaya [Mon, 28 Oct 2019 06:21:04 +0000 (07:21 +0100)]
[clangd] Reland DefineInline action availability checks
Summary:
Introduces DefineInline action and initial version of availability
checks.
Reviewers: sammccall, ilya-biryukov, hokein
Reviewed By: hokein
Subscribers: thakis, usaxena95, mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65433
Richard Smith [Mon, 28 Oct 2019 06:10:50 +0000 (23:10 -0700)]
[c++20] Enforce rule that a union-like class or class with reference
members cannot have defaulted comparisons.
Kadir Cetinkaya [Mon, 28 Oct 2019 06:18:07 +0000 (07:18 +0100)]
[clangd] Pass ExtraArgs to TestTU in TweakIsAvailable matcher
Richard Smith [Sun, 27 Oct 2019 20:18:16 +0000 (13:18 -0700)]
PR43775: don't produce a bogus 'auto' -Wc++98-compat warning for CTAD
Matt Arsenault [Sat, 5 Oct 2019 17:09:46 +0000 (10:09 -0700)]
TableGen: Use enum names in composeSubRegIndices table
I'm not sure why this is using the raw enum value. This makes reading
the generated table comprehensible.
Matt Arsenault [Sun, 27 Oct 2019 22:09:49 +0000 (15:09 -0700)]
OpenMP: Add convergent to more runtime functions
Several of these other functions are probably also convergent, but
these two seem obviously convergent.
Matt Arsenault [Sun, 27 Oct 2019 21:17:40 +0000 (14:17 -0700)]
OpenMP: Add helper function for convergent runtime calls
Most of the functions emitted here should probably be convergent, but
only barriers are currently marked. Introduce this helper before
adding convergent to more functions.
Craig Topper [Mon, 28 Oct 2019 00:13:50 +0000 (17:13 -0700)]
[X86] Use 64-bit version of source register in LowerPATCHABLE_EVENT_CALL and LowerPATCHABLE_TYPED_EVENT_CALL
Summary:
The PATCHABLE_EVENT_CALL uses i32 in the intrinsic. This
results in the register allocator picking a 32-bit register. We
need to use the 64-bit register when forming the MOV64rr
instructions. Otherwise we print illegal assembly in the text
output.
I think prior to this it was impossible for SrcReg to be equal
to DstReg so the NOP code was not reachable.
While there use Register instead of unsigned.
Also add a FIXME for what looks like a bug.
Reviewers: dberris
Reviewed By: dberris
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69365
Matt Arsenault [Mon, 28 Oct 2019 02:37:45 +0000 (19:37 -0700)]
Use isConvergent helper instead of directly checking attribute
Lawrence D'Anna [Sun, 27 Oct 2019 21:30:56 +0000 (14:30 -0700)]
[LLDB][formatters] ArgInfo::count -> ArgInfo::max_positional_args
Summary:
Move breakpoints from the old, bad ArgInfo::count to the new, better
ArgInfo::max_positional_args. Soon ArgInfo::count will be no more.
This functionality is tested in `TestFormatters.py`, `TestDataFormatterSynthVal.py`,
`TestDataFormatterSynthType.py`.
You may notice that the old code was passing 0 arguments when count was 1, and passing
1 argument when count is 2.
This is no longer necessary because max_positional_args counts the self pointer
correctly.
Reviewers: labath, jingham, JDevlieghere
Reviewed By: labath
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D69469
Saleem Abdulrasool [Sun, 27 Oct 2019 22:29:58 +0000 (18:29 -0400)]
PM: silence `-Wpessimizing-move` from GCC 9.2.1 (NFC)
Remove the explicit move enabling NVRO.
Alex Lorenz [Sun, 27 Oct 2019 20:28:59 +0000 (13:28 -0700)]
[lit] Drop the user-site packages directory from search paths when running tests
Do not add user-site packages directory to the python search path.
This avoids test failures if there's an incompatible lit module installed
inside the user-site packages directory, as it gets prioritized over the lit
from the PYTHONPATH.
Richard Smith [Sun, 27 Oct 2019 19:41:53 +0000 (12:41 -0700)]
PR43400: Add test that we can instantiate a friend function that is
defined as deleted.
The actual bug was fixed in commit
d052a578.
Richard Smith [Sun, 27 Oct 2019 19:26:36 +0000 (12:26 -0700)]
PR43762: when implicitly changing the active union member for an
assignment during constant evaluation, only start the lifetime of
trivially-default-constructible union members.
Sanjay Patel [Sun, 27 Oct 2019 19:26:46 +0000 (15:26 -0400)]
[SDAG] fold insert_vector_elt with undef index
Similar to:
rG4c47617627fb
This makes the DAG behavior consistent with IR's insertelement.
https://bugs.llvm.org/show_bug.cgi?id=42689
I've tried to maintain test intent for AArch64 and WebAssembly
by replacing undef index operands with something else.
Craig Topper [Sun, 27 Oct 2019 18:49:24 +0000 (11:49 -0700)]
[LegalizeTypes] When promoting BITREVERSE/BSWAP don't take the shift amount into account when determining the shift amount VT.
If the target's preferred shift amount VT can't hold any shift
amount for the promoted VT, we should use i32. The specific shift
amount shouldn't matter. The type will be adjusted later when the
shift itself is type legalized. This avoids an assert in getNode.
Fixes PR43820.
Craig Topper [Sun, 27 Oct 2019 07:41:00 +0000 (00:41 -0700)]
[TargetLowering] Add getBooleanContents contents check to "SETCC (SETCC), [0|1], [EQ|NE] -> SETCC" combine.
This combine is only valid if the inner setcc produces a 0/1 result
or the inner type is MVT::i1.
I haven't seen this cause any issues, just happened to notice it
while reviewing combines in this function.
While there also fix another call to use the value type from the
SDValue for the operand instead of calling SDNode::getValueType(0).
Though its likely the use is result 0, its not guaranteed.
Jon Chesterfield [Sun, 27 Oct 2019 05:01:24 +0000 (05:01 +0000)]
[nfc][libomptarget] Decrease coupling between files
Summary:
[nfc][libomptarget] Decrease coupling between files
debug.h used the symbol omptarget_device_environment so implicitly required
an include of omptarget-nvptx.h to compile. Similarly interface.h uses size_t.
Moving this declaration to a new header means cancel, critical can now build
without omptarget-nvptx.h. After this change, debug.h, cancel.cu, critical.cu
could move under a common source directory.
Reviewers: ABataev, jdoerfert, grokos
Subscribers: openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D69473
Jon Chesterfield [Sun, 27 Oct 2019 03:32:36 +0000 (03:32 +0000)]
[nfc][libomptarget] Inline option into target_impl
Summary:
[nfc][libomptarget] Inline option into target_impl
Subset of D69423. The macros that were in option.h are all target dependent.
Inlining the header simplifies the dependency graph when looking to move code
into a common subdir.
Reviewers: ABataev, jdoerfert, grokos
Subscribers: openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D69472
Greg Bedwell [Sun, 27 Oct 2019 10:06:22 +0000 (10:06 +0000)]
[MCA] Fix a spelling mistake in a comment. NFC
Greg Bedwell [Sun, 27 Oct 2019 09:39:45 +0000 (09:39 +0000)]
Fix a spelling mistake in a couple of intrinsic description comments. NFC
Jon Chesterfield [Sat, 26 Oct 2019 18:19:50 +0000 (19:19 +0100)]
[NFC][libomptarget]Remove TRUE,FALSE macros from option.h
Summary:
[NFC][libomptarget]Remove TRUE,FALSE macros from option.h
Subset of D69423. Patch series ends with removing option.h.
Reviewers: ABataev, jdoerfert, grokos
Subscribers: openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D69463
Craig Topper [Sat, 26 Oct 2019 17:26:04 +0000 (10:26 -0700)]
[X86] Only look up boolean reduction cost tables if the reduction is not pairwise.
Summary:
We don't pattern match pairwise shuffles in SelectionDAG. So we
should only return the optimized costs if its not a pairwise
shuffle.
I think SLP vectorizer gives priority to non pairwise shuffle if
the cost is the same. And the look up for reduction intrinsics
passes false for the pairwise flag. So this probably has no real
effect today.
Reviewers: RKSimon
Reviewed By: RKSimon
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69083
Roman Lebedev [Sat, 26 Oct 2019 19:46:09 +0000 (22:46 +0300)]
[APInt] Introduce APIntOps::GetMostSignificantDifferentBit()
Summary:
Compare two values, and if they are different, return the position of the
most significant bit that is different in the values.
Needed for D69387.
Reviewers: nikic, spatel, sanjoy, RKSimon
Reviewed By: nikic
Subscribers: xbolva00, hiraditya, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69439
David Zarzycki [Thu, 17 Oct 2019 09:38:15 +0000 (12:38 +0300)]
[X86] Prefer KORTEST on Knights Landing or later for memcmp()
PTEST and especially the MOVMSK instructions are slow on Knights Landing
or later. As a bonus, this patch increases instruction parallelism by
emitting:
KORTEST(PCMPNEQ(a, b), PCMPNEQ(c, d)) == 0
Instead of:
KORTEST(AND(PCMPEQ(a, b), PCMPEQ(c, d))) == ~0
https://reviews.llvm.org/D69157
David Zarzycki [Sun, 20 Oct 2019 09:21:11 +0000 (12:21 +0300)]
[X86] NFC: expand inline memcmp test coverage
1) Adds SSE4.1 coverage.
2) Adds prefer-256-bit or not coverage.
3) Adds more power-of-two tests up to 512 bytes.
4) Adds power-of-two-minus-one tests to verify overlapping loads.
5) Adds power-of-two-plus-one-half tests (48, 96, 192, and 384).
6) Adds greater-than/less-than tests from 16 to 512 bytes.
https://reviews.llvm.org/D69222
marshall [Tue, 22 Oct 2019 23:57:02 +0000 (16:57 -0700)]
Add all the issues to be voted upon in Belfast
Luboš Luňák [Sat, 26 Oct 2019 13:34:45 +0000 (15:34 +0200)]
fix lldb build with -DLLVM_ENABLE_MODULES=On (missing #include)
The error message says to add the #include.
Georgii Rymar [Sat, 26 Oct 2019 12:08:49 +0000 (15:08 +0300)]
[ObjectYAML] - Do not use auto. NFC.
Using 'auto' when the type is not obvious is undesired.
(it is just a test commit actually)
georgerim [Sat, 26 Oct 2019 11:52:12 +0000 (14:52 +0300)]
[YAMLTraits] - Revert a change committed by a mistake in D68983
I've accidentally reverted one of my previous patches.
It was not catched by bots because (I guess) they do not
build in debug (we have a test case which triggers an assert
in MSVS when runs without this change).
More info: https://reviews.llvm.org/D68983#inline-624235
Reported by Jordan Rupprecht.
cdevadas [Sat, 26 Oct 2019 09:03:36 +0000 (14:33 +0530)]
[AMDGPU] Fix Vreg_1 PHI lowering in SILowerI1Copies.
There is a minor flaw in the implementation of function lowerPhis.
This function replaces values of regclass Vreg_1 (boolean values)
involved in PHIs into an SGPR. Currently it iterates over the MBBs
and performs an inplace lowering of PHIs and fails to lower any
incoming value that itself is another PHI of Vreg_1 regclass.
The failure occurs only when the MBB where the incoming PHI value
belongs is not visited/lowered yet.
To fix this problem, collect all Vreg_1 PHIs upfront and then
perform the lowering.
Differential Revision: https://reviews.llvm.org/D69182
Shu-Chun Weng [Sat, 26 Oct 2019 08:36:50 +0000 (10:36 +0200)]
Correct size_t format specifier
Differential Revision: https://reviews.llvm.org/D69455
Craig Topper [Fri, 25 Oct 2019 07:13:52 +0000 (00:13 -0700)]
[X86][GISel] Fix typo in comment. NFC
Sergey Dmitriev [Sat, 31 Aug 2019 02:46:15 +0000 (19:46 -0700)]
Reland "[Clang][Bundler] Error reporting improvements"
- Changed FileHandler read/write methods to return llvm::Error
- Using unified way of reporting errors
- Removed trailing '.' from the error messages
Differential Revision: https://reviews.llvm.org/D67031
Lang Hames [Sat, 26 Oct 2019 00:59:17 +0000 (17:59 -0700)]
[ORC] Avoid SymbolStringPtr copies in DynamicLibrarySearchGenerator predicate.
Pass SymbolStringPtr by const-ref to avoid copies (which require atomic
ref-count operations).
Sergey Dmitriev [Sat, 26 Oct 2019 00:54:27 +0000 (17:54 -0700)]
Revert "[Clang][Bundler] Error reporting improvements"
This reverts commit
dd501045cdea1c80b6788f0266d2a79f8b412eea.
John McCall [Fri, 25 Oct 2019 23:28:03 +0000 (16:28 -0700)]
[NFC] Add a tablegen node for the root of the AST node hierarchies.
This is useful for the property databases we want to add for abstract
serialization, since root classes can have interesting properties.
John McCall [Fri, 25 Oct 2019 23:23:17 +0000 (16:23 -0700)]
Add Record::getValueAsOptionalDef().
Using `?` as an optional marker is very useful in Clang's AST-node
emitters because otherwise we need a separate class just to encode
the presence or absence of a base node reference.
Sergey Dmitriev [Sat, 31 Aug 2019 02:46:15 +0000 (19:46 -0700)]
[Clang][Bundler] Error reporting improvements
- Changed FileHandler read/write methods to return llvm::Error
- Using unified way of reporting errors
- Removed trailing '.' from the error messages
Differential Revision: https://reviews.llvm.org/D67031
Sanjay Patel [Fri, 25 Oct 2019 23:21:44 +0000 (19:21 -0400)]
[SDAG] fold extract_vector_elt with undef index
This makes the DAG behavior consistent with IR's extractelement after:
rGb32e4664a715
https://bugs.llvm.org/show_bug.cgi?id=42689
I've tried to maintain test intent for WebAssembly.
The AMDGPU test is trying to test for crashing or other bad behavior,
but I'm not sure if that's possible after this change.
Julian Lettner [Thu, 21 Feb 2019 05:09:19 +0000 (21:09 -0800)]
[lit] Move sharding logic into separate function
Matt Morehouse [Fri, 25 Oct 2019 23:12:59 +0000 (16:12 -0700)]
[libFuzzer] Enable extra counters for Fuchsia.
Adrian McCarthy [Fri, 25 Oct 2019 22:50:42 +0000 (15:50 -0700)]
Fix after
738af7a6241c98164625b9cd1ba9f8af4e36f197
Default implementation of a new virtual method wasn't returning a value.
Reid Kleckner [Fri, 25 Oct 2019 22:43:26 +0000 (15:43 -0700)]
Use __builtin_strlen in constexpr StringRef ctor with MSVC
MSVC supports it. Fixes the major MSVC compile time regression
introduced in r369961. Now
clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp compiles in 18s
instead of 7+ minutes.
Fixes PR43369