- May 13, 2021
-
-
Tobias Gysi authored
after introducing the IndexedGenericOp to GenericOp canonicalization (https://reviews.llvm.org/D101612). Differential Revision: https://reviews.llvm.org/D102235
-
Paul C. Anagnostopoulos authored
Now uses tr instead of sed. Differential Revision: https://reviews.llvm.org/D102254
-
Juneyoung Lee authored
This was reverted to mitigate mitigate miscompiles caused by the logical and/or to bitwise and/or fold. Reapply it now that the underlying issue has been fixed by D101191. ----- This patch folds more operations to poison. Alive2 proof: https://alive2.llvm.org/ce/z/mxcb9G (it does not contain tests about div/rem because they fold to poison when raising UB) Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D92270
-
Matthias Springer authored
Create a copy of vector-to-loops.mlir and adapt the test for ProgressiveVectorToSCF. Fix a small bug in getExtractOp() triggered by this test. Differential Revision: https://reviews.llvm.org/D102388
-
Krzysztof Parzyszek authored
-
Oliver Stannard authored
This reverts commit 3bf1acab. This is causing the test `gcov-shared-flush.c' to fail on the 2-stage aarch64 buildbots (https://lab.llvm.org/buildbot/#/builders/7/builds/2720).
-
Krzysztof Parzyszek authored
-
Jinsong Ji authored
Globals with “available_externally” linkage should never be emitted into the object file corresponding to the LLVM module. However, AIX system assembler default print error for undefined reference . so AIX chose to emit the available externally symbols into .s, so that users won't run into errors in situations like: clang -target powerpc-ibm-aix -xc -<<<$'extern inline __attribute__((__gnu_inline__)) void foo() {}\nvoid bar() { foo(); }' -O -Xclang -disable-llvm-passes Reviewed By: hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D102377
-
Matthias Springer authored
Do not rely on pass labels to detect if the pattern was already applied in the past (which allows for more some extra optimizations to avoid extra InsertOps and ExtractOps). Instead, check if these optimizations can be applied on-the-fly. This also fixes a bug, where vector.insert and vector.extract ops sometimes disappeared in the middle of the pass because they get folded away, but the next application of the pattern expected them to be there. Differential Revision: https://reviews.llvm.org/D102206
-
Nico Weber authored
-
Georgy Komarov authored
This commit fixes the cppcoreguidelines-pro-type-vararg test when it runs on a Windows host, but the toolchain is targeted a non-Windows platform. Reviewed By: njames93 Differential Revision: https://reviews.llvm.org/D102337
-
Stefan Pintilie authored
This patch adds the handling of clobbers of the link register LR for inline assembly. This patch is to fix: https://bugs.llvm.org/show_bug.cgi?id=50147 Reviewed By: nemanjai, #powerpc Differential Revision: https://reviews.llvm.org/D101657
-
Florian Hahn authored
SplitAt should only be dereferenced in the assert if it does not point to the end of the block. This fixes a crash in the added test case.
-
Simon Pilgrim authored
[X86] X86ExpandPseudo.cpp - try to pass DebugLoc by const-ref to avoid costly TrackingMDNodeRef copies. NFCI.
-
Simon Pilgrim authored
[X86] X86InstrInfo.cpp - try to pass DebugLoc by const-ref to avoid costly TrackingMDNodeRef copies. NFCI.
-
Simon Pilgrim authored
[X86] VZeroUpperInserter::insertVZeroUpper - avoid DebugLoc creation by embedding in the BuildMI calls. NFCI. Try to pass DebugLoc by const-ref to avoid costly TrackingMDNodeRef copies.
-
Florian Hahn authored
On some platforms/compiler combinations, it appears the output is slightly different. Update the test to use a regex, as is done at other places in the new-pm-*default.ll tests to address buildbot failures.
-
Florian Hahn authored
This patch adjusts the LTO pipeline in the new PM to run GlobalsAA before LICM to match the legacy PM. This fixes a regression where the new PM failed to vectorize loops that require hoisting/sinking by LICM depending on GlobalsAA info. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D102345
-
Fraser Cormack authored
Several tests had -verify-machineinstrs twice, and several tests were explicitly specifying the default FileCheck prefix of CHECK.
-
Florian Hahn authored
Split off from D102345 to commit this separately from other changes in the patch. This aligns the behavior of the new PM with the legacy PM for LTO, with respect to running LICM. Together with the remaining changes in D102345, this fixes new PM regressions where we fail to vectorize loops that are vectorized with the legacy PM.
-
Vassil Vassilev authored
-
David Spickett authored
959eec1f changed the message to show the local username with "$user" but this is not always set. Some systems will have USER/USERNAME/LOGNAME, so just use "whoami" instead.
-
Nemanja Ivanovic authored
There are two reasons this shouldn't be restricted to Power8 and up: 1. For XL compatibility 2. Because clang will expand comparison operators to these intrinsics* *Without this patch, the following causes a selection error: int test(vector signed long a, vector signed long b) { return a < b; } This patch provides the handling for the intrinsics in the back end and removes the Power8 guards from the predicate functions (vec_{all|any}_{eq|ne|gt|ge|lt|le}).
-
Florian Hahn authored
We already apply loop-guards when computing the maximum with unitary steps. This extends the code to also do so when dealing with non-unitary steps. This allows us to infer a tighter maximum in some cases. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D102267
-
Bruno Cardoso Lopes authored
LLVM has lifted strong requirements for CAS failure memory orders in 431e3138 and 819e0d10. Add support for honoring them in `AtomicCAS`. https://github.com/google/sanitizers/issues/970 Differential Revision: https://reviews.llvm.org/D99434
-
Vassil Vassilev authored
-
Kristina Bessonova authored
Differential Revision: https://reviews.llvm.org/D102354
-
Jason Molenda authored
MachProcess.mm has a sequence to get the address size in the inferior in three places; and I'm about to add a fourth in a future patch. Not a fan.
-
Jingu Kang authored
Revert "[SimpleLoopUnswitch] Port partially invariant unswitch from LoopUnswitch to SimpleLoopUnswitch" This reverts commit 88b259c0. It needs to fix below bugs. https://bugs.llvm.org/show_bug.cgi?id=50279 https://bugs.llvm.org/show_bug.cgi?id=50302
-
Serge Pavlov authored
Differential Revision: https://reviews.llvm.org/D74730
-
serge-sans-paille authored
The allow list is based on various official sources (see in-code comment). This fixes https://bugs.llvm.org/show_bug.cgi?id=50248 Differential Revision: https://reviews.llvm.org/D102168
-
Vassil Vassilev authored
This patch should appease the bots building with -DBUILD_SHARED_LIBS=On, resolving the regression introduced in 92f9852f.
-
Vassil Vassilev authored
Original commit message: In http://lists.llvm.org/pipermail/llvm-dev/2020-July/143257.html we have mentioned our plans to make some of the incremental compilation facilities available in llvm mainline. This patch proposes a minimal version of a repl, clang-repl, which enables interpreter-like interaction for C++. For instance: ./bin/clang-repl clang-repl> int i = 42; clang-repl> extern "C" int printf(const char*,...); clang-repl> auto r1 = printf("i=%d\n", i); i=42 clang-repl> quit The patch allows very limited functionality, for example, it crashes on invalid C++. The design of the proposed patch follows closely the design of cling. The idea is to gather feedback and gradually evolve both clang-repl and cling to what the community agrees upon. The IncrementalParser class is responsible for driving the clang parser and codegen and allows the compiler infrastructure to process more than one input. Every input adds to the “ever-growing” translation unit. That model is enabled by an IncrementalAction which prevents teardown when HandleTranslationUnit. The IncrementalExecutor class hides some of the underlying implementation details of the concrete JIT infrastructure. It exposes the minimal set of functionality required by our incremental compiler/interpreter. The Transaction class keeps track of the AST and the LLVM IR for each incremental input. That tracking information will be later used to implement error recovery. The Interpreter class orchestrates the IncrementalParser and the IncrementalExecutor to model interpreter-like behavior. It provides the public API which can be used (in future) when using the interpreter library. Differential revision: https://reviews.llvm.org/D96033
-
Matthias Springer authored
These two patterns allow for more efficient codegen in VectorToSCF. Differential Revision: https://reviews.llvm.org/D102222
-
LLVM GN Syncbot authored
-
Max Kazantsev authored
We want it to be available in analyzes so that we could use the CodeGen notion in middle-end passes (for example, to check if a GC may free some particular pointer). This is a preparatory patch that simply moves the files around. Note: if this causes some build issues, this patch must just be reverted. Differential Revision: https://reviews.llvm.org/D100557 Reviewed By: reames
-
Lang Hames authored
This can be useful for clients who want to define their own symbol for the stub, or re-use some existing symbol.
-
Lang Hames authored
The transferDefinedSymbol operation updates a Symbol's target block, offset, and size. This can be convenient when you want to redefine the content of some symbol(s) pointing at a block, while retaining the original block in the graph.
-
Jason Molenda authored
A debugserver launched x86_64 cannot control an arm64/arm64e process on an Apple Silicon system. Warn when this situation has happened and return an error for the most common case of attach. I think there will be refinements to this in the future, but start out by making it easy to spot the problem when it happens. rdar://76630595
-
Chuanqi Xu authored
Summary: The previous implementation of coro-split didn't collect values used by dbg instructions into the spills which made a log debug info unavailable with optimization on. This patch tries to collect these uses which are used by dbg.values. In this way, the debugbility of coroutine could be as powerful as normal functions with optimization on. To avoid enlarging the coroutine frame, this patch only collects `dbg.value` whose value is already in the coroutine frame. This decision may make some debug info getting unavailable. But if we are with optimization on, the performance issue should be considered first. And this patch would make the debugbility of coroutine to be better only without changing the layout of the frame. Test-plan: check-llvm Reviewed By: aprantl, lxfind Differential Revision: https://reviews.llvm.org/D97673
-