- Mar 23, 2020
-
-
Matt Arsenault authored
Make sure it is a multiple of 2 bytes as specified in the LangRef.
-
- Mar 22, 2020
-
-
Nikita Popov authored
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 authored
The TTI hooks aren't converted. I also think the intrinsics should have mandatory alignment and never return MaybeAlign.
-
Qiu Chaofan authored
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 authored
-
Simon Pilgrim authored
Finally resurrecting D56506 and want to improve test coverage.
-
Bjorn Pettersson authored
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 authored
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 authored
-
River Riddle authored
Summary: This removes the static pass registration, and also cleans up some lingering technical debt. Differential Revision: https://reviews.llvm.org/D76554
-
River Riddle authored
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 authored
This removes the reliance on global options, and also simplifies the pass registration. Differential Revision: https://reviews.llvm.org/D76552
-
Nikita Popov authored
For the common case, we will only insert one value into this map.
-
Fangrui Song authored
-
Fangrui Song authored
We can use the parent MCObjectFileInfo::Ctx which has the same value.
-
Fangrui Song authored
-
David Blaikie authored
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 736385c0.
-
Lang Hames authored
DebugUtils.h seems like a more appropriate home for these.
-
Craig Topper authored
-
Uday Bondhugula authored
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 authored
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 authored
-
Eric Fiselier authored
-
Aaron Ballman authored
It is already assumed to be nonnull by the code calling diagAppertainsToDecl.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
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 authored
-
Florian Hahn authored
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
-
- Mar 21, 2020
-
-
Georgii Rymar authored
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 authored
-
Eric Fiselier authored
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 authored
-
Dmitry Vyukov authored
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 authored
Now that rG18c19441 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 authored
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 authored
-
Ehud Katz authored
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 authored
This reverts commit e6a7e3b5. Avoids register pressure regression reported at PR45263
-
Baden Hughes authored
Minor editorial/typographic fixes
-