- Sep 10, 2021
-
-
Joseph Huber authored
This patch adds the SPMD amenable assumption to the CUDA math library defintions in Clang. Previously these functions would block SPMD execution on the device because they're intrinsic calls into the library and can't be calculated. These functions don't have side-effects so they are safe to execute in SPMD mode. Depends on D105937 Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D108958
-
Siva Chandra Reddy authored
Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D109613
-
Florian Mayer authored
This leads to a statistically significant improvement when using -hwasan-instrument-stack=0: https://bit.ly/3AZUIKI. When enabling stack instrumentation, the data appears gets better but not statistically significantly so. This is consistent with the very moderate improvements I have seen for stack safety otherwise, so I expect it to improve when the underlying issue of that is resolved. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D108457
-
David Carlier authored
netent on Linux in addition as well. Reviewd By: vitalybuka Differential Revision: https://reviews.llvm.org/D109287
-
Florian Mayer authored
Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D109503
-
Nico Weber authored
We want the driver-level flag here, else the test passes for the wrong reasons. See comments on https://reviews.llvm.org/D99901.
-
Kazu Hirata authored
-
Rumeet Dhindsa authored
This patch adds support for shared library load when the executable is called through ld.so. Differential Revision:https://reviews.llvm.org/D108061
-
Roman Lebedev authored
[clang] `aligned_alloc` allocation function specifies alignment in first arg, manifest that knowledge Mainly, if a constant value was passed as an alignment, then we correctly annotate the alignment of the returned value of @aligned_alloc. And if it wasn't constant, then we also don't loose that, but emit an assumption.
-
Roman Lebedev authored
... so that it happens right next to `AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()`, which is good for consistency.
-
Roman Lebedev authored
-
Huihui Zhang authored
When combining 'and' of an unsigned unpack and shuffle instruction, bail early if shuffle is not constructed from a constant integer. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D109556
-
Jon Chesterfield authored
-
Anton Afanasyev authored
Add `udiv` and `urem` instructions to the DAG post-dominated by `trunc`, allowing TruncInstCombine to reduce bitwidth of expressions containing these instructions. It is sufficient to require that all truncated bits of both operands are zeros: https://alive2.llvm.org/ce/z/yiithn (`urem` case is identical). Differential Revision: https://reviews.llvm.org/D109515
-
Anton Afanasyev authored
Precommit test for D109515
-
Johannes Doerfert authored
This reverts commit ca134c39. There seems to be a problem with the tests, investigating now: https://lab.llvm.org/buildbot/#/builders/61/builds/14574
-
Johannes Doerfert authored
This reverts commit 7dbba337. There seems to be a problem with the tests, investigating now: https://lab.llvm.org/buildbot/#/builders/61/builds/14574
-
Johannes Doerfert authored
This should have happened a long time ago, now that openmp.llvm.org redirects to openmp.llvm.org/docs we completely switched over to the sphinx documentation page instead. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D108588
-
Johannes Doerfert authored
Since these assumptions are coming from OpenMP it makes sense to mark them as such in the generic IR encoding. Standardized assumptions will be named omp_ASSUMPTION_NAME and extensions will be named ompx_ASSUMPTION_NAME which is the OpenMP 5.2 syntax for "extensions" of any kind. This also matches what the OpenMP-Opt pass expects. Summarized, #pragma omp [...] assume[s] no_parallelism now generates the same IR assumption annotation as __attribute__((assume("omp_no_parallelism"))) Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D105937
-
Johannes Doerfert authored
Not all address spaces support initializers for globals and we can therefore not set them without checking if they are allowed. This patch adds a hook into TTI to check if an AS allows non-undef initializers. We disable it for all but address space 0 by default, NVPTX and AMDGPU targets allow all but address space 3. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D109337
-
Johannes Doerfert authored
When we guard side-effects as part of SPMDzation we do it for consecutive instructions that need guarding. This patch will try to reorder guarded side-effects in a block to decrease the number of guarded regions we need. It does not use any smarts, e.g., alias analysis, to move side-effects over non-interfering reads. Instead, it only moves side-effects downwards to the next guarded side-effect if there was nothing in between that could have possibly be affected. Reviewed By: ggeorgakoudis Differential Revision: https://reviews.llvm.org/D109070
-
David Green authored
As per D109359, this removes or makes use of some of the existing unused NEON and base ARM tblgn arguments.
-
Nikita Popov authored
Always use the byval/inalloca/preallocated type (which is required nowadays), don't fall back on the pointer element type. This requires adding Function::getParamPreallocatedType() to mirror the CallBase API, so that the templated code can work with both.
-
Nikita Popov authored
-
Craig Topper authored
LICM may have pulled out a splat, but with .vx instructions we can fold it into an operation. This patch enables CGP to reverse the LICM transform and move the splat back into the loop. I've started with the commutable integer operations and shifts, but we can extend this with more operations in future patches. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D109394
-
Craig Topper authored
This can avoid a vsetvl after a tail undisturbed operation. Differential Revision: https://reviews.llvm.org/D109549
-
Michał Górny authored
Hopefully this will resolve the remaining flakiness.
-
Sam Clegg authored
Remove some unnecessary logging from wasm-ld when running under `--verbose`. Unlike `-debug` this logging is available in release builds. This change makes it little more minimal/readable. Also, avoid compiling the `debugWrite` function in releaase builds where it does nothing. This should remove a lot debug strings from the binary, and avoid having to construct unused debug strings at runtime. Differential Revision: https://reviews.llvm.org/D109583
-
Michał Górny authored
Skip A/vRun/QEnvironment* tests on Windows as testing for output is known not to work there. Add a missing output check to the vRun test.
-
Michał Górny authored
-
Michał Górny authored
-
Michał Górny authored
-
David Green authored
As per D109359, this removes or makes use of some of the existing unused MVE tblgn arguments.
-
Sam Clegg authored
The re-use of this struct across iterations of the loop was causing fields (specifically Name) to be incorrectly shared between multiple sections. Differential Revision: https://reviews.llvm.org/D108984
-
Saiyedul Islam authored
Test using debug-only=CodeObjectComaptibility was failing in non-assert builds, so it has been moved to a different file which requires assert. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D109592
-
Nikita Popov authored
Currently, opaque pointers are supported in two forms: The -force-opaque-pointers mode, where all pointers are opaque and typed pointers do not exist. And as a simple ptr type that can coexist with typed pointers. This patch removes support for the mixed mode. You either get typed pointers, or you get opaque pointers, but not both. In the (current) default mode, using ptr is forbidden. In -opaque-pointers mode, all pointers are opaque. The motivation here is that the mixed mode introduces additional issues that don't exist in fully opaque mode. D105155 is an example of a design problem. Looking at D109259, it would probably need additional work to support mixed mode (e.g. to generate GEPs for typed base but opaque result). Mixed mode will also end up inserting many casts between i8* and ptr, which would require significant additional work to consistently avoid. I don't think the mixed mode is particularly valuable, as it doesn't align with our end goal. The only thing I've found it to be moderately useful for is adding some opaque pointer tests in between typed pointer tests, but I think we can live without that. Differential Revision: https://reviews.llvm.org/D109290
-
Filipp Zhinkin authored
These are the tests for D108408 with current baseline results.
-
David Green authored
This updates some mostly update_test_check test files and generates the check lines with the script, making them more maintainable.
-
Jan Svoboda authored
This patch tests code in D108976. This split is necessary to avoid temporary regression. Depends on D108974, Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D109158
-
Jan Svoboda authored
During dependency scanning, we generally want to suppress -Werror. Apply the same logic to the DiagnosticOptions instance used for command-line parsing. This fixes a test failure on the PS4 bot, where the system header directory could not be found, which was reported due to -Werror being on the command line and not being sanitized.
-