Sam Parker [Mon, 23 Mar 2020 08:39:53 +0000 (08:39 +0000)]
[DAGCombine] Skip PostInc combine with later users
When decided whether to generate a post-inc load/store, look at the
other memory nodes that use the same base address and, if any proceed
the current node, then don't do the combine.
The change only seems to be affecting the Arm backend, which I was
surprised at, but it appears to fix a lot of our issues around MVE
masked load/stores having to store a temporary address after an early
post-increment on a shared base address.
Differential Revision: https://reviews.llvm.org/D75847
Sam Parker [Mon, 23 Mar 2020 08:29:41 +0000 (08:29 +0000)]
[NFC][DAGCombine] Refactor post-inc logic
Extract the decision to combine into a post-inc address into a
couple of functions to make the logic more clear and re-usable.
Differential Revision: https://reviews.llvm.org/D76060
Dominik Montada [Fri, 20 Mar 2020 13:46:01 +0000 (14:46 +0100)]
[GlobalISel] support widen unmerge if WideTy > SrcTy
Summary:
Widening G_UNMERGE_VALUES to a type which is larger than the
original source type is the same as widening it to the same
type as the source type: in both cases, G_UNMERGE_VALUES has
to be replaced with bit arithmetic which. Although the arithmetic
itself is independent of whether the source type is smaller
or equal to the widen type, widening the source type to the
widen type should result in less artifacts being emitted,
since this is the type that the user explicitly requested.
Reviewers: arsenm, dsanders, aemerson, aditya_nandakumar
Reviewed By: arsenm, dsanders
Subscribers: jvesely, wdng, nhaehnle, rovka, hiraditya, volkan, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D76494
Fangrui Song [Mon, 23 Mar 2020 06:57:22 +0000 (23:57 -0700)]
[llvm-objdump][test] Improve PowerPC branch offset tests
Alex Brachet [Mon, 23 Mar 2020 05:50:16 +0000 (01:50 -0400)]
[libc] Don't configure test and fuzzer when -DLLVM_INCLUDE_TESTS=OFF
Summary: Fixes problem reported in D74397#1935863
Reviewers: nathanchance, gchatelet, sivachandra, MaskRay
Reviewed By: sivachandra, MaskRay
Subscribers: mgorny, MaskRay, tschuett
Differential Revision: https://reviews.llvm.org/D76577
David Blaikie [Mon, 23 Mar 2020 05:39:16 +0000 (22:39 -0700)]
Buildbot debugging of
0d0b90105f92f6cd9cc7004d565834f4429183fb (lambda/function_ref lifetime issues)
This is failing on several buildbots with some inexplicable (to me,
right now) crashes. Let's see if this change is adequate to unblock the
buildbots & further understanding can be gained later.
Juneyoung Lee [Mon, 23 Mar 2020 04:49:29 +0000 (13:49 +0900)]
Add test cases that are addressed by D76010
Qiu Chaofan [Mon, 23 Mar 2020 03:40:07 +0000 (11:40 +0800)]
[NFC] [PowerPC] Prepare test for FMA negate check
This patch adds a test file, covering outputs when some operands in FMA
is negative.
Uday Bondhugula [Sun, 22 Mar 2020 11:25:36 +0000 (16:55 +0530)]
[MLIR][NFC] Move some of the affine transforms / tests to dialect dirs
Move some of the affine transforms and their test cases to their
respective dialect directory. This patch does not complete the move, but
takes care of a good part.
Renames: prefix 'affine' to affine loop tiling cl options,
vectorize -> super-vectorize
Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>
Differential Revision: https://reviews.llvm.org/D76565
Uday Bondhugula [Mon, 23 Mar 2020 01:34:04 +0000 (07:04 +0530)]
[MLIR][NFC] rename ConvertStandardToLLVM, ConvertLoopToStandard to drop Convert prefix
This is in line with the convention agreed on https://llvm.discourse.group/t/rfc-canonical-file-paths-to-dialects/621
Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>
Differential Revision: https://reviews.llvm.org/D76583
David Blaikie [Mon, 23 Mar 2020 01:43:39 +0000 (18:43 -0700)]
Revert "[FIX] Do not copy an llvm::function_ref if it has to be reused"
This fix doesn't seem to be right (function_ref can/should be passed by
value) so I'm reverted it to see if the buildbots decide to explain
what's wrong.
This reverts commit
857bf5da35af8e1f9425e1865dab5f5fce5e38f2.
David Blaikie [Mon, 23 Mar 2020 01:17:53 +0000 (18:17 -0700)]
Roll an expression into an assert to remove the need for a (void) cast.
Craig Topper [Sun, 22 Mar 2020 21:20:50 +0000 (14:20 -0700)]
[X86] Remove maximum vector length limit from combineBasicSADPattern.
createPSADBW uses SplitsOpsAndApply so should be able to handle
any size.
Restrict the extract result type to i32 or i64 since that's what
we have coverage for today and probably matches what the
isSimple() check gave us before.
Differential Revision: https://reviews.llvm.org/D76560
Sylvestre Ledru [Sun, 22 Mar 2020 21:45:15 +0000 (22:45 +0100)]
doc: use the right url to bugzilla
Sylvestre Ledru [Sun, 22 Mar 2020 21:42:03 +0000 (22:42 +0100)]
Doc: Links should use https
Florian Hahn [Sat, 21 Mar 2020 23:38:37 +0000 (23:38 +0000)]
[SCCP] Add a few more tests for conditional propagation,XOR.
Sylvestre Ledru [Sun, 22 Mar 2020 21:31:18 +0000 (22:31 +0100)]
update of the llvm doc: we moved to git
Craig Topper [Sun, 22 Mar 2020 18:09:55 +0000 (11:09 -0700)]
[X86] More accurately model the cost of horizontal reductions.
This patch attempts to more accurately model the reduction of
power of 2 vectors of types we natively support. This takes into
account the narrowing of vectors that occur as we go from 512
bits to 256 bits, to 128 bits. It also takes into account the use
of wider elements in the shuffles for the first 2 steps of a
reduction from 128 bits. And uses a v8i16 shift for the final step
of vXi8 reduction.
The default implementation uses the legalized type for the arithmetic
for all levels. And uses the single source permute cost of the
legalized type for all levels. This penalizes things like
lack of v16i8 pshufb on pre-sse3 targets and the splitting and
joining that needs to be done for integer types on AVX1. We never
need v16i8 shuffle for a reduction and we only need split AVX1 ops
when type the type wide and needs to be split. I think we're still
over costing splits and joins for AVX1, but we're closer now.
I've also removed all pairwise special casing because I don't
think we ever want to generate that on X86. I've also adjusted
the add handling to more accurately account for any type splitting
that occurs before we reach a legal type.
Differential Revision: https://reviews.llvm.org/D76478
Sylvestre Ledru [Sun, 22 Mar 2020 21:18:40 +0000 (22:18 +0100)]
clang/release notes: s/Subversion/git/
Simon Atanasyan [Sun, 22 Mar 2020 17:20:00 +0000 (20:20 +0300)]
[mips] Implement .cpadd directive
This directive inserts code to add $gp to the argument's register when
support for position independent code is enabled.
For example, this code:
.cpadd $4
expands to:
addu $4, $4, $gp
Simon Atanasyan [Sun, 22 Mar 2020 17:10:00 +0000 (20:10 +0300)]
[mips] Implement sne pseudo instruction
The `sne Dst, Src1, Src2/Imm` pseudo instruction sets register `Dst` to
1 if register `Src1` is not equal to `Src2/Imm` and to 0 otherwise.
Simon Atanasyan [Sun, 22 Mar 2020 17:00:00 +0000 (20:00 +0300)]
[mips] Implement sle/sleu pseudo instructions
The `sle/sleu Dst, Src1, Src2/Imm` pseudo instructions set register
`Dst` to 1 if register `Src1` is less than or equal `Src2/Imm` and
to 0 otherwise.
Simon Atanasyan [Sun, 22 Mar 2020 15:23:28 +0000 (18:23 +0300)]
[mips] Remove instructions related to "wired paired single" from the P5600 model.
Simon Atanasyan [Sun, 22 Mar 2020 15:22:23 +0000 (18:22 +0300)]
[mips] Add HasMips3D to the list of features unsupported by P5600 model.
Simon Atanasyan [Sun, 22 Mar 2020 15:18:25 +0000 (18:18 +0300)]
[mips] Rename target feature Mips3D => HasMips3D. NFC
Jacques Pienaar [Sun, 22 Mar 2020 20:13:17 +0000 (13:13 -0700)]
[mlir] Change include image to be toplevel
This will match the changes mlir.llvm.org side.
Alex Brachet [Sun, 22 Mar 2020 19:11:22 +0000 (15:11 -0400)]
[libc][NFC] Fix typo in milliseconds
Yaxun (Sam) Liu [Thu, 19 Mar 2020 21:11:35 +0000 (17:11 -0400)]
[NFC] Refactor handling of Xarch option
Extract common code to a function. To prepare for
adding an option for CUDA/HIP host and device only
option.
Differential Revision: https://reviews.llvm.org/D76455
Yaxun (Sam) Liu [Sun, 22 Mar 2020 17:43:33 +0000 (13:43 -0400)]
Add Triple::isAMDGPU
Differential Revision: https://reviews.llvm.org/D57707
Alex Brachet [Sun, 22 Mar 2020 18:15:47 +0000 (14:15 -0400)]
[libc] Add signal
Summary:
This patch adds a Linux implementation for `signal`
It also fixes `ASSERT|EXPECT_THAT` macros
Reviewers: sivachandra, PaulkaToast, MaskRay
Reviewed By: sivachandra
Subscribers: mgorny, tschuett, libc-commits
Differential Revision: https://reviews.llvm.org/D76536
Craig Topper [Sun, 22 Mar 2020 17:54:50 +0000 (10:54 -0700)]
[X86] Remove maximum vector width restriction from combineLoopSADPattern.
SplitsOpsAndApply will take care of any needed splitting correctly.
All that we need to check is that the vector element count is a
power of 2.
Differential Revision: https://reviews.llvm.org/D76558
Nico Weber [Sun, 22 Mar 2020 17:27:51 +0000 (13:27 -0400)]
Remove a dead function.
Matt Arsenault [Sun, 22 Mar 2020 15:36:44 +0000 (11:36 -0400)]
Verifier: Check bswap is supported size
Make sure it is a multiple of 2 bytes as specified in the LangRef.
Nikita Popov [Sat, 21 Mar 2020 09:14:17 +0000 (10:14 +0100)]
[InstCombine] Remove ExpensiveCombines option
D75801 removed the last and only user of this option, so we can
drop it now. The original idea behind this was to only run expensive
transforms under -O3, but apart from the one known bits transform,
this has never really taken off. I believe nowadays the recommendation
is to put expensive transforms in AggressiveInstCombine instead,
though that isn't terribly popular either :)
Differential Revision: https://reviews.llvm.org/D76540
Matt Arsenault [Sun, 22 Mar 2020 14:45:36 +0000 (10:45 -0400)]
Utils: Mostly convert memcpy expansion to use Align
The TTI hooks aren't converted. I also think the intrinsics should
have mandatory alignment and never return MaybeAlign.
Qiu Chaofan [Sun, 22 Mar 2020 15:10:07 +0000 (23:10 +0800)]
[DAGCombiner] Require nsz for aggressive fma fold
For folding pattern `x-(fma y,z,u*v) -> (fma -y,z,(fma -u,v,x))`, if
`yz` is 1, `uv` is -1 and `x` is -0, sign of result would be changed.
Differential Revision: https://reviews.llvm.org/D76419
Qiu Chaofan [Sun, 22 Mar 2020 14:40:49 +0000 (22:40 +0800)]
[NFC] [PowerPC] Remove unsafe-fp-math in FMA test
Simon Pilgrim [Sun, 22 Mar 2020 14:02:08 +0000 (14:02 +0000)]
[X86][SSE] Add some additional irregular AVG tests
Finally resurrecting D56506 and want to improve test coverage.
Bjorn Pettersson [Sun, 22 Mar 2020 11:16:42 +0000 (12:16 +0100)]
[ValueTracking] Avoid blind cast from Operator to Instruction
Summary:
Avoid blind cast from Operator to ExtractElementInst in
computeKnownBitsFromOperator. This resulted in some crashes
in downstream fuzzy testing. Instead we use getOperand directly
on the Operator when accessing the vector/index operands.
Haven't seen any problems with InsertElement and ShuffleVector,
but I believe those could be used in constant expressions as well.
So the same kind of fix as for ExtractElement was also applied for
InsertElement.
When it comes to ShuffleVector we now simply bail out if a dynamic
cast of the Operator to ShuffleVectorInst fails. I've got no
reproducer indicating problems for ShuffleVector, and a fix would be
slightly more complicated as getShuffleDemandedElts is involved.
Reviewers: RKSimon, nikic, spatel, efriedma
Reviewed By: RKSimon
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D76564
Nikita Popov [Sat, 21 Mar 2020 11:45:51 +0000 (12:45 +0100)]
[SLP] Avoid repeated visitation in getVectorElementSize(); NFC
We need to insert into the Visited set at the same time we insert
into the worklist. Otherwise we may end up pushing the same
instruction to the worklist multiple times, and only adding it to
the visited set later.
Qiu Chaofan [Sun, 22 Mar 2020 12:55:32 +0000 (20:55 +0800)]
[NFC] [PowerPC] Update FMA association test
River Riddle [Sun, 22 Mar 2020 10:13:40 +0000 (03:13 -0700)]
[mlir] Move the testing pass for GpuKernelToCubin to the test/ directory
Summary:
This removes the static pass registration, and also cleans up some lingering technical debt.
Differential Revision: https://reviews.llvm.org/D76554
River Riddle [Sat, 21 Mar 2020 22:09:01 +0000 (15:09 -0700)]
[mlir][NFC] Remove Analysis/Passes.h
Summary:
This file only contains references to test passes, and was never removed when the test passes were moved to the test/ directory.
Differential Revision: https://reviews.llvm.org/D76553
River Riddle [Sat, 21 Mar 2020 22:08:49 +0000 (15:08 -0700)]
[mlir] Move several static cl::opts to be pass options instead.
This removes the reliance on global options, and also simplifies the pass registration.
Differential Revision: https://reviews.llvm.org/D76552
Nikita Popov [Sat, 21 Mar 2020 13:54:46 +0000 (14:54 +0100)]
[LVI] Use SmallDenseMap for getValueFromCondition(); NFC
For the common case, we will only insert one value into this map.
Fangrui Song [Sun, 22 Mar 2020 06:01:46 +0000 (23:01 -0700)]
[AsmPrinter] Simplify AsmPrinter::emitXXStructorList after D61547
Fangrui Song [Sun, 22 Mar 2020 05:27:50 +0000 (22:27 -0700)]
Delete TargetLoweringObjectFile::Ctx
We can use the parent MCObjectFileInfo::Ctx which has the same value.
Fangrui Song [Sun, 22 Mar 2020 05:03:42 +0000 (22:03 -0700)]
[X86] Delete unneeded X86ELFTargetObjectFile::Initialize. NFC
David Blaikie [Sun, 22 Mar 2020 04:17:33 +0000 (21:17 -0700)]
Revert "EHScopeStack::Cleanup has virtual functions so the destructor should be too."
This type was already well designed - having a protected destructor, and
derived classes being final/public non-virtual destructors, the type
couldn't be destroyed polymorphically & accidentally cause slicing.
This reverts commit
736385c0b49d42f398ffa1458883f0d182178ef4.
Lang Hames [Sun, 22 Mar 2020 01:25:37 +0000 (18:25 -0700)]
[ORC] Move ostream operators for debugging output out of Core.h.
DebugUtils.h seems like a more appropriate home for these.
Craig Topper [Sun, 22 Mar 2020 00:37:42 +0000 (17:37 -0700)]
[X86] Add nonloop v64i8 test to sad.ll.
Uday Bondhugula [Sat, 21 Mar 2020 12:01:47 +0000 (17:31 +0530)]
[MLIR][NFC] fix memref type doc comment on dynamic shape
Fix memref type doc comment to state that -1 indicates a dynamically
shaped dimension and not any negative number.
Signed-off-by: Uday Bondhugula <uday@polymagelabs.com>
Differential Revision: https://reviews.llvm.org/D76557
Craig Topper [Sat, 21 Mar 2020 22:27:21 +0000 (15:27 -0700)]
[X86] Add test for v4i8 loop sad pattern.
This cases produces a psadbw that doesn't need to be widened or
extracted so takes a slightly different code path in
combineLoopSADPattern.
LLVM GN Syncbot [Sat, 21 Mar 2020 20:48:15 +0000 (20:48 +0000)]
[gn build] Port
34fd007aaf8
Ehud Katz [Sat, 21 Mar 2020 20:47:17 +0000 (22:47 +0200)]
Revert "[ADT] Implement the Waymarking as an independent utility"
This reverts commit
73cf8abbe695aede9aac804f960513bb7355004a.
Eric Fiselier [Sat, 21 Mar 2020 20:27:45 +0000 (16:27 -0400)]
[libc++] tolerate missing diagnostic with modules enabled
Aaron Ballman [Sat, 21 Mar 2020 19:46:40 +0000 (15:46 -0400)]
The generated code does not need to check for a null Decl; NFC.
It is already assumed to be nonnull by the code calling diagAppertainsToDecl.
Simon Pilgrim [Sat, 21 Mar 2020 19:30:22 +0000 (19:30 +0000)]
[InstCombine] Add ctpop -> cttz combine tests (PR43513)
Simon Pilgrim [Sat, 21 Mar 2020 19:11:23 +0000 (19:11 +0000)]
[X86] getTargetShuffleAndZeroables - add insert_subvector(undef, sub, c) handling.
We often widen xmm/ymm vectors to ymm/zmm by insertion into an undef base vector. By letting getTargetShuffleAndZeroables track the undef elts we can help avoid a lot of unnecessary cross-lane shuffles.
Fixes PR44694
Simon Pilgrim [Sat, 21 Mar 2020 18:30:14 +0000 (18:30 +0000)]
[X86][AVX] Add HADDPD test case for PR44694
Florian Hahn [Sat, 21 Mar 2020 15:57:19 +0000 (15:57 +0000)]
[clang/docs] Fix various sphinx warnings/errors in docs.
There are a few places with unexpected indents that trip over sphinx and
other syntax errors.
Also, the C++ syntax highlighting does not work for
class [[gsl::Owner(int)]] IntOwner {
Use a regular code:: block instead.
There are a few other warnings errors remaining, of the form
'Duplicate explicit target name: "cmdoption-clang--prefix"'. They seem
to be caused by the following
.. option:: -B<dir>, --prefix <arg>, --prefix=<arg>
I am no Restructured Text expert, but it seems like sphinx 1.8.5
tries to generate the same target for the --prefix <arg> and
--prefix=<arg>. This pops up in a lot of places and I am not sure how to
best resolve it
Reviewers: jfb, Bigcheese, dexonsmith, rjmccall
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D76534
Georgii Rymar [Fri, 20 Mar 2020 14:53:58 +0000 (17:53 +0300)]
[obj2yaml] - Simplify and reduce `ELFDumper<ELFT>::dumpSections`. NFCI.
This method it a bit too large.
It is becoming inconvenient to update it.
This patch suggests a way to reduce and cleanup it.
Differential revision: https://reviews.llvm.org/D76499
Eric Fiselier [Sat, 21 Mar 2020 14:13:50 +0000 (10:13 -0400)]
[libc++] Fix URL to llvm github
Eric Fiselier [Sat, 21 Mar 2020 13:58:10 +0000 (09:58 -0400)]
[libc++] Rework buildbot configuration for the greater good.
This commit rewrites/removes the docker files used to create
the libc++ buildbots.
The major changes in this patch are:
1. Delete Dockerfiles used to build compilers. These have moved to
github.com/efcs/compiler-images
2. Minimize the llvm-buildbot docker image. Instead of running the
buildbots from a committed docker image, the builders now build the
image on startup. This means changes to the docker file automatically
propogate to the builders (within ~24 hours without restart).
3. Version the compilers used by the builders. This means the bots
won't start failing because the apt.llvm.org clang package updated.
Eric Fiselier [Thu, 19 Mar 2020 20:59:22 +0000 (16:59 -0400)]
[libc++] fix some non-modular tests
Dmitry Vyukov [Sat, 21 Mar 2020 12:34:50 +0000 (13:34 +0100)]
tsan: fix deadlock with pthread_atfork callbacks
This fixes the bug reported at:
https://groups.google.com/forum/#!topic/thread-sanitizer/e_zB9gYqFHM
A pthread_atfork callback triggers a data race
and we deadlock on the report_mtx. Ignore memory access
in the pthread_atfork callbacks to prevent the deadlock.
Simon Pilgrim [Sat, 21 Mar 2020 12:39:29 +0000 (12:39 +0000)]
[X86] Combine concat(shufps,shufps) -> shufps(concat,concat)
Now that rG18c19441d105 has improved VPERM2X128 handling, we can perform this to improve x64->x32 truncation without poor cross-lane issues.
Someday combineX86ShufflesRecursively will handle this, but we're still really bad at dealing with different vector widths.
Nikita Popov [Sat, 21 Mar 2020 11:14:53 +0000 (12:14 +0100)]
[ValueTracking] Short-circuit computeKnownBitsAddSub(); NFCI
If one operand is unknown (and we don't have nowrap), don't compute
the second operand.
Also don't create an unnecessary extra KnownBits variable, it's
okay to reuse KnownOut.
This reduces instructions on libclamav_md5.c by 40%.
LLVM GN Syncbot [Sat, 21 Mar 2020 12:33:41 +0000 (12:33 +0000)]
[gn build] Port
73cf8abbe69
Ehud Katz [Sat, 21 Mar 2020 12:30:32 +0000 (14:30 +0200)]
[ADT] Implement the Waymarking as an independent utility
This is the Waymarking algorithm implemented as an independent utility.
The utility is operating on a range of sequential elements.
First we "tag" the elements, by calling `fillWaymarks`.
Then we can "follow" the tags from every element inside the tagged
range, and reach the "head" (the first element), by calling
`followWaymarks`.
Differential Revision: https://reviews.llvm.org/D74415
Simon Pilgrim [Sat, 21 Mar 2020 12:14:02 +0000 (12:14 +0000)]
Revert rGe6a7e3b5e3e7 "[X86][SSE] matchShuffleWithSHUFPD - add support for unary shuffles."
This reverts commit
e6a7e3b5e3e779a3bfb617c8d9ed4302edab2cef.
Avoids register pressure regression reported at PR45263
Baden Hughes [Sat, 21 Mar 2020 05:32:40 +0000 (15:32 +1000)]
Update ConversionToLLVMDialect.md
Minor editorial/typographic fixes
Guillaume Chatelet [Fri, 20 Mar 2020 15:23:49 +0000 (16:23 +0100)]
[clang] Fix crash during template sema checking
Summary: If the size parameter of `__builtin_memcpy_inline` comes from an un-instantiated template parameter current code would crash.
Reviewers: efriedma, courbet
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D76504
Simon Pilgrim [Sat, 21 Mar 2020 11:39:34 +0000 (11:39 +0000)]
Revert rGd5d8569df14e95e2c53d167bd1b37995bcbec565 "Fix static analysis warnings about classes with virtual methods not having virtual destructors"
This reverts commit
d5d8569df14e95e2c53d167bd1b37995bcbec565.
Simon Pilgrim [Fri, 20 Mar 2020 19:31:29 +0000 (19:31 +0000)]
Fix static analysis warnings about classes with virtual methods not having virtual destructors
Simon Pilgrim [Fri, 20 Mar 2020 16:44:29 +0000 (16:44 +0000)]
[InstCombine][X86] simplifyX86immShift - remove ConstantAggregateZero handling. NFC.
The llvm::computeKnownBits path now handles this.
abelkocsis [Sat, 21 Mar 2020 11:29:39 +0000 (12:29 +0100)]
[clang-tidy] my work: fix sphinx docs
Simon Pilgrim [Sat, 21 Mar 2020 11:23:52 +0000 (11:23 +0000)]
Fix Wdocumentation warning. NFCI.
Simon Pilgrim [Sat, 21 Mar 2020 11:20:45 +0000 (11:20 +0000)]
Fix Wdocumentation warning. NFCI.
LLVM GN Syncbot [Sat, 21 Mar 2020 11:04:46 +0000 (11:04 +0000)]
[gn build] Port
0f4c70dd3ec
abelkocsis [Sat, 21 Mar 2020 11:02:00 +0000 (12:02 +0100)]
[clang-tidy] Add spuriously-wake-up-functions check
Summary:
According to
https://wiki.sei.cmu.edu/confluence/display/cplusplus/CON54-CPP.+Wrap+functions+that+can+spuriously+wake+up+in+a+loop
and
https://wiki.sei.cmu.edu/confluence/display/c/CON36-C.+Wrap+functions+that+can+spuriously+wake+up+in+a+loop
misc-spuriously-wake-up-functions check is created. The check finds
`cnd_wait` or `wait` function calls in an `IfStmt` and warns the user to
replace it with a `WhileStmt` or use it with a lambda parameter.
Reviewers: aaron.ballman, alexfh, hokein, jfb, Charusso
Reviewed By: aaron.ballman
Subscribers: sylvestre.ledru, whisperity, Eugene.Zelenko, mgorny, dexonsmith, cfe-commits, gerazo, xazax.hun, steakhal, Charusso
Tags: #clang-tools-extra, #clang
Differential Revision: https://reviews.llvm.org/D70876
Simon Pilgrim [Sat, 21 Mar 2020 10:33:53 +0000 (10:33 +0000)]
[DAG] Don't permit EXTLOAD when combining FSHL/FSHR consecutive loads (PR45265)
Technically we can permit EXTLOAD of the LHS operand but only if all the extended bits are shifted out. Until we test coverage for that case, I'm just disabling this to fix PR45265.
Bjorn Pettersson [Fri, 20 Mar 2020 22:16:32 +0000 (23:16 +0100)]
[clangd] Skip ClangdVFSTest.TestStackOverflow when address sanitizer is used
Summary:
The ClangdVFSTest.TestStackOverflow unittest does not seem to work
when building the test with address sanitizer activated. Afaict the
goal is to get a constexpr depth error, rather than stack overflow.
But with asan instrumentation we do get stack overflow complaints
from asan. As a workaround this patch simply disables the test case,
when being built with address sanitizer activated.
Reviewers: sammccall, Dmitry.Kozhevnikov
Reviewed By: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits, llvm-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D76533
Thomas Lively [Sat, 21 Mar 2020 02:30:56 +0000 (19:30 -0700)]
[WebAssembly] Add SIMD integer abs builtins
Summary:
Since the conditional operator cannot be used with vector conditions
in C, we need a builtin to be able to express this operation in C
source.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, sunfish, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D76538
Fangrui Song [Fri, 20 Mar 2020 05:58:42 +0000 (22:58 -0700)]
[X86] Reland D71360 Clean up UseInitArray initialization for X86ELFTargetObjectFile
-fuse-init-array is now the CC1 default but TargetLoweringObjectFileELF::UseInitArray still defaults to false.
The following two unknown OS target triples continue using .ctors/.dtors because InitializeELF is not called.
clang -target i386 -c a.c
clang -target x86_64 -c a.c
This cleanup fixes this as a bonus.
X86SpeculativeLoadHardeningPass::tracePredStateThroughCall can call
MCContext::createTempSymbol before TargetLoweringObjectFileELF::Initialize().
We need to call TargetLoweringObjectFileELF::Initialize() ealier.
test/CodeGen/X86/speculative-load-hardening-indirect.ll
Differential Revision: https://reviews.llvm.org/D71360
Walter Erquinigo [Sat, 21 Mar 2020 02:25:27 +0000 (19:25 -0700)]
Revert "Create basic SBEnvironment class"
This reverts commit
34c0759f846447454714c8faa0e1753a8713637b.
Walter Erquinigo [Sat, 21 Mar 2020 02:25:12 +0000 (19:25 -0700)]
Revert "[lldb-vscode] Add missing launchCommands entry in the package.json"
This reverts commit
a8c22ba4162976894b34b75fd12aced379e0569b.
Walter Erquinigo [Sat, 21 Mar 2020 02:24:51 +0000 (19:24 -0700)]
Revert "[lldb-vscode] Add inheritEnvironment option"
This reverts commit
4ec6ebabfc3ec03d3ad4d3bdf05a7292d01391b3.
Walter Erquinigo [Fri, 13 Mar 2020 00:20:01 +0000 (17:20 -0700)]
Create basic SBEnvironment class
Summary: Inspired by https://reviews.llvm.org/D74636, I'm introducing a basic version of Environment in the API. More functionalities can be added as needed.
Reviewers: labath, clayborg
Subscribers: mgorny, lldb-commits, diazhector98
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D76111
Hector Diaz [Thu, 19 Mar 2020 21:08:40 +0000 (14:08 -0700)]
[lldb-vscode] Add inheritEnvironment option
Summary:
If no custom launching is used, lldb-vscode launches a program with an empty environment by default. In some scenarios, the user might want to simply use the same environment as the IDE to have a set of working environment variables (e.g. PATH wouldn't be empty). In fact, most DAPs in VSCode have this behavior by default. In other cases the user definitely needs to set their custom environment, which is already supported. To make the first case easier for the user (e.g. not having to copy the PATH to the launch.json every time they want to debug simple programs that rely on PATH), a new option is now offered. inheritEnvironment will launch the program copying its own environment, and it's just a boolean flag.
{
F11347695}
Reviewers: clayborg, aadsm, diazhector98, kusmour
Subscribers: labath, JDevlieghere, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D74636
Walter Erquinigo [Fri, 20 Mar 2020 21:36:45 +0000 (14:36 -0700)]
[lldb-vscode] Add missing launchCommands entry in the package.json
Summary:
https://reviews.llvm.org/D65363 introduced the launchCommands argument. However, it did not add
a corresponding definition in the package.json
Reviewers: clayborg, labath, kusmour, aadsm
Subscribers: lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D76529
Shoaib Meenai [Sat, 21 Mar 2020 01:42:09 +0000 (18:42 -0700)]
[cmake] Fix -stripped for umbrella library install targets
Make the install-llvm-libraries-stripped and install-clang-libraries-stripped
targets depend on the individual library stripped install targets, so
that they actually install the libraries.
Richard Smith [Sat, 21 Mar 2020 01:44:13 +0000 (18:44 -0700)]
PR45267: Don't reject pure-specifiers with escaped newlines in their '0' token.
Jonas Devlieghere [Sat, 21 Mar 2020 01:34:50 +0000 (18:34 -0700)]
[lldb]/Tablegen] Use ElementType instead of DefaultValueUnsinged
The fourth field in the property struct is the default unsigned or enum
value for all types, except for Array and Dictionary types. For those,
it is the element type. During the tablegen conversion, this was
incorrectly translated to DefaultValueUnsigned with a value
corresponding to the OptionValue: enum type. So for
OptionValue::eTypeString this became DefaultUnsignedValue<16>. This
patch extends the tablegen backend to understand ElementType to express
this as ElementType<"String">.
Differential revision: https://reviews.llvm.org/D76535
Akira Hatanaka [Thu, 21 Nov 2019 02:13:44 +0000 (18:13 -0800)]
[CodeGen] Emit destructor calls to destruct non-trivial C struct objects
returned by function calls or loaded from volatile objects
rdar://problem/
51867864
Differential Revision: https://reviews.llvm.org/D66094
Wyatt Childers [Fri, 20 Mar 2020 21:57:56 +0000 (14:57 -0700)]
Use values cached in ConstantExprs for expression evaluation where
present.
No functionality change intended.
Differential Revision: https://reviews.llvm.org/D76438
Eric Christopher [Sat, 21 Mar 2020 00:36:12 +0000 (17:36 -0700)]
Temporarily Revert "[X86] Reland D71360 Clean up UseInitArray initialization for X86ELFTargetObjectFile"
as it's causing msan failures.
This reverts commit
7899fe9da8d8df6f19ddcbbb877ea124d711c54b.
Louis Dionne [Sat, 21 Mar 2020 00:08:09 +0000 (20:08 -0400)]
[libc++] Temporarily disable an availability test that is broken
The current lit test suite doesn't really allow us to express that the
test should be disabled when testing the trunk variant of libc++, even
if we're running it on a supported macOS. Because of that, the test
is enabled when _LIBCPP_DISABLE_AVAILABILITY is defined, and the test
XPASSes.
JonChesterfield [Sat, 21 Mar 2020 00:01:03 +0000 (00:01 +0000)]
[libomptarget][nfc] Disable amdgcn rtl build. The cmake logic for finding llvm is misbehaving.
nmostafa [Fri, 20 Mar 2020 20:20:45 +0000 (13:20 -0700)]
[MLIR] Add an IfOp builder with results
Summary:
Add an additional builder to IfOp to allow the operation to
define operands.
Differential Revision: https://reviews.llvm.org/D76524