- Nov 01, 2022
-
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Jonas Devlieghere authored
Connect the diagnostic events with the diagnostic infrastructure. - Emit existing diagnostic events (warnings and errors) to the diagnostic log. - Introduce a new diagnostic event (info) that's used exclusively for diagnostic logging and does not get broadcast. Differential revision: https://reviews.llvm.org/D136648
-
Jonas Devlieghere authored
Add a "diagnostics dump" command to, as the name implies, dump the diagnostics to disk. The goal of this command is to let the user generate the diagnostics in case of an issue that doesn't cause the debugger to crash. This command is also critical for testing, where we don't want to cause a crash to emit the diagnostics. Differential revision: https://reviews.llvm.org/D135622
-
Jonas Devlieghere authored
Around this time last year, I said on the mailing list [1] that I wanted to to transform the reproducers into something that resembles a sysdiagnose on Apple platforms: a collection of files containing a variety of information to help diagnose bugs or troubleshoot issues. This patch adds that framework. Based on lessons learned from the reproducers, I've intentionally tried to keep it small and simple. Different parts of LLDB can register callbacks (this is necessary for layering purposes) that will get called when the diagnostics should be generated. [1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html Differential revision: https://reviews.llvm.org/D134991
-
Sanjay Patel authored
The transform was just added with: 115d2f69 ...but as noted in post-commit feedback, it was confusingly coded. Now, we create the final expected canonicalized form directly and put an extra use check on the match, so we should not ever end up with more instructions.
-
Sanjay Patel authored
More coverage for the change 115d2f69 as suggested in post-commit feedback. Given that the transform is canonicalized with another 'not' op, we should adjust the use checks and create that form directly.
-
Krzysztof Parzyszek authored
-
Tue Ly authored
Add place-holder implementation for pow function to unblock libc demo examples. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D137109
-
Tue Ly authored
Add a place-holder implementation for asin to unblock libc demo examples. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D137105
-
Peter Klausler authored
Recode a non-short-circuiting conjunction of two Boolean function calls into separate statements to avoid a warning from clang 16.
-
Jakub Kuderski authored
Turn legalization failures into hard failures to make sure that we do not miss conversion pattern application failures. Add a message on type conversion failure. Move unsupported cases into a separate test file. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D137102
-
Dan Gohman authored
This adds an `--export-memory` option to wasm-ld which allows passing a name to give to the exported memory, and extends `--import-memory` to allow passing a <module>,<name> pair specifying where the memory should be imported from. This is based on https://reviews.llvm.org/D131376, with the main difference being that it only supports exporting memory by one name. Differential Revision: https://reviews.llvm.org/D135898
-
chenglin.bi authored
-
Krzysztof Parzyszek authored
-
Philip Reames authored
Differential Revision: https://reviews.llvm.org/D136475
-
Paul Robinson authored
-
Patrick Walton authored
The pointsToConstantMemory() method returns true only if the memory pointed to by the memory location is globally invariant. However, the LLVM memory model also has the semantic notion of *locally-invariant*: memory that is known to be invariant for the life of the SSA value representing that pointer. The most common example of this is a pointer argument that is marked readonly noalias, which the Rust compiler frequently emits. It'd be desirable for LLVM to treat locally-invariant memory the same way as globally-invariant memory when it's safe to do so. This patch implements that, by introducing the concept of a *ModRefInfo mask*. A ModRefInfo mask is a bound on the Mod/Ref behavior of an instruction that writes to a memory location, based on the knowledge that the memory is globally-constant memory (in which case the mask is NoModRef) or locally-constant memory (in which case the mask is Ref). ModRefInfo values for an instruction can be combined with the ModRefInfo mask by simply using the & operator. Where appropriate, this patch has modified uses of pointsToConstantMemory() to instead examine the mask. The most notable optimization change I noticed with this patch is that now redundant loads from readonly noalias pointers can be eliminated across calls, even when the pointer is captured. Internally, before this patch, AliasAnalysis was assigning Ref to reads from constant memory; now AA can assign NoModRef, which is a tighter bound. Differential Revision: https://reviews.llvm.org/D136659
-
Paul Robinson authored
`clang-driver` hasn't been a valid keyword for a long time. The test fails when the keyword is removed, so added XFAIL: * to reflect the true status of the test (XFAIL not UNSUPPORTED) and filed issue #58711 to get it fixed.
-
Sanjay Patel authored
https://alive2.llvm.org/ce/z/EfHlWN In the motivating case from issue #58313, this allows forming a duplicate 'not' op which then gets CSE'd and simplifyCFG'd and combined into the expected 'xor'.
-
Sanjay Patel authored
-
Philip Reames authored
-
Peter Klausler authored
The infrastructure in semantics that is used to check that the left-hand sides of normal assignment statements are really definable variables was not being used to check whether the LHSs of pointer assignments are modifiable, and so most cases of unmodifiable pointers are left undiagnosed. Rework the semantics checking for pointer assignments, NULLIFY statements, pointer dummy arguments, &c. so that cases of unmodifiable pointers are properly caught. This has been done by extracting all the various definability checking code that has been implemented for different contexts in Fortran into one new facility. The new consolidated definability checking code returns messages meant to be attached as "because: " explanations to context-dependent errors like "left-hand side of assignment is not definable". These new error message texts and their attached explanations affect many existing tests, which have been updated. The testing infrastructure was extended by another patch to properly compare warnings and explanatory messages, which had been ignored until recently. Differential Revision: https://reviews.llvm.org/D136979
-
Jeff Niu authored
This patch adds lowering from `scf.index_switch` to `cf.switch. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D136883
-
Philip Reames authored
-
Matheus Izvekov authored
This reverts commit 5f820c0f. Apparently it breaks aarch64 buildbots. https://lab.llvm.org/buildbot#builders/188/builds/21591
-
Peter Klausler authored
Many intrinsic functions in Fortran require that two or more of their arguments have types that agree in the values of all of their type parameters, while others only require the same type category and kind type parameters but not lengths, including the important case of CHARACTER. The intrinsic procedure tables need to be adjusted in some cases so that discrepancies in character lengths that are known at compilation time can be diagnosed as errors where they should be, as in for example MOVE_ALLOC(). Differential Revision: https://reviews.llvm.org/D137032
-
Philip Reames authored
-
Paul Robinson authored
Changed 'XFAIL: mcjit-ia32' to 'XFAIL: i686 && windows' because the 'mcjit-ia32 feature isn't defined anywhere, or used anywhere else. I found this as part of other work to clean up lit keywords, so I figured I would go ahead and fix it. Verified by hacking my lit.site.cfg.py so host_triple = target_triple = "i686-pc-windows-msvc" and the test correctly reported XFAIL, while "i686-pc-linux" passes.
-
Paul Robinson authored
This reverts commit 6d859266. Causing an XPASS on 32-bit Gentoo, as reported by mgorny.
-
Fangrui Song authored
The last effective changes for the 4 scripts were more than 10 years ago. They do grep and lines of code counting which have mature modern replacements (rg, tokei, etc). Reviewed By: mgorny Differential Revision: https://reviews.llvm.org/D136969
-
Craig Topper authored
We use getHostCPUFeatures in x86::getX86TargetFeatures so I think this FIXME is taken care of already. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D137054
-
Peter Klausler authored
There are some exceptional cases where the compiler permits association of procedure pointers or dummy arguments with slightly incompatible procedure targets, but they should not override any incompatibilty of function result types. (Includes a second fix to resolve the original motivating test failure, in which a COMPLEX intrinsic function was getting its result kind divided by two due to an implicit C++ conversion of the kind to a "*kind" parse tree node, and those legacy "COMPLEX*size" type designators' values are twice the type kind value.) Differential Revision: https://reviews.llvm.org/D136964
-
Dhruva Chakrabarti authored
[OpenMP] [OMPT] [2/8] Implemented a connector for communication of OMPT callbacks between libraries. This is part of a set of patches implementing OMPT target callback support and has been split out of the originally submitted https://reviews.llvm.org/D113728. The overall design can be found in https://rice.app.box.com/s/pf3gix2hs4d4o1aatwir1set05xmjljc The purpose of this patch is to provide a way to register tool-provided callbacks into libomp when libomptarget is loaded. Introduced a cmake variable LIBOMPTARGET_OMPT_SUPPORT that can be used to control OMPT target support. It follows host OMPT support, controlled by LIBOMP_HAVE_OMPT_SUPPORT. Added a connector that can be used to communicate between OMPT implementations in libomp and libomptarget or libomptarget and a plugin. Added a global constructor in libomptarget that uses the connector to force registration of tool-provided callbacks in libomp. A pair of init and fini functions are provided to libomp as part of the connect process which will be...
-
Craig Topper authored
We only really need avx512bw for masking 256 or 512 bit GFNI instructions due to the need for v32i1 or v64i1. I wanted to enable 128-bit intrinsics with avx512vl, but the __builtin_ia32_selectb_128 used in the header file requires avx512bw. The codegen test for the same is also not using a masked instruction because vselect with v16i1 mask and v16i8 is not legal so is expanded before isel. To fix these issues we need a mask specific builtin and a mask specific ISD opcode. Fixes PR58687. Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D137036
-
Katherine Rasmussen authored
Add the atomic subroutine, atomic_and, to the list of intrinsic subroutines, add its last dummy argument to a check for coindexed-object, and update test. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D136907
-
Matheus Izvekov authored
This makes use of the changes introduced in D134604, in order to instantiate alias templates witn a final sugared substitution. This comes at no additional relevant cost. Since we don't track / unique them in specializations, we wouldn't be able to resugar them later anyway. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Differential Revision: https://reviews.llvm.org/D136565
-
Matheus Izvekov authored
This makes use of the changes introduced in D134604, in order to instantiate non-type template parameters and default template arguments with a final sugared substitution. This comes at no additional relevant cost. Since we don't track / unique them in specializations, we wouldn't be able to resugar them later anyway. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Differential Revision: https://reviews.llvm.org/D136564
-
Matheus Izvekov authored
This fixes a problem where __va_list_tag was not correctly imported, possibly leading to multiple definitions with different types. This adds __va_list_tag to it's proper scope, so that the ASTImporter can find it. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Differential Revision: https://reviews.llvm.org/D136886
-
Matheus Izvekov authored
Closes #58679. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Differential Revision: https://reviews.llvm.org/D136977
-