- Mar 13, 2024
-
-
agozillon authored
[Flang][OpenMP] Implement "promotion" of use_device_ptr non-cptr arguments to use_device_addr (#82834) This effectively implements some now deprecated OpenMP functionality that some applications (most notably at the moment GenASiS) unfortunately depend on (deprecated in specification version 5.2): "If a list item in a use_device_ptr clause is not of type C_PTR, the behavior is as if the list item appeared in a use_device_addr clause. Support for such list items in a use_device_ptr clause is deprecated." This PR downgrades the hard-error to a deprecated warning and "promotes" the above cases by simply moving the offending operands from the use_device_ptr value list to the back of the use_device_addr list (and moves the related symbols, locs and types that form the BlockArgs correspondingly) and then the generation of the target data construct proceeds as normal.
-
Alexey Bataev authored
Need to record casted extractelement for the externally used scalar, not original extract instruction.
-
Nikita Popov authored
Fixpoint verification failures outside our tests are usually not indicative of a bug -- don't be pushy about having people report them.
-
Jon Roelofs authored
ld: warning: ignoring duplicate libraries: This triggers quite frequently in llvm's build because CMake's library depends mechanism doesn't de-duplicate libraries on the link line. Duplication is necessary for ELF platforms, but means something subtly different on Darwin platforms, hence the warning. Since we don't have much control over that from CMake, just disable the warning wholesale whenever the linker is detected to support it.
-
Tom Eccles authored
Previously reduction variables were always passed by value into and out of the initialization and combiner regions of the OpenMP reduction declare operation. This worked well for reductions of primitive types (and might perform better than passing by reference). But passing by reference will be useful for array and derived type reductions (e.g. to move allocation inside of the init region). Passing reductions by reference requires different LLVM-IR generation when lowering from MLIR because some of the loads/stores/allocations will now be moved inside of the init and combiner regions. This alternate code generation is requested using a new attribute to omp.wsloop and omp.parallel. Existing lowerings from mlir are unaffected (these will continue to use the by-value argument passing. Flang will continue to pass by-value argument passing for trivial types unless a (hidden) command line argument is supplied. Non-trivial types will always use the by-ref lowering. Array reductions are not ready yet (but are coming very soon). In the meantime, this is tested by forcing existing reductions to use by-ref. Commit series for by-ref OpenMP reductions 3/3 --------- Co-authored-by:Mats Petersson <mats.petersson@arm.com>
-
Simon Pilgrim authored
Allows us to remove some tricky commutation matching
-
Simon Pilgrim authored
-
David Spickett authored
They are either flaky, or not cleaning up after themselves. See https://github.com/llvm/llvm-project/issues/85084.
-
Florian Hahn authored
This simplifies the code to create the recipe slightly as well as properly retaining the debug location of the input IR.
-
Zaara Syeda authored
This patch enables support that the XL compiler had for AIX under -qdatalocal/-qdataimported.
-
Zepp authored
We for some reason already had documentation for this attribute, but just weren’t linking to it.
-
David Spickett authored
Flaky on the bot: https://lab.llvm.org/buildbot/#/builders/96/builds/54435
-
mahesh-attarde authored
Fix uninitialized var and shift overflow.
-
Sirraide authored
Consider the following code: ```c bool const inf = (1.0/0.0); ``` When trying to emit the initialiser of this variable in C23, we end up hitting a code path in codegen in `VarDecl::evaluateValueImpl()` where we check for `IsConstantInitialization && (Ctx.getLangOpts().CPlusPlus || Ctx.getLangOpts().C23)`, and if that is the case and we emitted any notes, constant evaluation fails, and as a result, codegen issues this error: ``` <source>:1:12: error: cannot compile this static initializer yet 1 | bool const inf = (1.0/0.0); | ``` As a fix, only fail in C23 mode if we’re initialising a `constexpr` variable. This fixes #84784. -
Yingwei Zheng authored
Alive2: https://alive2.llvm.org/ce/z/r-67t9 It would improve the codegen if the target doesn't provide a defined value for ctlz/cttz with zero.
-
NagyDonat authored
This reapplies f32b04d4i, after fixing the use-after-free of ASTUnit in the unittest. https://github.com/llvm/llvm-project/pull/84469#issuecomment-1992163439 Co-authored-by:
Balazs Benics <benicsbalazs@gmail.com>
-
Jay Foad authored
The old name buffer_atomic_min_f32 is still tested as part of the alias tests.
-
Matt Arsenault authored
-
Louis Dionne authored
This was slated for removal in LLVM 19.
-
Jacek Caban authored
Detect COFF files by default and allow specifying it with --format argument. This is important for ARM64EC, which uses a separated symbol map for EC symbols. Since K_COFF is mostly compatible with K_GNU, this shouldn't really make a difference for other targets. This originally landed as #82642, but was reverted due to test failures in tests using no symbol table. Since COFF symbol can't express it, fallback to GNU format in that case.
-
Yingwei Zheng authored
Alive2: https://alive2.llvm.org/ce/z/Wm6kCk
-
Harald van Dijk authored
We were relying on roundings to implicitly canonicalize, which is generally safe, except with roundings that may be optimized away. Fixes #82937.
-
Jay Foad authored
This is unneeded because MUBUF_Real_Atomic_gfx11_gfx12 on the line above generates it automatically.
-
Simon Pilgrim authored
General cleanup and allows us to handle several commutable matches with a single pattern
-
Jonathan Thackray authored
Update Host.cpp with some missing Arm CPU part identifiers, to enable `-mcpu=native` on these processors. These are found in the Technical Reference Manuals listed under "part num" or "part no"
-
Simon Pilgrim authored
-
dyung authored
Similar failures were previously seen and XFAILed in https://reviews.llvm.org/D118468. See the phabricator review for a description of the problem, and the linked discourse thread for what the failing output looks like. This change should fix the issue on two buildbots that are running older versions of GDB: - https://lab.llvm.org/buildbot/#/builders/217/builds/37559 - https://lab.llvm.org/buildbot/#/builders/247/builds/15173
-
Nikita Popov authored
The inrange attribute is not relevant to the optimizations being tested here. Additionally, all the inrange attributes in these files don't actually carry any additional information, as the "range" covers the whole object.
-
Nikita Popov authored
These don't actually test anything related to inrange, so drop the attribute.
-
Florian Hahn authored
inverse_depth_first df_iterator_default_set as default set, so there's no need to explicitly use inverse_depth_first_ext. PR: https://github.com/llvm/llvm-project/pull/84920
-
David CARLIER authored
The actual solution relies on the premise /proc/self/smaps existence. instead relying on native api like freebsd. fixing fuzzer build too.
-
mikaelholmen authored
In 2fe81ede [NFC][RemoveDIs] Insert instruction using iterators in Transforms/ we changed if (*req_idx != *i) return FindInsertedValue(I->getAggregateOperand(), idx_range, - InsertBefore); + *InsertBefore); } but there is no guarantee that is InsertBefore is non-empty at that point, which we e.g can see in the added testcase. Instead just pass on the optional InsertBefore in the recursive call to FindInsertedValue, as we do at several other places already.
-
lcvon007 authored
CBBB will keep same after the first iteration so registerManifestAddedBasicBlock would always register the same basic block later. Co-authored-by:laichunfeng <laichunfeng@tencent.com>
-
AtariDreams authored
Pick the type based on the smallest bit-width possible, using DataLayout.
-
Sander de Smalen authored
VG is only used/defined when changing the streaming mode, using 'smstart sm' or plainly 'smstart' (same for smstop).
-
Haojian Wu authored
[clang] CTAD: Respect requires-clause of the original function template for the synthesized deduction guide (#84913) We ignored the require-clause of the original template when building the deduction guide for type-alias CTAD, this resulted in accepting code which should be rejected (see the test case). This patch fixes it, part of #84492.
-
Marco Elver authored
On AArch64 with BTI, we have to start functions with the appropriate BTI hint to indicate that the function is a valid call target. To support interceptors with AArch64 BTI, add "BTI c".
-
Danial Klimkin authored
-