- Oct 05, 2021
-
-
Max Kazantsev authored
Patch by Dmitry Makogon!
-
LLVM GN Syncbot authored
-
Michał Górny authored
Move DynamicRegisterInfo from the internal lldbPluginProcessUtility library to the public lldbTarget library. This is a prerequisite towards ABI plugin changes that are going to pass DynamicRegisterInfo parameters. Differential Revision: https://reviews.llvm.org/D110942
-
Andrew Ng authored
Add checking of the value of the relocation with an addend. Also check all relocation offsets. Differential Revision: https://reviews.llvm.org/D111071
-
Bjorn Pettersson authored
Deriving NoAlias based on having the same index in two BaseIndexOffset expressions seemed weird (and as shown in the added unittest the correctness of doing so depended on undocumented pre-conditions that the user of BaseIndexOffset::computeAliasing would need to take care of. This patch removes the code that dereived NoAlias based on indices being the same. As a compensation, to avoid regressions/diffs in various lit test, we also add a new check. The new check derives NoAlias in case the two base pointers are based on two different GlobalValue:s (neither of them being a GlobalAlias). Reviewed By: niravd Differential Revision: https://reviews.llvm.org/D110256
-
Bjorn Pettersson authored
This fixes a bug detected in DAGCombiner when using global alias variables. Here is an example: @foo = global i16 0, align 1 @aliasFoo = alias i16, i16 * @foo define i16 @bar() { ... store i16 7, i16 * @foo, align 1 store i16 8, i16 * @aliasFoo, align 1 ... } BaseIndexOffset::computeAliasing would incorrectly derive NoAlias for the two accesses in the example above, resulting in DAGCombiner miscompiles. This patch fixes the problem by a defensive approach letting BaseIndexOffset::computeAliasing return false, i.e. that the aliasing couldn't be determined, when comparing two global values and at least one is a GlobalAlias. In the future we might improve this with a deeper analysis to look at the aliasee for the GlobalAlias etc. But that is a bit more complicated considering that we could have 'local_unnamed_addr' and situations with several 'alias' variables. Fixes PR51878. Differential Revision: https://reviews.llvm.org/D110064
-
Adrian Kuegel authored
ConstShapeOp knows its shape, so it should also have a static tensor type. Differential Revision: https://reviews.llvm.org/D111127
-
Jay Foad authored
Scalarize before narrowing because the narrowing implementation does not work on vectors. This matches what we do for regular G_MUL. Differential Revision: https://reviews.llvm.org/D111129
-
Simon Pilgrim authored
https://commondatastorage.googleapis.com/chromium-browser-clang/llvm-include-analysis.html Excessive use of the <string> header has a massive impact on compile time; its most commonly included via the ErrorHandling.h header, which has to be included in many key headers, impacting many source files that have no need for std::string. As an initial step toward removing the <string> include from ErrorHandling.h, this patch proposes to update the fatal_error_handler_t handler to just take a raw const char* instead. The next step will be to remove the report_fatal_error std::string variant, which will involve a lot of cleanup and better use of Twine/StringRef. Differential Revision: https://reviews.llvm.org/D111049
-
Jay Foad authored
Remove some redundancy because the source and result types of any multiply are always the same.
-
David Green authored
The commit e497b12a went and regenerated all the checks lines in the Arm speculation-hardening-sls.ll test in a way that removed most of the important checks. This just resets them back to how they were before, with the single character fix to change: ; NOHARDENARM: {{bxge lr$}} to ; NOHARDENARM: {{bxgt lr$}} Differential Revision: https://reviews.llvm.org/D111074
-
Frederik Gossen authored
This option is needed for passes that are known to reach a fix point, but may need many iterations depending on the size of the input IR. Differential Revision: https://reviews.llvm.org/D111058
-
David Green authored
As suggested in D110830, this copies the Arm backend method of testing function calls through specific registers, using inline assembly to force the variable into x16 to check that the __llvm_slsblr_thunk calls do not use a register that may be clobbered by the linker. Differential Revision: https://reviews.llvm.org/D111056
-
Tim Northover authored
-
Valentin Clement authored
This reverts commit c02a8cdd.
-
Carl Ritson authored
-
Valentin Clement authored
Partition libFIROptimizer into smaller libraries that reflect the structure. Adapt potential problems. This patch is part of the upstreaming effort from fir-dev branch. It's a building stone to upstreaming transformations. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D111055 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Pavel Labath authored
This commit has introduced test failures in internal google tests. Working theory is they are caused by a genuine problem in the patch which gets tripped by some debug info from system libraries. Reverting while we try to reproduce the problem in a self-contained fashion. This reverts commit 601168e4.
-
Nicolas Vasilache authored
[mlir][Linalg] NFC - Add support to specify that a tensor value is known to bufferize to writeable memory This change allows better interop with external clients of comprehensive bufferization functions but is otherwise NFC for the MLIR pass itself. Differential Revision: https://reviews.llvm.org/D111121
-
Valentin Clement authored
This reverts commit c2eff3d5.
-
Sam McCall authored
-
Martin Storsjö authored
This was missed in ec574f5d. TIME_UTC is a define that goes along with timespec_get. The testcase that it is moved to is only run for >= C++17, so the surrounding ifdef guard can be dropped. Differential Revision: https://reviews.llvm.org/D110988
-
Martin Storsjö authored
e9ee5179 added support for using winpthreads on Windows, enabled if `__WINPTHREADS_VERSION` was defined (i.e. if winpthreads headers have been included before including libcxx `__config`). This was fragile (libcxx changed behaviour depending on what headers had been included externally before), and was changed in a1bc823a to use pthreads on Windows whenever the pthread.h header was available. This is also fragile; pthread.h might be unavailable while building libcxx but installed later, and available when users include the libcxx headers. In practice, in every modern setup for building libcxx for Windows I've seen, users end up manually configuring it with `LIBCXX_HAS_WIN32_THREAD_API=ON`, as the users may have winpthreads installed (for other libraries/projects to use) while wanting to build libcxx with the default win32 threading. Don't automatically pick up pthreads on Windows even if the header is available. Instead require the user to configure the libcxx build with `LIBCXX_HAS_PTHREAD_API=ON` if that's desired. Differential Revision: https://reviews.llvm.org/D110975
-
Martin Storsjö authored
This matches the value used in libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake. Differential Revision: https://reviews.llvm.org/D110987
-
Valentin Clement authored
Partition libFIROptimizer into smaller libraries that reflect the structure. Adapt potential problems. This patch is part of the upstreaming effort from fir-dev branch. It's a building stone to upstreaming transformations. Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D111055
-
Amara Emerson authored
These are handled identically to the already handled G_VECREDUCE_OR instructions.
-
Jay Foad authored
Enable verification of live intervals immediately after computing them (when -early-live-intervals is used) and fix a problem that that provokes: currently the verifier insists that a segment that ends at an early-clobber slot must be followed by another segment starting at the same slot. But before TwoAddressInstruction runs, the equivalent condition is: a segment that ends at an early-clobber slot must have its last use tied to an early-clobber def. That condition is harder to check here, so for now just disable this check until tied operands have been rewritten. Differential Revision: https://reviews.llvm.org/D111065
-
Pavel Labath authored
.. and reduce the scope of others. They don't follow llvm coding standards (which say they should be used only when the same effect cannot be achieved with the static keyword), and they set a bad example.
-
Vassil Vassilev authored
This reverts commit 81fb640f due to bot failures: https://lab.llvm.org/buildbot#builders/57/builds/10807
-
Vassil Vassilev authored
Differential revision: https://reviews.llvm.org/D110484
-
Igor Kudrin authored
PT_LOAD segments in the program header must be sorted by their virtual addresses, so they should be defined in a similar order as the associated sections. Differential Revision: https://reviews.llvm.org/D111068
-
LLVM GN Syncbot authored
-
Amara Emerson authored
This is a port of the feature that allows the StackProtector pass to omit checking code for stack canary checks, and rely on SelectionDAG to do it at a later stage. The reasoning behind this seems to be to prevent the IR checking instructions from hindering tail-call optimizations during codegen. Here we allow GlobalISel to also use that scheme. Doing so requires that we do some analysis using some factored-out code to determine where to generate code for the epilogs. Not every case is handled in this patch since we don't have support for all targets that exercise different stack protector schemes. Differential Revision: https://reviews.llvm.org/D98200
-
wlei authored
Differential Revision: https://reviews.llvm.org/D110081
-
wlei authored
This change adds duplication factor multiplier while accumulating body samples for line-number based profile. The body sample count will be `duplication-factor * count`. Base discriminator and duplication factor is decoded from the raw discriminator, this requires some refactor works. Differential Revision: https://reviews.llvm.org/D109934
-
wlei authored
Differential Revision: https://reviews.llvm.org/D110980
-
Craig Rasmussen authored
Any test of the team_number intrinsic function will apparently fail because it doesn't have access to ISO_FORTRAN_ENV when called.
-
Amara Emerson authored
This reverts commit d95cd811. The selector sometimes leaves unreachable blocks unselected because it uses a postorder traversal for the block ordering. With the trap intrinsics now being emitted, these blocks are no longer empty and the unselected G_INTRINSIC instructions survive past selection. To fix this, keep track of which blocks are selected and later delete any blocks that weren't selected.
-
Sam Clegg authored
This simplifies the code in a number of ways and avoids having to track functions and their types separately. Differential Revision: https://reviews.llvm.org/D111104
-
Craig Topper authored
-