merge main into amd-compiler-vkallesh-test#3294
Open
z1-cciauto wants to merge 36 commits into
Open
Conversation
The RISC-V 32 QEMU buildbot is failing due to missing SYS_fcntl, which is needed for fdopendir. Since that syscall is referenced in the shared dir code it's easiest to just disable all the dirent functions for now.
Removes the need for PARTIAL_SOURCES_INTENDED by giving clangDocMarkdown its own directory. Addresses post-merge feedback on llvm#205609.
This fixes cc048e8. Co-authored-by: Google Bazel Bot <google-bazel-bot@google.com>
llvm#206725 (comment) reported warnings on windows builds due to reinterpret_cast: warning C4312: 'reinterpret_cast': conversion from 'unsigned int' to 'void *' of greater size This commit fixes the issue by using ExecutorAddr::toPtr for conversion instead of reinterpret_cast.
This is primarily to ensure consistenct with the new pass manager where the name of the pass is already prolog-epilog, which is more consistent with our existing naming scheme. This is necessary to be able to run existing llc invocations that explicitly specify prolog-epilog under the NewPM automatically. Assisted by Gemini.
Re-exposes LLVM-libc's `__subsf3` as `shared::subsf3` for reuse by compiler-rt's builtins. Stacked change - merge these first: - llvm#200094 - llvm#205669 - llvm#205670 - llvm#205671 - llvm#205672 - llvm#205673 - llvm#205674 - llvm#205675 - llvm#205676 Part of llvm#197824
This removes the separate python bindings CI, which run on the GitHub free runners and take more than one hour to build libclang. The tests are executed instead in the monolithic pipelines, whenever clang would be tested. That only tests whatever python version we set up for that pipeline. This is fine in terms of resources because all the dependencies are built anyway, and the tests themselves take less than one second to run on the free runners.
APInt::concat triggered undefined behavior (invalid shift exponent) when concatenating a zero-width operand with a 64-bit operand on the fast path (combined width <= 64). For example, `I0.concat(I64)` resulted in `U.VAL << 64`, which is UB. Fix by checking for zero-width operands early and returning the other operand. Added regression tests to `APIntTest.cpp`.
On POSIX, backslashes are valid filename characters. Avoid converting them to slashes when computing absolute source paths in LibTooling, since doing so changes paths such as `a\b.cc` into `a/b.cc`. Closes llvm#207396
Add parser and semantics plumbing for configured implicit USE modules, reusing the normal USE-association path so public symbols and common blocks are imported consistently.
…c from riscv-isa-manual. NFC (llvm#207803)
…lvm#207140) addArrayStrideDecorations computed the stride as `getTypeSizeInBits/8` which truncates to 0 for sub-byte element types such as i1 0 strides are disallowed in spec --------- Co-authored-by: Juan Manuel Martinez Caamaño <jmartinezcaamao@gmail.com>
…89569) This PR introduces an x86-64 backend for Lightweight Fault Isolation (LFI), similar to the one being developed for AArch64. LFI is a compiler-based mechanism that enables efficient in-process sandboxing. See the RFC from last fall for details. This PR adds the `x86_64_lfi` target (similar to `aarch64_lfi`), sets up reserved registers, and implements some initial rewrites for system instructions (system calls and TLS accesses). The rewrites are done at the MC level, using the `MCLFIRewriter` infrastructure. I have updated the documentation to describe the x86-64 sandboxing scheme and to list rewrites that will be implemented in future PRs (to keep each individual PR small). For performance and compatibility reasons, the plan is currently to use bundling for maintaining control-flow integrity in the sandbox, which is not yet supported. For now we are setting up the rewrites without using bundling, but we can also use a CFI mechanism based on shadow stack+endbr in order to have something usable while bundling is in progress.
…OfVariableHighBitExtract` (llvm#205148) This PR fixes crash for the following program: ``` define i16 @d(i16 %x, i4 %n) { entry: %highbits = lshr i16 %x, 1 %sub1 = sub i4 0, %n %z1 = zext i4 %sub1 to i16 %shl = shl i16 %highbits, %z1 %sub2 = sub i4 0, %n %z2 = zext i4 %sub2 to i16 %ashr = ashr i16 %shl, %z2 ret i16 %ashr } ``` when running `opt -passes=instcombine prog.ll -S`. Assisted-by: Codex
FileSpec now returns llvm::StringRef instead of ConstString. As a result, we don't need to use GetCString to get the raw string. Remove it to fix build failure. Fixes: f9b5264 (llvm#206802)
…m#207639) Add dedicated assembler diagnostics for the RV32 GPR pair operands used by Zclsd compressed load/store pair instructions. After the RISC-V asm parser started reporting multiple near-miss reasons, these operands still fell back to the generic "invalid operand for instruction" note. Give them explicit diagnostic types and messages so invalid register pairs report the expected pair constraints.
…lvm#207678) Fix a malformed multiline RUN line. --------- Co-authored-by: Fangrui Song <i@maskray.me>
…eIndex (llvm#207699) Also drops the unused `converted` parameter from getMemrefIndices. The internal workings of these functions were not easy to understand for me so I worked with Claude to document with examples. Hopefully, that makes the code easier to read. I reviewed the docs and corrected some obvious hallucinations produced by the agent. Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Silence MSVC warning C4125 by separating the string literals when an octal escape sequence is followed by a decimal char.
…cOS (llvm#207876) Driver/clang-offload-bundler-zstd.c isn't supported on Darwin, but neglected to list the macosx target.
…07314) The pabdsumu/pabdsumau instructions compute the sum of absolute differences of packed unsigned bytes; pabdsumau also accumulates into rd. Add the llvm.riscv.pabdsumu and pabdsumau intrinsics. A single-GPR source is selected directly to pabdsumu.b/pabdsumau.b with isel patterns. A 64-bit GPRPair source on RV32 has no paired instruction, so it is split during lowering into two v4i8 halves: reduce the low half (folding in rd when accumulating), then accumulate the high half into that partial sum. Cases with a target-illegal result are handled in ReplaceNodeResults: RV64, i32 result: reduce at i64 and truncate (a 32-bit source is zero-extended first). RV32, i64 result: reduce each half with pabdsumu.b and combine the partial sums with a widening add (waddu/waddau).
…lvm#205900) [[nodiscard]] should be applied to functions where discarding the return value is most likely a correctness issue. - https://libcxx.llvm.org/CodingGuidelines.html - https://wg21.link/range.adjacent.transform Towards llvm#172124 --------- Co-authored-by: Hristo Hristov <zingam@outlook.com>
[[nodiscard]] should be applied to functions where discarding the return value is most likely a correctness issue. - https://libcxx.llvm.org/CodingGuidelines.html - https://wg21.link/range.join Towards llvm#172124
…#201326) Signed-off-by: Kushal Pal <kushpal@qti.qualcomm.com>
This adds a basic cost for i128 multiply instructions, which has a basic cost of 4 and scales n^2 with bitsize.
Addressed issues in the Dir class identified during review: * Safety: Added bounds and validation checks in Dir::read to prevent out-of-bounds reads on corrupted input. * Performance: Aligned the internal buffer to struct dirent to prevent unaligned memory access, and increased the buffer size to 4096 to reduce syscall overhead. * Style: Replaced the system <dirent.h> include with a new proxy header (struct_dirent.h) to avoid system dependencies, and fixed relative includes. * Refactoring: Moved platform-specific record length access to a platform helper (platform_dir_reclen). * CMake: Updated dependencies for the dir target. Assisted-by: Automated tooling, human reviewed.
…3469) Use CMake INTERFACE libraries to express dependencies and common build options. Using INTERFACE libraries was proposed here: llvm#171610 (comment) Since such libraries can also propagate build options use this instead of `target_compile_options`. Unfortunately this does not mean we can get rid of `flang_module_target` because it also needs to set the module output directory. --------- Co-authored-by: Tarun Prabhu <tarunprabhu@gmail.com>
vkallesh
approved these changes
Jul 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Test merge PR from llvm/llvm-project to amd-compiler-vkallesh-test
This PR merges a specific commit from upstream llvm/llvm-project into the amd-compiler-vkallesh-test branch.
Note: Using specific commit instead of latest main to avoid upstream build breaks.
This is a test PR for validating the auto-merge workflow changes. Manual approval by vkallesh is expected to trigger the auto-merge workflow.
Merge branch:
merge-main-into-amd-compiler-vkallesh-test-20260709Source: llvm/llvm-project commit c6cadf9 (LLVM revision ~587102)
Target: ROCm/llvm-project amd-compiler-vkallesh-test