- Sep 18, 2021
-
-
Uday Bondhugula authored
Add a constant propagator for gpu.launch op in cases where the grid/thread IDs can be trivially determined to take a single constant value of zero. Differential Revision: https://reviews.llvm.org/D109994
-
Mehdi Amini authored
This is catching misconfiguration. For example one of my automation had a typo running `-DLLVM_ENABLE_PROJECTS=nlir` and it was just silently ignored. Instead, an error will now be displayed. Differential Revision: https://reviews.llvm.org/D110016
-
Joseph Huber authored
This patch adds support for using dynamic shared memory in the new device runtime. The new function `__kmpc_get_dynamic_shared` will return a pointer to the buffer of dynamic shared memory. Currently the amount of memory allocated is set by an environment variable. In the future this amount will be added to the amount used for the smart stack which will be configured in a similar way. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D110006
-
Joseph Huber authored
This patch adds fields for the device number and number of devices into the device environment struct and debugging values. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D110004
-
Joseph Huber authored
This patch implements the `__assert_fail` function in the new device runtime. This allows users and developers to use the standars assert function inside of the device. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D109886
-
Joseph Huber authored
The new device runtime uses an internal variable to set debugging. This variable was originally privately linked because every module will have a copy of it. This caused problems with merging the device bitcode library because it would get renamed and there was not a way to refer to an external, private symbol. This changes the symbol to weak_odr so it can be defined multiply, but will not be renamed. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D109997
-
Geoffrey Martin-Noble authored
Parens are not used here
-
Amy Huang authored
Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the `driver` or `config` variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ad. Original commits were b4fa71ee and e03c7e36.
-
Joseph Huber authored
The AAExecutionDomain instance checks if a BB is executed by the main thread only. Currently, this only checks the `__kmpc_kernel_init` call for generic regions to indicate the path taken by the main thread. In the new runtime, we want to be able to detect basic blocks even in SPMD mode. For this we enable it to check thread-ID intrinsics being compared to zero as well. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D109849
-
Joseph Huber authored
This patch adds the `nosync` attribute to the `__kmpc_alloc_shared` and `__kmpc_free_shared` runtime library calls. This allows code analysis to know that these functins dont contain any barriers. This will help optimizations reason about the CFG of blocks containing these calls. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D109995
-
Jez Ng authored
... instead of constructing a new one each time. This allows us to take advantage of {D105305}. I didn't see a substantial difference when linking chromium_framework, but this paves the way for reusing similar logic for splitting compact unwind entries into sections. There are a lot more of those, so the performance impact is significant. Differential Revision: https://reviews.llvm.org/D109895 -
Vedant Kumar authored
A MachO userspace corefile may contain LC_THREAD commands which specify thread exception state. For arm64* only (for now), report a human-readable version of this state as the thread stop reason, instead of 'SIGSTOP'. As a follow-up, similar functionality can be implemented for x86 cores by translating the trapno/err exception registers. rdar://82898146 Differential Revision: https://reviews.llvm.org/D109795
-
peter klausler authored
Catch additional missing error cases for typed and untyped NULL actual arguments to non-intrinsic procedures in cases of explicit and implicit interfaces. Differential Revision: https://reviews.llvm.org/D110003
-
Usman Nadeem authored
zip1(uzp1(A, B), uzp2(A, B)) --> A zip2(uzp1(A, B), uzp2(A, B)) --> B Differential Revision: https://reviews.llvm.org/D109666 Change-Id: I4a6578db2fcef9ff71ad0e77b9fe08354e6dbfcd -
Arthur Eubanks authored
Nobody has complained about this, and the documentation for LLVMContext::yield() states that LLVM is allowed to never call it. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D110008
-
Adrian Prantl authored
This fixes a bug in clang where, when clang sees a switch with a fallthrough to a default like this: static void funcA(void) {} static void funcB(void) {} int main(int argc, char **argv) { switch (argc) { case 0: funcA(); break; case 10: default: funcB(); break; } } It does not add a proper debug location for that switch case, such as case 10: above. Patch by Shubham Rastogi! Differential Revision: https://reviews.llvm.org/D109940 -
alokmishra.besu authored
This patch supports OpenMP 5.0 metadirective features. It is implemented keeping the OpenMP 5.1 features like dynamic user condition in mind. A new function, getBestWhenMatchForContext, is defined in llvm/Frontend/OpenMP/OMPContext.h Currently this function return the index of the when clause with the highest score from the ones applicable in the Context. But this function is declared with an array which can be used in OpenMP 5.1 implementation to select all the valid when clauses which can be resolved in runtime. Currently this array is set to null by default and its implementation is left for future. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D91944
-
cchen authored
This patch supports OpenMP 5.0 metadirective features. It is implemented keeping the OpenMP 5.1 features like dynamic user condition in mind. A new function, getBestWhenMatchForContext, is defined in llvm/Frontend/OpenMP/OMPContext.h Currently this function return the index of the when clause with the highest score from the ones applicable in the Context. But this function is declared with an array which can be used in OpenMP 5.1 implementation to select all the valid when clauses which can be resolved in runtime. Currently this array is set to null by default and its implementation is left for future. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D91944
-
cchen authored
Use irbuilder as default and remove redundant Clang codegen for masked construct and master construct. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D100874
-
Sanjay Patel authored
-
Aart Bik authored
Note that this revision adds a very tiny bit of constant folding in the sparse compiler lattice construction. Although I am generally trying to avoid such canonicalizations (and rely on other passes to fix this instead), the benefits of avoiding a very expensive disjunction lattice construction justify having this special code (at least for now). Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D109939
-
Aart Bik authored
Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D109992
-
Dávid Bolvanský authored
-
Andrew Browne authored
[DFSan] Add force_zero_label abilist option to DFSan. This can be used as a work-around for overtainting. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D109847
-
Jan Kratochvil authored
In whole GIT history this map has been always only written but never read.
-
Jeremie Courreges-Anglas authored
-
peter klausler authored
An unused variable declaration from a recent change is eliciting a fatal warning; remove it.
-
Samuel authored
Add reduction to set operands to default values Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D108903
-
Hongtao Yu authored
A couple tweaks to 1. allow more thinlto importing by excluding probe intrinsics from IR size in module summary 2. Allow general default attributes (nofree nosync nounwind) for pseudo probe intrinsic. Without those attributes, pseudo probes will be basically treated as unknown calls which will in turn block their containing functions from annotated with those attributes. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D109976
-
Keith Smiley authored
This uses darwin's default libtool since llvm-ar isn't normally available. Differential Revision: https://reviews.llvm.org/D109461
-
Krzysztof Drewniak authored
It is the case that, for all positive a and b such that b divides a (e mod (a * b)) mod b = e mod b. For example, ((d0 mod 35) mod 5) can be simplified to (d0 mod 5), but ((d0 mod 35) mod 4) cannot be simplified further (x = 36 is a counterexample). This change enables more complex simplifications. For example, ((d0 * 72 + d1) mod 144) mod 9 can now simplify to (d0 * 72 + d1) mod 9 and thus to d1 mod 9. Expressions with chained modulus operators are reasonably common in tensor applications, and this change _should_ improve code generation for such expressions. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D109930
-
thomasraoux authored
Differential Revision: https://reviews.llvm.org/D109984
-
Martin Storsjö authored
Windows on armv7 is as alignment tolerant as Linux. The alignment considerations in the Windows on ARM ABI are documented at https://docs.microsoft.com/en-us/cpp/build/overview-of-arm-abi-conventions?view=msvc-160#alignment. The document doesn't explicitly say in which state the OS configures the SCTLR.A register (and it's not accessible from user space to inspect), but in practice, unaligned loads/stores do work and seem to be as fast as aligned loads and stores. (Unaligned strd also does seem to work, contrary to Linux, but significantly slower, as they're handled by the kernel - exactly as the document describes.) Differential Revision: https://reviews.llvm.org/D109960
-
peter klausler authored
A function can't be a specification function if it has a dummy procedure argument, even if it's optional and unused. So don't check the reference for actual procedure arguments, but rather the characteristics of the function. Differential Revision: https://reviews.llvm.org/D109935
-
peter klausler authored
From subclause 6.3.3.5: a program unit END statement cannot be continued in fixed form, and other statements cannot have initial lines that look like program unit END statements. I think this is to avoid violating assumptions that are important to legacy compilers' statement classification routines. Differential Revision: https://reviews.llvm.org/D109933
-
Aaron Ballman authored
-
Tozer authored
Dexter currently accepts two possible arguments to determine the binary used for testing; either --builder <builder> (and optionally compiler/linker flags) to build the binary, or --binary <binary> to use the provided binary directly. If both are passed, then --binary overrides --builder; if neither are passed, then an error is raised. This patch instead puts these arguments into a required mutually exclusive argument group, so that an error is automatically raised by argparse if both or neither are given. As an additional change, the --cflags and --ldflags will now raise a warning if they are passed without the --builder flag, as they are meaningless if Dexter is using a pre-built binary. Reviewed By: Orlando Differential Revision: https://reviews.llvm.org/D109833
-