- Apr 08, 2022
-
-
Shraiysh Vaishay authored
This patch adds translation for allocate clause for parallel and single constructs. Also added tests for block constructs. This patch also adds tests for parallel construct which were not added earlier. Reviewed By: NimishMishra, peixin Differential Revision: https://reviews.llvm.org/D122483 Co-authored-by:
Sourabh Singh Tomar <SourabhSingh.Tomar@amd.com>
-
Aaron Ballman authored
The LANGOPT macro allows you to specify a default value for the langauge option. However, it's expected that these values be constant rather than depending on other language options (because the constructor setting the default values does not know the language mode at the time it's being constructed). Some of our language options were abusing this and passing in other language mode options which were then set correctly by other parts of frontend initialization. This removes the default values for the language options, and then ensures they're consistently set from the same place when setting language standard defaults.
-
Joseph Huber authored
Summary: The `-fopenmp-target-new-runtime` flag has not been used for awhile. It was present in a previous release so we shouldn't remove it for backwards compatibility, but we shouldn't have documentation or a help message for it.
-
Christudasan Devadasan authored
-
Nikita Popov authored
Don't try to directly use the with.overflow flag result in a cmov if we need to materialize constants between the instruction producing the overflow flag and the cmov. The current code is careful to check that there are no other instructions in between, but misses the constant materialization case (which may clobber eflags via xor or constant expression evaluation). Fixes https://github.com/llvm/llvm-project/issues/54369. Differential Revision: https://reviews.llvm.org/D122825
-
Carlos Alberto Enciso authored
The changes described by: https://reviews.llvm.org/D121801 https://reviews.llvm.org/D122226 Moved some llvm-pdbutil functionality to the debug PDB library. This patch addresses one outstanding issue concerning the global state (Filters) created in the PDB library. - Move 'Filters' inside the 'LinePrinter' class. - Omit 'Optional' and just pass 'PrintScope &HeaderScope' everywhere. Reviewed By: aganea Differential Revision: https://reviews.llvm.org/D122887
-
Benjamin Kramer authored
-
Jean Perier authored
The actual argument passed to STATUS may be a dummy OPTIONAL or a disassociated POINTER/unallocated ALLOCATABLE. Differential Revision: https://reviews.llvm.org/D123380
-
Nikita Popov authored
This test is currently looking for specific typed-pointer IR, so explicitly disable opaque pointers.
-
Nikita Popov authored
The output differs slightly with opaque pointers (no GEP constexpr), add -no-opaque-pointers for now.
-
Nikita Popov authored
This was skipping specific lifetime + bitcast patterns, but with opaque pointers the bitcast will not be present, and we did not perform this fold. Instead skip over lifetime.end and bitcasts generally, without trying to correlate them.
-
Nathan James authored
Fixes https://llvm.org/PR50157 Adds support for when the container being read from in a range-for is a member of a struct. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D101624
-
Vivek Khandelwal authored
This commit adds pooling_nchw_sum as a yaml op. Reviewed By: cathyzhyi, gysit Differential Revision: https://reviews.llvm.org/D123013
-
Jean Perier authored
isAbsent/isPresent helpers only give information about static presence of intrinsic arguments. Many intrinsic arguments optionality is dynamic (an absent dummy can legally be passed to these intrinsics). This requires a different handling (like `handleDynamicOptional`). Rename the helpers to avoid misleading coder/reader into thinking all optionality cases are covered by them. Differential Revision: https://reviews.llvm.org/D123378
-
Fraser Cormack authored
This patch aims to overcome an issue in these mappings where, when an ISD node was registered with BEGIN_REGISTER_VP_SDNODE but outwidth the scope of a pair of BEGIN_REGISTER_VP_INTRINSIC/END_REGISTER_VP_INTRINSIC macros, the switch cases fell apart. This in particular happened with VP_SETCC, where we'd end up with something along the lines of: case Intrinsic::vp_fcmp: break; case Intrinsic::vp_icmp: break; ResOpc = ISD::VP_SETCC; case Intrinsic::vp_store: ... To remedy this, we introduce a special-purpose mapping macro which can map any number of VP intrinsic opcodes to an ISD opcode. As a result, we no longer need to special-case the mapping from vp.icmp and vp.fcmp to VP_SETCC, as the new helper macro does it for us. Thanks to @craig.topper for noticing this and to @rogfer01 for the idea. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D123324 -
LLVM GN Syncbot authored
-
David Green authored
Perfect shuffle costs are always encoded less than 4, and shouldn't really have a cost more than 3, so it makes no sense to check it when generating shuffles. The perfect shuffle is likely always better than a tbl too (although that may depend on whether it is in a loop).
-
Aaron Ballman authored
-
Sven van Haastregt authored
Align guards of these builtins with opencl-c.h.
-
Nico Weber authored
-
Abinav Puthan Purayil authored
-
Benjamin Kramer authored
GCC 9 has problems with this. mlir/include/mlir/IR/OperationSupport.h: In member function ‘mlir::Value mlir::MutableOperandRange::operator[](unsigned int) const’: mlir/include/mlir/IR/OperationSupport.h:912:43: error: call of overloaded ‘OperandRange(const mlir::MutableOperandRange&)’ is ambiguous 912 | return static_cast<OperandRange>(*this)[index]; | mlir/include/mlir/IR/OperationSupport.h:789:21: note: candidate: mlir::OperandRange::OperandRange(const llvm::iterator_range<llvm::detail::indexed_accessor_ range_base<mlir::OperandRange, mlir::OpOperand*, mlir::Value, mlir::Value, mlir::Value>::iterator>&) using RangeBaseT::RangeBaseT; ^~~~~~~~~~ mlir/include/mlir/IR/OperationSupport.h:786:7: note: candidate: constexpr mlir::OperandRange::OperandRange(const mlir::OperandRange&) class OperandRange final : public llvm::detail::indexed_accessor_range_base< ^~~~~~~~~~~~ mlir/include/mlir/IR/OperationSupport.h:786:7: note: candidate: constexpr mlir::OperandRange::OperandRange(mlir::OperandRange&&) -
Thomas Symalla authored
We found that it might be beneficial to have the SIOptimizeExecMasking pass detect more cases where v_cmp, s_and_saveexec patterns can be transformed to s_mov, v_cmpx patterns. Currently, the search range for finding a fitting v_cmp instruction is 5, however, this is doubled to 10 here. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D123367
-
Nikolas Klauser authored
`__is_callable` is required to ensure that the classic algorithms are only called with functions or functors. I also begin to granularize `<type_traits>`. Reviewed By: ldionne, #libc Spies: libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D123114
-
Nikolas Klauser authored
Reviewed By: ldionne, var-const, #libc, nilayvaish Spies: nilayvaish, libcxx-commits Differential Revision: https://reviews.llvm.org/D123129
-
Matthias Gehre authored
-
Simon Pilgrim authored
-
Matthias Springer authored
Insert a buffer copy unless the dims are guaranteed to be collapsible. In the verifier, accept collapses unless they are guaranteed to be non-collapsible. Differential Revision: https://reviews.llvm.org/D123316
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D123369
-
Matthias Springer authored
Insert a cast if the two tensors with identical layout (that are passed to `arith.select`) have different layout maps after bufferization. Differential Revision: https://reviews.llvm.org/D123321
-
Simon Pilgrim authored
Adjust the PMULLD entry to match the Intel AoM numbers - PMULLD is a uop nightmare on SLM and we should model it as such. We had reports of internal regressions the last time this was attempted (rG13a0f83a), but no public repros, and tests I did last year when I had access to a SLM box failed to see anything. My hunch is that the more aggressive PMULLD -> PMADDWD folds we now perform might have helped. We can revisit this again if we ever receive an actual repro. Fixes #36407
-
Benjamin Kramer authored
-
Nikita Popov authored
From this comment: https://reviews.llvm.org/D123014#3436522
-
Nikita Popov authored
This removes support for performing LTO using the legacy pass manager in LLVMgold.so. Explicitly enabling the new pass manager is retained as a no-op. Differential Revision: https://reviews.llvm.org/D123294
-
Kito Cheng authored
This reverts commit fc2d8326.
-
Kristóf Umann authored
I recently evaluated ~150 of bug reports on open source projects relating to my GSoC'19 project, which was about tracking control dependencies that were relevant to a bug report. Here is what I found: when the condition is a function call, the extra notes were almost always unimportant, and often times intrusive: void f(int *x) { x = nullptr; if (alwaysTrue()) // We don't need a whole lot of explanation // here, the function name is good enough. *x = 5; } It almost always boiled down to a few "Returning null pointer, which participates in a condition later", or similar notes. I struggled to find a single case where the notes revealed anything interesting or some previously hidden correlation, which is kind of the point of condition tracking. This patch checks whether the condition is a function call, and if so, bails out. The argument against the patch is the popular feedback we hear from some of our users, namely that they can never have too much information. I was specifically fishing for examples that display best that my contribution did more good than harm, so admittedly I set the bar high, and one can argue that there can be non-trivial trickery inside functions, and function names may not be that descriptive. My argument for the patch is all those reports that got longer without any notable improvement in the report intelligibility. I think the few exceptional cases where this patch would remove notable information are an acceptable sacrifice in favor of more reports being leaner. Differential Revision: https://reviews.llvm.org/D116597 -
Nikita Popov authored
-
Nikita Popov authored
This test requires the X86 target to be available.
-
Nikita Popov authored
Make it clearer that this is a required dependency.
-
Iain Sandoe authored
This adjusts the handling for: export module M; export namespace {}; export namespace N {}; export using namespace N; In the first case, we were allowing empty anonymous namespaces as part of an extension allowing empty top-level entities, but that seems inappropriate in this case, since the linkage would be internal for the anonymous namespace. We now report an error for this. The second case was producing a warning diagnostic that this was accepted as an extension - however the C++20 standard does allow this as well-formed. In the third case we keep the current practice that this is accepted with a warning (as an extension). The C++20 standard says it's an error. We also ensure that using decls are only applied to items with external linkage. This adjusts error messages for exports involving redeclarations in modules to be more specific about the reason that the decl has been rejected. Differential Revision: https://reviews.llvm.org/D122119
-