- Jan 23, 2024
-
-
Fangrui Song authored
Created using spr 1.3.4 [skip ci]
-
Valentin Clement (バレンタイン クレメン) authored
Just a cleanup for all the `has.*Only()` function to avoid code duplication
-
Valentin Clement (バレンタイン クレメン) authored
Nb of operand per segment is not correctly computed.
-
Jeremy Morse authored
This is a follow-up to 8c1b7fba -- GlobalISel currently doesn't handle RemoveDIs mode debug-info, but will (see #75228). Disable this runline until then. (This is a patch-landing ordering problem)
-
Kerry McLaughlin authored
updateNewZAFunctions is extended to generate the following on entry to a function with either the "aarch64_pstate_za_new" or "arm_new_zt0" attribute: - Private-ZA interface: commit any active lazy-saves & enable PSTATE.ZA. - "aarch64_pstate_za_new": zero ZA. - "arm_new_zt0": zero ZT0. Additionally, PSTATE.ZA should disabled before returning if the function has a private-ZA interface.
-
carlobertolli authored
This patch enables applications that did not request OpenMP unified_shared_memory to run with the same zero-copy behavior, where mapped memory does not result in extra memory allocations and memory copies, but CPU-allocated memory is accessed from the device. The name for this behavior is "automatic zero-copy" and it relies on detecting: that the runtime is running on a MI300A, that the user did not select unified_shared_memory in their program, and that XNACK (unified memory support) is enabled in the current GPU configuration. If all these conditions are met, then automatic zero-copy is triggered. This patch also introduces an environment variable OMPX_APU_MAPS that, if set, triggers automatic zero-copy also on non APU GPUs (e.g., on discrete GPUs). This patch is still missing support for global variables, which will be provided in a subsequent patch. Co-authored-by:Thorsten Blass <thorsten.blass@amd.com>
-
Emma Pilkington authored
-
Stefan Gränitz authored
Follow-up fix from https://github.com/llvm/llvm-project/pull/78959
-
Piotr Zegar authored
Check that flags chained comparison expressions, such as a < b < c or a == b == c, which may have unintended behavior due to implicit operator associativity. Moved from Phabricator (D144429).
-
- Jan 22, 2024
-
-
Simon Pilgrim authored
-
David Spickett authored
Flang was recently updated on Compiler Explorer and by default it's in assemble only mode, you have to enable linking and executing. This means that the default output for flang-to-external-fc is nothing, as it doesn't know what `-S` means. You'd have to know to enable the link to binary option to see any output. Handle `-S` so that users of Compiler Explorer don't have to wonder why the "compiler" is broken.
-
Andrzej Warzynski authored
The removed test is identical to the one directly above.
-
Stefan Gränitz authored
-
Stefan Gränitz authored
Prepare a configuration switch and default to R_ARM_ABS32
-
Daniel Grumberg authored
When generating declaration fragments for types that use typedefs to pointer types ensure that we keep the user-defined typedef form instead of desugaring the typedef. rdar://102137655
-
Simon Pilgrim authored
Allows cases where movss/movsd etc. are loading constant (ConstantDataSequential) sub-vectors, ensuring we pad with the correct number of zero upper elements by making repeated printConstant calls to print zeroes in a matching int/fp format.
-
Simon Pilgrim authored
This allows us to check the entire constant address calculation, and ensure we're not performing any runtime address math into the constant pool (noticed in an upcoming patch).
-
Jeremy Morse authored
This patch abstracts visitEntryValueDbgValue to deal with the substance of variable locations (Value, Var, Expr, DebugLoc) rather than how they're stored. That allows us to call it from handleDebugValue, which is similarly abstracted. This allows the entry-value behaviour (see the test) to be supported with non-instruction debug-info too!.
-
Paul T Robinson authored
These are largely copy-pasted from the corresponding function descriptions. Updated _rdtsc definition because it was just plain wrong.
-
Daniel Grumberg authored
Ensure that we generate correct symbol kinds and declaration fragments for unions in C and Objective-C parsing modes. rdar://120544091
-
Konstantin Zhuravlyov authored
-
Piotr Zegar authored
Produces now valid fixes for a member variables initialized with macros. Correctly uses expansion location instead of location inside macro to get init code. Close #70189
-
itrofimow authored
[libc++abi] Implement __cxa_init_primary_exception and use it to optimize std::make_exception_ptr (#65534) This patch implements __cxa_init_primary_exception, an extension to the Itanium C++ ABI. This extension is already present in both libsupc++ and libcxxrt. This patch also starts making use of this function in std::make_exception_ptr: instead of going through a full throw/catch cycle, we are now able to initialize an exception directly, thus making std::make_exception_ptr around 30x faster.
-
Matthew Devereau authored
Rename intrinsics for fcvtu to fcvtzu and fcvts to fcvtzs. Use llvm_anyvector_ty for both multi vector returns and operands, therefore the return and operands can be specified in the intrinsic call, e.g. @llvm.aarch64.sve.scvtf.x4.nxv4f32.nxv4i32
-
erichkeane authored
The 'vector_length' clause is the first of the 'int-expr' clauses that I've implemented. Currently this is just being parsed as an assignment-expr, since it needs to be usable in a list. Sema implementation will enforce the integral-nature of it.
-
Krzysztof Parzyszek authored
-
Sam McCall authored
-
Florian Hahn authored
Extra tests for https://github.com/llvm/llvm-project/pull/78637 https://github.com/llvm/llvm-project/pull/78632
-
carlobertolli authored
Some are missing setting of HSA_XNACK=1 environment variable, used to enable unified memory support on amdgpu's when it's not been set at kernel boot time. Some others needed to be marked as supporting unified_shared_memory in the lit test harness. Extend lit test harness to enable unified_shared_memory requirement for AMD GPUs. Reland: #77851
-
Jie Fu authored
llvm-project/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:1064:18: error: unused variable 'I' [-Werror,-Wunused-variable] Instruction *I = cast<Instruction>(Pair.first); ^ llvm-project/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:1066:11: error: unused variable 'BaseValue' [-Werror,-Wunused-variable] auto *BaseValue = State.getBaseValue(); ^ 2 errors generated. -
Nikita Popov authored
-
Natalie Chouinard authored
Add the -fspv-target-env option to the clang-dxc compatibility driver to specify the SPIR-V target environment, which is propagated to the target Triple.
-
Krzysztof Parzyszek authored
This brings `createBodyOfOp` to its final intended form. First, input privatization is performed, then the recursive lowering takes place, and finally the output privatization (lastprivate) is done. This enables fixing a known issue with infinite loops inside of an OpenMP region, and the fix is included in this patch. Fixes https://github.com/llvm/llvm-project/issues/74348 . Recursive lowering [5/5] --------- Co-authored-by:
Kiran Chandramohan <kiran.chandramohan@arm.com>
-
Louis Dionne authored
In LLVM 17, we switched to numbered RST files for release notes, which makes it easier to deal with cherry-picks around release points. However, we stopped publishing `libcxx/docs/ReleaseNotes.html`, which was referenced by external sites. This patch ensures that we keep publishing `ReleaseNotes.html` by simply including the versioned RST file in the unversioned RST file. Fixes #77955
-
Andrzej Warzynski authored
1. Updates and clarifies a few comments related to hooks for vector.{insert|extract}_strided_slice. 2. For consistency with vector.insert_strided_slice, removes a TODO from vector.extract_strided_slice Op def. It's self-explenatory that adding support for non-unit strides is a "TODO". -
Jeremy Morse authored
This patch tweaks two AMDGPU passes to use iterators rather than instruction pointers for expressing an insertion point. This is needed to accurately support DPValues, the non-instruction storage object for debug-info. Two tests were sensitive to this change (variable assignments were being put in the wrong place), and I've added extra run-lines with the "try new debug-info..." flag. These get tested on our public buildbot to ensure they continue to work accurately.
-
Louis Dionne authored
-
Guillaume Chatelet authored
Reland #78588
-
Petr Maj authored
Fixes a problem where the explicit marking of various instructions as conflicts did not propagate to their users. An example of this: ``` %getelementptr = getelementptr i8, <2 x ptr addrspace(1)> zeroinitializer, <2 x i64> <i64 888, i64 908> %shufflevector = shufflevector <2 x ptr addrspace(1)> %getelementptr, <2 x ptr addrspace(1)> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3> %shufflevector1 = shufflevector <2 x ptr addrspace(1)> %getelementptr, <2 x ptr addrspace(1)> zeroinitializer, <4 x i32> <i32 0, i32 1, i32 2, i32 3> %select = select i1 false, <4 x ptr addrspace(1)> %shufflevector1, <4 x ptr addrspace(1)> %shufflevector ``` Here the vector shuffles will get single base (gep) during the fixpoint and therefore the select will get a known base (gep). We later mark the shuffles as conflicts, but this does not change the base of select. This gets caught by an assert where the select's type will differ from its (wrong) base later on. The solution in the MR is to move the explicit conflict marking into the fixpoint phase. --------- Co-authored-by:Petr Maj <pmaj@azul.com>
-
chuongg3 authored
Legalize shl/lshr/ashr for smaller/larger vector widths with legal element sizes Smaller than legal vector types does not work at the moment as it relies on G_ANYEXT to work with smaller than legal vector types
-