- Oct 04, 2022
-
-
Nikita Popov authored
If nonnull is already set, we currently skip setting both nonnull and dereferenceable. Make these independent, to avoid regressions when additional nonnull attributes are inferred earlier.
-
Nikita Popov authored
This reverts commit b20e34b3. This causes RAUW type mismatch assertions on some buildbots, reverting for now.
-
Nikita Popov authored
The known bits logic should never produce a better result than the direct recursive non-zero query here, so skip the fallthrough.
-
Nikita Popov authored
The change in the assume-queries-counter.ll test is because we skip and unnecessary known bits query for arguments.
-
Matthias Springer authored
tensor.empty/linalg.init_tensor produces an uninititalized tensor that can be used as a destination operand for destination-style ops (ops that implement `DestinationStyleOpInterface`). This change makes it possible to implement `TilingInterface` for non-destination-style ops without depending on the Linalg dialect. RFC: https://discourse.llvm.org/t/rfc-add-tensor-from-shape-operation/65101 Differential Revision: https://reviews.llvm.org/D135129
-
Nikita Popov authored
foldOpIntoPhi() currently only folds operations into the phi if all but one operands constant-fold. The two exceptions to this are freeze and select, where we allow more general simplification. This patch makes foldOpIntoPhi() generally simplification based and removes all the instruction-specific logic. We just try to simplify the instruction for each operand, and for the (potentially) one non-simplified operand, we move it into the new block with adjusted operands. This fixes https://github.com/llvm/llvm-project/issues/57448, which was my original motivation for the change.
-
Valentin Clement authored
This patch updates lowering to produce the correct fir.class types for various polymorphic and unlimited polymoprhic entities cases. This is only the lowering. Some TODOs have been added to the CodeGen part to avoid errors since this part still need to be updated as well. The fir.class<*> representation for unlimited polymorphic entities mentioned in the document has been updated to fir.class<none> to avoid useless work in pretty parse/printer. This patch is part of the implementation of the poltymorphic entities. https://github.com/llvm/llvm-project/blob/main/flang/docs/PolymorphicEntities.md Depends on D134957 Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D134959
-
Florian Hahn authored
Simplify LoopAccessLegacyAnalysis by using LoopAccessInfoManager from D134606. As a side-effect this also removes printing support from LoopAccessLegacyAnalysis. Depends on D134606. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D134608
-
LLVM GN Syncbot authored
-
Balázs Kéri authored
Add a check to detect usages of `realloc` where the result is assigned to the same variable (or field) as passed to the first argument. Reviewed By: steakhal, martong Differential Revision: https://reviews.llvm.org/D133119
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D134968
-
Lang Hames authored
The -slab-page-size option is used to set a simulated page size in -no-exec tests. In order for this to work we need to use read/write permissions only on all simulated pages in order to ensure that no simulated page is made read-only by a permission change to the underlying real page. The aim of this patch is to make it safe to enable ExecutionEngine regression tests on arm64. Those tests will be enabled in a follow-up patch.
-
Lang Hames authored
-
Craig Topper authored
One of the sources is the same size as the destination so that source doesn't have an overlap with the destination register. By using the _TIED form we avoid an early clobber contraint for that source. This matches what was already done for instrinsics. ConvertToThreeAddress will fix it if it can't stay tied.
-
Craig Topper authored
We want to emit a masked setcc that preserves zeros in all of the bits where the original mask is zero. To do this we need to pass the original mask as the passthru operand as well. Otherwise, we'll use the mask agnostic policy and replace the zeros with 1s on some CPUs. Differential Revision: https://reviews.llvm.org/D135122
-
Lang Hames authored
-
Lang Hames authored
Move getWindowsProtectionFlags inside namespace to make MemProt type accessible.
-
Lang Hames authored
That patch failed to include an update to the Windows side of ExecutorSharedMemoryMapperService.
-
LLVM GN Syncbot authored
-
Lang Hames authored
Moving these types to OrcShared eliminates the need for the separate WireProtectionFlags type.
-
changkaiyan authored
Differential Revision: https://reviews.llvm.org/D134696 deleted: 202209301111.patch
-
Jez Ng authored
This addresses the long-standing FIXME in the test. I would like to update the test, and objdump's output is a lot more readable / editable than readobj's. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D134690
-
Jakub Kuderski authored
When debuging a crash or conversion failure in a deep pass pipeline, there are often many interleaved frames with `failed` and `succeeded`. `LogicalResult` is used through the pass infrastructure, so by not implementing failure in terms of a call to succeess, this patch noticeably reduces the total total call stack depth and improves the debugging experience. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D135116
-
Jordan Rupprecht authored
-
changkaiyan authored
Differential Revision: https://reviews.llvm.org/D134696 modified: mlir/examples/standalone/standalone-translate/standalone-translate.cpp modified: mlir/include/mlir/Tools/mlir-translate/Translation.h modified: mlir/lib/Target/Cpp/TranslateRegistration.cpp modified: mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp modified: mlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp modified: mlir/lib/Target/SPIRV/TranslateRegistration.cpp modified: mlir/lib/Tools/mlir-translate/Translation.cpp
-
Jim Ingham authored
The synchronous callbacks are not intended to start the target running during the callback, and doing so is flakey. This patch converts them to being regular async callbacks, and adds some testing for sequential reports that have caused problems in the field. Differential Revision: https://reviews.llvm.org/D134927
-
Nemanja Ivanovic authored
There are a few issues with the code we generate for atomic operations and the way we generate it: - Hard coded CR0 for compares - Order of operands for compares not conducive to emitting compare-immediate or for CSE of compares - Missing MachineMemOperand for st[bhwd]cx intrinsics - Missing intrinsic properties for the same - Unnecessary blocks with store conditional instructions to clear reservation (which ends up hindering performance) - Move from CR instructions just to compare the result of a store conditional with zero (even though it is a record-form) This patch aims to resolve all of those issues. Differential revision: https://reviews.llvm.org/D134783
-
Victor Michel authored
Prior to this change, `CurrentGSYMPath` was never updated. As a consequence, the GSYM file was reopened for every frame, even if all frames were relative to the same GSYM file. This change brings a 13x speedup on a test I'm doing (symbolizing ~25K frames from libxul) (This is my first-ever LLVM change - sorry if I missed something in the process!) Reviewed By: simon.giesecke, clayborg Differential Revision: https://reviews.llvm.org/D132912
-
Sam Clegg authored
- Add support -Bdynamic/-Bstatic and their aliases - Add support for `--library` and `--library-path` long form args - Add test based on test/ELF/libsearch.s - In `-Bdynamic` mode search for `.so` files in preference to `.a`. - Unlike ELF continue to default to static mode until `-pie` or `-shared` are used. Differential Revision: https://reviews.llvm.org/D135087
-
Jeff Niu authored
-
Nico Weber authored
-
Yuanfang Chen authored
D128745 handled DR1432 for the partial ordering of partial specializations, but missed the handling for the partial ordering of function templates. This patch implements the latter. While at it, also simplifies the previous implementation to be more close to the wording without functional changes. Fixes https://github.com/llvm/llvm-project/issues/56090 Reviewed By: erichkeane, #clang-language-wg, mizvekov Differential Revision: https://reviews.llvm.org/D133683
-
Jessica Paquette authored
Also fix some lines that should have been DEBUG-NEXT, which made it a bit harder to see what was happening here.
-
Michael Holman authored
Previously, it was possible to load dynamic libraries which would be unloaded on llvm_shutdown(), but recently ManagedStatic removal changed this so that loaded libraries really can't ever be unloaded. This functionality was very useful, and so to add it back in a more explicit way, I've added new getLibrary() and closeLibrary() methods to allow callers to use the very convenient platform independent abstraction that LLVM has for dynamic libraries. As a specific use case, the onnx-mlir project was using this functionality with an API that allows instancing LLVM so you can compile a shared library, and then load that library, and eventually close the instance (and library) and compile something else. This change to llvm_shutdown causes libraries to leak and also locks the libraries for the entire duration of the program which prevents reusing library names. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D134763
-
Daniel Thornburgh authored
Uses the library introduced in https://reviews.llvm.org/D132504 to add build ID fetching to llvm-objdump. This allows viewing source when disassembling stripped objects. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D131224
-
Nico Weber authored
Ports: - core feature: https://reviews.llvm.org/D67039 - case mismatch: https://reviews.llvm.org/D70506 - extern "C" suggestions: https://reviews.llvm.org/D69592, https://reviews.llvm.org/D69650 Does not port https://reviews.llvm.org/D71735 since I believe that that doesn't apply to lld/Mach-O. Differential Revision: https://reviews.llvm.org/D135038
-
Nico Weber authored
-
Fangrui Song authored
* Remove -no-canonical-prefixes. See 98067998 * Test a.out and %t.out in few tests and remove excess `-o %t.o` * Avoid wrapping lines too aggresstively * Replace `"{{[^"]*}}ld{{(\.(lld|bfd|gold))?}}{{(\.exe)?}}"` with `ld{{(.exe)?}}"`. The new pattern supports more CLANG_DEFAULT_LINKER.
-
Jessica Paquette authored
-
Zibi Sarbinowski authored
This patch enables libc++ build as shared library in all combinations of ASCII/EBCDIC and 32-bit/64-bit variants. In particular it introduces: # ASCII version of libc++ named as libc++_a.so # Script to rename DLL name inside the generated side deck # Various names for dataset members where DLL libraries and their side decks will reside # Add the following options: - LIBCXX_SHARED_OUTPUT_NAME - LIBCXX_ADDITIONAL_COMPILE_FLAGS - LIBCXX_ADDITIONAL_LIBRARIES - LIBCXXABI_ADDITIONAL_COMPILE_FLAGS - LIBCXXABI_ADDITIONAL_LIBRARIES **Background and rational of this patch** The linker on z/OS creates a list of exported symbols in a file called side deck. The list contains the symbol name as well as the name of the DLL which implements the symbol. The name of the DLL depends on what is specified in the -o command line option. If it points to a USS file, than the DLL name in the side deck will be the USS file name. If it points to a ...
-