- Jun 15, 2021
-
-
Andrew Litteken authored
This adds support for functions outlined by the IR Outliner to be recognized by the debugger. The expected behavior is that it will skip over the instructions included in that section. This is due to the fact that we can not say which of the original locations the instructions originated from. These functions will show up in the call stack, but you cannot step through them. Reviewers: paquette, vsk, djtodoro Differential Revision: https://reviews.llvm.org/D87302
-
Tobias Gysi authored
The patch updates the C++ yaml code generation to support scalar operands as added in https://reviews.llvm.org/D104220. Differential Revision: https://reviews.llvm.org/D104224
-
Adrian Prantl authored
-
Isaac Perry authored
This patch adds the 4th Fortran specific semantic check for the OpenMP allocate directive: "If a list item has the SAVE attribute, is a common block name, or is declared in the scope of a module, then only predefined memory allocator parameters can be used in the allocator clause". Code in this patch was based on code from https://reviews.llvm.org/D93549/new/. Differential Revision: https://reviews.llvm.org/D102400
-
Guillaume Chatelet authored
This reverts commit 8387187c.
-
Jordan Rupprecht authored
https://eel.is/c++draft/atomics.types.operations#23 says: ... the value of failure is order except that a value of `memory_order::acq_rel` shall be replaced by the value `memory_order::acquire` and a value of `memory_order::release` shall be replaced by the value `memory_order::relaxed`. This failure mapping is only handled for `_LIBCPP_HAS_GCC_ATOMIC_IMP`. We are seeing bad code generation for `compare_exchange_strong(cmp, 1, std::memory_order_acq_rel)` when using libc++ in place of libstdc++: https://godbolt.org/z/v3onrrq4G. This was caught by tsan tests after D99434, `[TSAN] Honor failure memory orders in AtomicCAS`, but appears to be an issue in non-tsan code. Reviewed By: ldionne, dvyukov Differential Revision: https://reviews.llvm.org/D103846
-
Tobias Gysi authored
Rename AbstractType to AbstractTy to avoid a GCC naming conflict after https://reviews.llvm.org/D104234. Differential Revision: https://reviews.llvm.org/D104297
-
Guillaume Chatelet authored
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available. Original commit message: Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop). The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started. A self-contained version of this code is available at https://godbolt.org/z/e1x6xdaxM
-
David Green authored
This adjusts some of how the gather/scatter lowering pass passes around data and where certain gathers/scatters are created from. It should not effect code generation on its own, but allows other patches to more clearly reason about the code. A number of extra test cases were also added for smaller gathers/ scatters that can be extended, and some of the test comments were updated.
-
Simon Pilgrim authored
[llvm-exegesis] Fix X86LbrCounter destructor to correctly unmap memory and not double-close fd (PR50620) As was reported on PR50620, the X86LbrCounter destructor was double-closing the filedescriptor and not unmapping the buffer. Differential Revision: https://reviews.llvm.org/D104201
-
Adrian Kuegel authored
Also add a conversion pattern from Complex Dialect to Standard/Math Dialect. Differential Revision: https://reviews.llvm.org/D104292
-
Alex Zinenko authored
It may be desirable to provide an interface implementation for an attribute or a type without modifying the definition of said attribute or type. Notably, this allows to implement interfaces for attributes and types outside of the dialect that defines them and, in particular, provide interfaces for built-in types. Provide the mechanism to do so. Currently, separable registration requires the attribute or type to have been registered with the context, i.e. for the dialect containing the attribute or type to be loaded. This can be relaxed in the future using a mechanism similar to delayed dialect interface registration. See https://llvm.discourse.group/t/rfc-separable-attribute-type-interfaces/3637 Depends On D104233 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D104234
-
Tobias Gysi authored
The patch replaces the existing capture functionality by scalar operands that have been introduced by https://reviews.llvm.org/D104109. Scalar operands behave as tensor operands except for the fact that they are not indexed. As a result ScalarDefs can be accessed directly as no indexing expression is needed. The patch only updates the OpDSL. The C++ side is updated by a follow up patch. Differential Revision: https://reviews.llvm.org/D104220
-
Arthur O'Dwyer authored
Differential Revision: https://reviews.llvm.org/D104228
-
Florian Hahn authored
This has already been implemented in be2277fb which adds pragma fp support. This patch just adds test coverage for regular fast-math flags (PR46165).
-
patacca authored
This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface. Changes made: - Removing method `to_str()` from all the classes in the isl C++ bindings. - Overload method `stringFromIslObj()` so it accepts isl C++ objects. - To keep backward compatibility `stringFromIslObj()` now accepts a value that is returned if the isl C object is `null` or doesn't have a string representation (by default it's an empty string). In some cases it's better to have the string "null" instead of an empty string. - isl-noexceptions.h has been generated by this https://github.com/patacca/isl/commit/d33ec3a3bbaf971b254a853e6d8200ff9f5a1385 Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D104211
-
LLVM GN Syncbot authored
-
Alexey Bataev authored
Need to capture locals in aligned clauses for the combined directives to be fix the crash in the codegen. Differential Revision: https://reviews.llvm.org/D104258
-
Florian Hahn authored
Loops with irreducible cycles may loop infinitely. Those cannot be removed, unless the loop/function is marked as mustprogress. Also discussed in D103382. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D104238
-
Lang Hames authored
-
Lang Hames authored
-
Lang Hames authored
-
Lang Hames authored
-
Alex Zinenko authored
The generated C++ would be invalid. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D104233
-
Aaron Ballman authored
-
Lang Hames authored
The const qualifier was a hangover from an earlier iteration that allowed wrapper functions to return pointers to const memory. This feature has been removed, so there's no reason for this to be const any more, and removing it eliminates const-cast warnings.
-
Lang Hames authored
Replace the existing WrapperFunctionResult type in llvm/include/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h with a version adapted from the ORC runtime's implementation. Also introduce the SimplePackedSerialization scheme (also adapted from the ORC runtime's implementation) for wrapper functions to avoid manual serialization and deserialization for calls to runtime functions involving common types.
-
Benjamin Kramer authored
Reshape can take integer types in addition to index, but dim always returns index. Differential Revision: https://reviews.llvm.org/D104287
-
Adrian Kuegel authored
Also add a lowering pattern from complex dialect to standard dialect. Differential Revision: https://reviews.llvm.org/D104284
-
Neil Henning authored
This commit mostly just replaces bad uses of `NDEBUG` with uses of `LLVM_ENABLE_ABI_BREAKING_CHANGES` - the safe way to include ABI breaking changes (normally extra struct elements in headers). Differential Revision: https://reviews.llvm.org/D104216
-
Jan Kratochvil authored
libstdc++ since version 11 has a conditional compilation based on [[no_unique_address]] availability whether one element is either inherited or put there as a field with [[no_unique_address]]. The code comment is by teemperor. Reviewed By: teemperor Differential Revision: https://reviews.llvm.org/D104283
-
Roman Lebedev authored
Much like `mulx`'s `WriteIMulH`, there are two outputs of AVX2 GATHER instructions. This was changed back in rL160110, but the sched model change wasn't present. So right now, for sched models that are marked as complete (`znver3` only now), codegen'ning `GATHER` results in a crash: ``` DefIdx 1 exceeds machine model writes for early-clobber renamable $ymm3, dead early-clobber renamable $ymm2 = VPGATHERDDYrm killed renamable $ymm3(tied-def 0), undef renamable $rax, 4, renamable $ymm0, 0, $noreg, killed renamable $ymm2(tied-def 1) :: (load 32, align 1) ``` https://godbolt.org/z/Ks7zW7WGh I'm guessing we need to deal with this like we deal with `WriteIMulH`. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D104205
-
Valeriy Savchenko authored
This allows us to create other types of tags that carry useful bits of information alongside. Differential Revision: https://reviews.llvm.org/D104135
-
Andrea Di Biagio authored
This patch fixes the logic that checks for variadic register definitions, Before llvm-svn 348114 (commit 4cf35b4a), it was not possible to explicitly mark variadic operands as definitions. By default, variadic operands of an MCInst were always assumed to be uses. A number of had-hoc checks were introduced in the InstrBuilder to fix the processing of variadic register operands of ARM ldm/stm variants. This patch simply replaces those old (and buggy) checks with a much simpler (and correct) check for MCID::Flag::VariadicOpsAreDefs.
-
Alex Richardson authored
Apparently __builtin_abort() is not supported when targetting Windows. This should fix the following builder errors: clang_rt.builtins-x86_64.lib(int_util.c.obj) : error LNK2019: unresolved external symbol __builtin_abort referenced in function __compilerrt_abort_impl
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D104046
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D103961
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D103917
-
Valeriy Savchenko authored
One interesting problem was discovered here. When we do interrupt Tracker's track flow, we want to interrupt only it and not all the other flows recursively. Differential Revision: https://reviews.llvm.org/D103914
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D103902
-