- Jul 15, 2022
-
-
Katherine Rasmussen authored
Add the collective subroutine, co_sum, to the list of intrinsics. In accordance with 16.9.50 and 16.9.137, add a check for and an error if coindexed objects are being passed to certain arguments in co_sum and in move_alloc. Add a semantics test to check that this error is successfully caught in calls to move_alloc. Remove the XFAIL directive, update the ERROR directives and add both standard-conforming and non-standard conforming calls to the semantics test for co_sum. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D114134
-
Fangrui Song authored
Thanks to Alex Brachet for spotting it in D110217.
-
Krzysztof Drewniak authored
The lds_barrier op allows workgroups to wait at a barrier for operations to/from their local data store (LDS) to complete without incurring the performance penalties of a full memory fence. Reviewed By: nirvedhmeshram Differential Revision: https://reviews.llvm.org/D129522
-
Siva Chandra authored
-
Jeff Niu authored
-
Siva Chandra authored
-
Siva Chandra Reddy authored
Reviewed By: michaelrj, lntue Differential Revision: https://reviews.llvm.org/D129729
-
Fabian Parzefall authored
As we are moving towards support for multiple fragments, loops that iterate over all basic blocks of a function, but do not depend on the order of basic blocks in the final layout, should iterate over binary functions directly, rather than the layout. Eventually, all loops using the layout list should either iterate over the function, or be aware of multiple layouts. This patch replaces references to binary function's block layout with the binary function itself where only little code changes are necessary. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D129585
-
Hui Xie authored
[libc++][ranges] implement `std::ranges::set_union` Differential Revision: https://reviews.llvm.org/D129657
-
Philip Reames authored
-
LLVM GN Syncbot authored
-
Vitaly Buka authored
-
David Tenty authored
D127650 removed support for non-clang-based XL compilers, but left some of the headers used only by this compiler and included under the __IBMCPP__ macro. This change cleans this up by deleting these headers. Reviewed By: hubert.reinterpretcast, fanbo-meng Differential Revision: https://reviews.llvm.org/D129491
-
Louis Dionne authored
-
Petr Hosek authored
We already link libunwind explicitly so avoid trying to link toolchain's default libunwind which may be missing. This matches what we already do for libcxx. Differential Revision: https://reviews.llvm.org/D129469
-
Ellis Hoag authored
Add two options, `-fprofile-function-groups=N` and `-fprofile-selected-function-group=i` used to partition functions into `N` groups and only instrument the functions in group `i`. Similar options were added to xray in https://reviews.llvm.org/D87953 and the goal is the same; to reduce instrumented size overhead by spreading the overhead across multiple builds. Raw profiles from different groups can be added like normal using the `llvm-profdata merge` command. Reviewed By: ianlevesque Differential Revision: https://reviews.llvm.org/D129594
-
Nick Desaulniers authored
Follow up fix to commit 2240d72f ("[X86] initial -mfunction-return=thunk-extern support") https://reviews.llvm.org/D129572 @nathanchance reported that -mfunction-return=thunk-extern was failing to annotate the asan and tsan contructors. https://lore.kernel.org/llvm/Ys7pLq+tQk5xEa%2FB@dev-arch.thelio-3990X/ I then noticed the same occurring for gcov synthetic functions. Similar to commit 2786e673 ("[IR][sanitizer] Add module flag "frame-pointer" and set it for cc1 -mframe-pointer={non-leaf,all}") define a new module level MetaData, "fn_ret_thunk_extern", then when set adds the fn_ret_thunk_extern IR Fn Attr to synthetically created Functions. Fixes https://github.com/llvm/llvm-project/issues/56514 Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D129709
-
Sanjay Patel authored
As discussed in D128123, this test is based on an example that ends up with codegen regressions if sub is converted to xor.
-
Sanjay Patel authored
-
Vitaly Buka authored
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D129789
-
Amara Emerson authored
Widening a G_FCONSTANT by extending and then generating G_FPTRUNC doesn't produce the same result all the time. Instead, we can just transform it to a G_CONSTANT of the same bit pattern and truncate using a plain G_TRUNC instead. Fixes https://github.com/llvm/llvm-project/issues/56454 Differential Revision: https://reviews.llvm.org/D129743
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: arichardson, sstefan1, libcxx-commits Differential Revision: https://reviews.llvm.org/D129039
-
Mitch Phillips authored
This reverts commit b7e77ff2. Reason: Broke sanitizer builds bots + libcxx. 'static assertion expression is not an integral constant expression'. More details available in the Phabricator review: https://reviews.llvm.org/D129048
-
Philip Reames authored
Follow up to 3bc09c7d - remove a fixme I forgot to remove, and add test cases showing remaining work. Note that scaled vscales show up in vectorized code from a couple of sources: * Element types smaller than vector block size (i.e. everything under i64) * Unrolling * LMUL > 1 The largest scaling we can currently have is 256 (e8 in every possible vector register). More practically useful scales are in the 2-16 range.
-
Stella Stamenova authored
Revert "[lldb] Add support for using integral const static data members in the expression evaluator" This reverts commit 48678721. This broke the windows lldb bot: https://lab.llvm.org/buildbot/#/builders/83/builds/21186
-
Nikolas Klauser authored
Nobody knows if there are users of libc++ with MSVC. Let's try to find that out and encourage them to upstream their changes to make that configuration work. Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D129055
-
LLVM GN Syncbot authored
-
Vitaly Buka authored
-
Michał Górny authored
Remove m_inferior_prev_state that's not suitable for multiprocess debugging and that does not seem to be really used at all. The only use of the variable right now is to "prevent" sending the stop reason after attach/launch. However, this code is never actually run since none of the process plugins actually use eStateLaunching or eStateAttaching. Through adding an assert, I've confirmed that it's never hit in any of the LLDB tests or while attaching/launching debugged process via lldb-server and via lldb CLI. Differential Revision: https://reviews.llvm.org/D128878 Sponsored by: The FreeBSD Foundation
-
Hans Wennborg authored
As pointed out on https://reviews.llvm.org/D129571 this seems to be the preferred variable to set.
-
Craig Topper authored
Initial optimization is to convert (i64 (zext (i32 X))) to (i64 (sext (i32 X))) if the dominating condition for the basic block guaranteed the sign bit of X is zero. This frequently occurs in loop preheaders where a signed induction variable that can never be negative has been widened. There will be a dominating check that the 32-bit trip count isn't negative or zero. The check here is not restricted to that specific case though. A i32->i64 sext is cheaper than zext on RV64 without the Zba extension. Later optimizations can often remove the sext from the preheader basic block because the dominating block also needs a sext to evaluate the greater than 0 check. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D129732
-
Tue Ly authored
Add round to nearest integer instructions to fputil. This will be used in sinf implementation https://reviews.llvm.org/D123154 Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D129776
-
Fangrui Song authored
clang 14 removed -gz=zlib-gnu support and ld.lld/llvm-objcopy removed zlib-gnu support recently. Remove lldb support by migrating away from llvm::object::Decompressor::isCompressedELFSection. The API has another user llvm-dwp, so it is not removed in this patch. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D129724
-
Guozhi Wei authored
If an MI will not generate a target instruction, we should not compute its latency. Then we can compute more precise instruction sequence cost, and get better result. Differential Revision: https://reviews.llvm.org/D129615
-
Thomas Raoux authored
This prevents blocking propagation when converting between scalar and vector<1> Differential Revision: https://reviews.llvm.org/D129782
-
Craig Topper authored
I happened to notice a two places where the enum was being pass directly to the bool IsSigned argument of createExtendInst. This was functionally ok since SignExtended in the enum has value of 1, but the code shouldn't rely on that. Using an enum class prevents the enum from being convertible to bool, but does make writing the enum values more verbose. Since we now have to write ExtendKind:: in front of them, I've shortened the names of ZeroExtended and SignExtended. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D129733
-
Nick Desaulniers authored
While testing backports of https://reviews.llvm.org/D129572#inline-1245936 commit 2240d72f ("[X86] initial -mfunction-return=thunk-extern support") I noticed that one of my unit tests mistyped a function attribute. The unit test was intended to test fn attr merging behavior, but with the typo it was not. Small fixup. Reviewed By: aaron.ballman, erichkeane Differential Revision: https://reviews.llvm.org/D129691
-
Erich Keane authored
So callers don't have to. Also, fix a clang-format/use of auto fix in CheckFloatComparisons.
-
Florian Hahn authored
After 675080a4, we always create SCEVs for all operands of a SelectInst. This can cause notable compile-time regressions compared to the recursive algorithm, which only evaluates the operands if the select is in a form we can create a usable expression. This approach adds additional logic to getOperandsToCreate to only queue operands for selects if we will later be able to construct a usable SCEV. Unfortunately this introduces a bit of coupling between actual SCEV construction for selects and getOperandsToCreate, but I am not sure if there are better alternatives to address the regression mentioned for 675080a4. This doesn't have any notable compile-time impact on CTMark. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D129731
-
Fraser Cormack authored
We previously enabled subregister liveness by default when compiling with RVV. This has been shown to cause miscompilations where RVV register operand constraints are not met. A test was added for this in D129639 which explains the issue in more detail. Until this issue is fixed in some way, we should not be enabling subregister liveness unless the user asks for it. Reviewed By: craig.topper, rogfer01, kito-cheng Differential Revision: https://reviews.llvm.org/D129646
-