- Oct 11, 2023
-
-
Kazu Hirata authored
-
Kazu Hirata authored
The last template parameter of llvm::support::endian::{read,write} defaults to unaligned, so we can drop that at call sites. -
Kazu Hirata authored
Identified with misc-unused-using-decls.
-
luamfb authored
Fix issue https://github.com/llvm/llvm-project/issues/66990
-
Jonas Devlieghere authored
For LLVM_DIAGNOSTIC_DIR we want to create a subdirectory while for DSYMUTIL_REPRODUCER_PATH we want to use the directory specified. The latter makes writing a test a whole lot easier. Keep both to support both scenarios.
-
Philip Reames authored
This reverts commit b5ff71e2. As described in https://github.com/llvm/llvm-project/issues/68730, this appears to have exposed an existing liveness issue. Revert to green until we can figure out how to address the root cause. Note: This was not a clean revert. I ended up doing it by hand.
-
Adrian Prantl authored
This reverts commit 606f89ab while investigating bot failures.
-
Pete Lawrence authored
The `po` alias now matches the behavior of the `expression` command when the it can apply a Fix-It to an expression. Modifications - Add has `m_fixed_expression` to the `CommandObjectDWIMPrint` class a `protected` member that stores the post Fix-It expression, just like the `CommandObjectExpression` class. - Converted messages to present tense. - Add test cases that confirms a Fix-It for a C++ expression for both `po` and `expressions` rdar://115317419 Co-authored-by:
Pete Lawrence <plawrence@apple.com>
-
Thurston Dang authored
A recent change to ubsan (https://github.com/llvm/llvm-project/commit/792674400f6f04a074a3827349ed0e2ac10067f6) exposed an unaligned load in MachOReader (see https://lab.llvm.org/buildbot/#/builders/85/builds/19482 for an example). This patch fixes it by dropping the alignment.
-
Aviad Cohen authored
-
serge-sans-paille authored
In multi threaded application, it is possible for one thread to terminate the program while another is flushing profile information. We setup a signal mask to delay SIGKILL so that we can safely flush the profile. This patch setups the mask earlier: it reduces the window during which a SIGKILL can end the computation prematurely. This fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1850940 , where a profiled firefox was encountering several: LLVM Profile Error: Failed to write file "default_*.profraw": Broken pipe Co-authored-by:
serge-sans-paille <sguelton@mozilla.com>
-
Piotr Zegar authored
Update documentation.
-
Chengji Yao authored
This is the 1st PR of [Mesh sharding RFC](https://discourse.llvm.org/t/open-mlir-meeting-9-28-2023-rfc-sharding-framework-design-for-device-mesh/73695), includes Includes: - mesh.cluster op - mesh.shard op (the mesh.annotate op in the RFC slides, the name is modified a bit from @stellaraccident 's advice, which I think might be a bit more concise) - MeshSharding attribute
-
Balaji V. Iyer authored
This commit causes the following issue with sanitizers: `include/c++/v1/__debug_utils/strict_weak_ordering_check.h:52: assertion !__comp(*(__first + __b), *(__first + __a)) failed: Your comparator is not a valid strict-weak ordering` probably due to an invalid sort(). Revert "[MLIR][Transforms] Fix Mem2Reg removal order to respect dominance (#68687)" This reverts commit be81f42b.
-
James Y Knight authored
Previously, libcxx forced all strings created during constant evaluation to point to allocated memory. That was done due to implementation difficultites, but it turns out not to be necessary. This patch permits the use of SSO strings during constant evaluation, and also simplifies the implementation. This does have a downside in terms of enabling users to accidentally write non-portable code, however, which I've documented in UsingLibcxx.rst. In particular, whether `constinit std::string x = "...";` will successfully compile now depends on whether the string is smaller than the SSO capacity -- in libc++, up to 22 bytes on 64-bit platforms, and up to 10 bytes on 32-bit platforms. By comparison, libstdc++ and MSVC have an SSO capacity of 15 bytes, except that in libstdc++, constant-initialized strings cannot be used as function-locals because the object contains a pointer to itself. Closes #68434
-
Nitin John Raj authored
We lower G_PTR_ADD to G_ADD before selection. We choose to do this here and not post-legalization because G_PTR_ADD can still be combined with other instructions during selection.
-
Nitin John Raj authored
We use tablegen patterns to select for G_ICMP. There are existing SelectionDAG patterns for selecting G_LOAD, G_STORE and G_ZEXTLOAD with XLenVT type data. We introduce GIAddrRegImm to successfully import those patterns. For pointer and i32 loads and stores, we introduce new patterns, since these are not legal types in SelectionDAG.
-
Nitin John Raj authored
Calls to variadic functions do not seem to require any special handling.
-
LLVM GN Syncbot authored
-
Konstantin Varlamov authored
To allow for a smoother transition, keep the safe mode working as is in the LLVM 18 release (the first release that aims to make hardening available), then deprecate it in LLVM 19.
-
JP Lehr authored
We observe intermittent failures of that test and need some time to investigate. Hence, for now, we disable it.
-
Louis Dionne authored
We do not define anything beyond the C Library's limits.h, so it shouldn't be needed. This removes the need for a GCC-specific workaround, see [1]. [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107795 Differential Revision: https://reviews.llvm.org/D138384
-
Joseph Huber authored
Summary: The implementation of `assert` has an if statement so that only the first thread in the warp prints the assertion. On modern NVPTX architecture, this can be printed out of order with the abort call. This would lead to only a portion of the message being printed and then exiting the program. By adding a mandatory warp sync we force the full string to be printed before we continue to the abort.
-
Sergei Barannikov authored
There are no 64-bit variants of these ALU / SETHI instructions in V9. Remove these instruction definitions and add patterns to match DAG nodes to the generic instructions defined in SparcInstrInfo.td. This is not strictly NFC because of the changes in `2011-01-11-FrameAddr.ll` test. The reason is that Sparc delay slot filler pass handled ADDrr but not ADDXrr, which are now the same instruction.
-
Jonas Devlieghere authored
Rename DSYMUTIL_REPRODUCER_PATH to LLVM_DIAGNOSTIC_DIR as the latter is more generic and already set in our downstream build.
-
Valentin Clement authored
-
Valentin Clement (バレンタイン クレメン) authored
Add support for assumed shape arrays in lowering of the copy region of the firstprivate recipe. Information is passed in block arguments as it is done for the reduction recipe.
-
Florian Hahn authored
Extend the logic in addInfoForInductions to support decrementing inductions with a step of -1. Fixes #64881.
-
Sergey Kachkov authored
In some cases clobbering store can be safely skipped if it can only must or no alias with memory location and it writes the same value. This patch supports simple case when the value from memory location was loaded in the same basic block before the store and there are no modifications between them.
-
Sergey Kachkov authored
-
spupyrev authored
CDSort function reordering outperforms the existing default heuristic ( hfsort/C^3) in terms of the performance of generated binaries while being (almost) as fast. Thus, the suggestion is to change the default. The speedup is up to 1.5% perf for large front-end binaries, and can be moderate/neutral for "small" benchmarks. High-level **perf impact** on two selected binaries: clang-10 binary (built with LTO+AutoFDO/CSSPGO): wins on top of C^3 in [0.3%..0.8%] rocksDB-8 binary (built with LTO+CSSPGO): wins on top of C^3 in [0.8%..1.5%] More detailed measurements on the clang binary is at [here](https://reviews.llvm.org/D152834#4445042)
-
- Oct 10, 2023
-
-
Alex Bradbury authored
Refer to Zcmp rather than Zca. Also, this pass will only modify POP instructions (replacing with POPRET if possible).
-
Alex Bradbury authored
None of the Zc* extensions are experimental any more, so the comment was out of date.
-
Alex Bradbury authored
The file no longer contains any extensions that are still experimental.
-
Mitch Phillips authored
Integrating MTE globals on Android revealed a lot of cases where libraries are built as both archives and DSOs, and they're linked into fully static and dynamic executables respectively. MTE globals doesn't work for fully static executables. They need a dynamic loader to process the special R_AARCH64_RELATIVE relocation semantics with the encoded offset. Fully static executables that had out-of-bounds derived symbols (like 'int* foo_end = foo[16]') crash under MTE globals w/ static executables. So, LLD in its current form simply errors out when you try and compile a fully static executable that has a single MTE global variable in it. It seems like a much better idea to simply have LLD not do the special work for MTE globals in fully static contexts, and to drop any unnecessary metadata. This means that you can build archives with MTE globals and link them into both fully-static and dynamic executables.
-
chuongg3 authored
Legalize bigger types for i8 and i16 vector types for G_VECREDUCE_ADD
-
Amir Bishara authored
-lowering tosa reduce operations to linalg.reduce op which indicates explicit reduce operation. -the linalg reduce op doesn't have iterator types or indexing maps instead it has a reduction dimension which would provide the necessary information.
-
Krzysztof Drewniak authored
Per discussion on https://github.com/llvm/llvm-project/pull/68453 , the make_buffer_rsrc intrinsic was incorrectly marked noclobber. This commit fixes the issue.
-
Alexander Yermolovich authored
Right now DWARFContext for DWO/DWP that is created is not thread safe. Changed it so that thread safety is inherited from the main binary DWARFContext.
-
Guillaume Chatelet authored
The `release` flag is misleading and its semantics are not well defined. Originally this was meant to allow for different `LIBC_NAMESPACE` depending on whether the code was considered stabled and released or unstable. It appears that we may have a canary environment that is neither released or dev. As a consequence we move the `LIBC_NAMESPACE` definition to its own file and each environment can override this file with whatever makes sense.
-