-
Notifications
You must be signed in to change notification settings - Fork 802
LLVM and SPIRV-LLVM-Translator pulldown (WW52 2025) #20968
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
iclsrc
wants to merge
1,812
commits into
sycl
Choose a base branch
from
llvmspirv_pulldown
base: sycl
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
+287,610
−274,253
Conversation
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
CONFLICT (content): Merge conflict in clang/lib/Driver/ToolChains/HIPAMD.cpp
…… (#171647) …pt (#169559)" This reverts commit 4da31b6.
This obsoletes the FIXME in #85686, but it doesn't address the issue where moves from CCR will still be emitted on 68000. However, all such moves will now be emitted as physreg copies, and the issue can thus be handled there in a followup change.
CONFLICT (modify/delete): .github/workflows/bazel-checks.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/bazel-checks.yml left in tree. CONFLICT (modify/delete): .github/workflows/build-ci-container-tooling.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/build-ci-container-tooling.yml left in tree. CONFLICT (modify/delete): .github/workflows/build-ci-container-windows.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/build-ci-container-windows.yml left in tree. CONFLICT (modify/delete): .github/workflows/build-ci-container.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/build-ci-container.yml left in tree. CONFLICT (modify/delete): .github/workflows/build-metrics-container.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/build-metrics-container.yml left in tree. CONFLICT (modify/delete): .github/workflows/check-ci.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/check-ci.yml left in tree. CONFLICT (modify/delete): .github/workflows/ci-post-commit-analyzer.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/ci-post-commit-analyzer.yml left in tree. CONFLICT (modify/delete): .github/workflows/commit-access-greeter.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/commit-access-greeter.yml left in tree. CONFLICT (modify/delete): .github/workflows/commit-access-review.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/commit-access-review.yml left in tree. CONFLICT (modify/delete): .github/workflows/docs.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/docs.yml left in tree. CONFLICT (content): Merge conflict in .github/workflows/email-check.yaml CONFLICT (modify/delete): .github/workflows/gha-codeql.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/gha-codeql.yml left in tree. CONFLICT (modify/delete): .github/workflows/hlsl-test-all.yaml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/hlsl-test-all.yaml left in tree. CONFLICT (modify/delete): .github/workflows/issue-release-workflow.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/issue-release-workflow.yml left in tree. CONFLICT (modify/delete): .github/workflows/issue-subscriber.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/issue-subscriber.yml left in tree. CONFLICT (modify/delete): .github/workflows/issue-write.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/issue-write.yml left in tree. CONFLICT (modify/delete): .github/workflows/libc-fullbuild-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libc-fullbuild-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/libc-overlay-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libc-overlay-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/libclang-abi-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libclang-abi-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/libclang-python-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libclang-python-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/libcxx-build-and-test.yaml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libcxx-build-and-test.yaml left in tree. CONFLICT (modify/delete): .github/workflows/libcxx-build-containers.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libcxx-build-containers.yml left in tree. CONFLICT (modify/delete): .github/workflows/libcxx-check-generated-files.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libcxx-check-generated-files.yml left in tree. CONFLICT (modify/delete): .github/workflows/libcxx-run-benchmarks.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/libcxx-run-benchmarks.yml left in tree. CONFLICT (modify/delete): .github/workflows/llvm-abi-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/llvm-abi-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/merged-prs.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/merged-prs.yml left in tree. CONFLICT (modify/delete): .github/workflows/mlir-spirv-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/mlir-spirv-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/new-prs.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/new-prs.yml left in tree. CONFLICT (content): Merge conflict in .github/workflows/pr-code-format.yml CONFLICT (modify/delete): .github/workflows/pr-code-lint.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/pr-code-lint.yml left in tree. CONFLICT (modify/delete): .github/workflows/pr-request-release-note.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/pr-request-release-note.yml left in tree. CONFLICT (modify/delete): .github/workflows/pr-subscriber.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/pr-subscriber.yml left in tree. CONFLICT (modify/delete): .github/workflows/premerge.yaml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/premerge.yaml left in tree. CONFLICT (modify/delete): .github/workflows/release-asset-audit.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-asset-audit.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-binaries.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-binaries.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-documentation.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-documentation.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-doxygen.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-doxygen.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-lit.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-lit.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-sources.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-sources.yml left in tree. CONFLICT (modify/delete): .github/workflows/release-tasks.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/release-tasks.yml left in tree. CONFLICT (content): Merge conflict in .github/workflows/scorecard.yml CONFLICT (modify/delete): .github/workflows/spirv-tests.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/spirv-tests.yml left in tree. CONFLICT (modify/delete): .github/workflows/test-unprivileged-download-artifact.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/test-unprivileged-download-artifact.yml left in tree. CONFLICT (modify/delete): .github/workflows/version-check.yml deleted in 765c420 and modified in HEAD. Version HEAD of .github/workflows/version-check.yml left in tree.
/usr/bin/ld: tools/clang/unittests/Analysis/Scalable/CMakeFiles/ClangSca lableAnalysisFrameworkTests.dir/ASTEntityMappingTest.cpp.o: undefined re ference to symbol '_ZN5clang7ASTUnitD1Ev
…167754) This adjusts the behavior of running dap_server.py directly to better support the current state of development. A few parts of the 'main' body were stale and not functional. These improvements include: * Instead of the custom tracefile / replay file parsing logic, I adjusted the replay helper to handle parsing lldb-dap log files created with the `LLDBDAP_LOG` env variable, allowing you to more easily run a failing test like: `python3 lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py --adapter lldb-dap -r lldb-test-build.noindex/tools/lldb-dap/console/TestDAP_console.test_custom_escape_prefix/dap.txt` * Migrated argument parsing to `argparse`, that is in all verisons of py3+ and has a few improvements over `optparse`. * Corrected the existing arguments and updated `run_vscode` > `run_adapter`. You can use this for simple debugging like: `xcrun python3 lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py --adapter=lldb-dap --adapter-arg='--pre-init-command' --adapter-arg 'help' --program a.out --init-command 'help'`
Adds a flag COMPILER_RT_PROFILE_BAREMETAL, which disables the parts of the profile runtime which require a filesystem or malloc. This minimal library only requires string.h from the C library. This is useful for profiling or code coverage of baremetal images, which don't have filesystem APIs, and might not have malloc configured (or have limited heap space). Expected usage: - Add code to your project to call `__llvm_profile_get_size_for_buffer()` and `__llvm_profile_write_buffer()` to write the profile data to a buffer in memory, and then copy that data off the device using target-specific tools. - If you're using a linker script, set up your linker script to map the profiling and coverage input sections to corresponding output sections with the same name, and mark them KEEP. `__llvm_covfun` and `__llvm_covmap` are non-allocatable, `__llvm_prf_names` is read-only allocatable, and `__llvm_prf_cnts` and `__llvm_prf_data` are read-write allocatable. - The resulting data is in same format as the non-baremetal profiles. There's some room for improvement here in the future for doing profiling and code coverage for baremetal. If we revised the profiling format, and introduced some additional host tooling, we could move some of the metadata into non-allocated sections, and construct the profraw file on the host. But this patch is sufficient for some use-cases.
Use the same twiden format for PseudoSF_VSETTM and PseudoSF_VSETTK as other XSfmm pseudos. Though I don't think we use the operand from these instructions.
… peelToTurnInvariantLoadsDereferenceable. (#171547) llvm.assume intrinsics have the mayWriteToMemory property, but won't prevent the load from becoming dereferenceable.
Add documentation for variadic `isa<>` in the LLVM Programmer's Manual.
…ge (#171705) As it is done in `flang-rt/lib/runtime/edit-input.cpp`, emit a runtime error message when trying to raise IEEE exception on the device. `MapException` and `feraiseexcept` are used in the lowering of the nearest intrinsic even on the device.
…utable in popen.cpp" (#171706) Reverts llvm/llvm-project#171622 Co-authored-by: Andrew Haberlandt <[email protected]>
Previously we would hit an assertion failure when a relocation represented by a PAuth ifunc required a GOT and the addend of a relocation did not fit into the immediate operand of an ADD instruction. Fix it by extracting a function for materializing arbitrary addends and using it to materialize the addend. Reviewers: fmayer, hvdijk Pull Request: llvm/llvm-project#171707
Previously we would assert when a ValueTypeByHwMode was missing a case for the current mode, now we report an error instead. Interestingly this error only ocurrs when the DAG patterns use RegClassByHwMode, but not normal RegisterClass instances. Found while I added RegClassByHwMode to RISC-V and was getting an assertion due to `XLenFVT`/`XLenVecI32VT` not having an entry for the default mode. Reviewed By: arsenm Pull Request: llvm/llvm-project#171254
Previously, we were emitting a broken AliasPatternCond array, outputting `MyTarget::RegClassByHwModeRegClassID` which does not exist. Instead, we now add a new predicate and pass the RegClassByHwMode index as the value argument. Pull Request: llvm/llvm-project#171264
Reviewers: jvoung Reviewed By: jvoung Pull Request: llvm/llvm-project#170947
printFlags takes care of inserting the correct amount of spaces, depending on whether there are flags to print or not.
This pass implements the OpenACC loop tiling transformation for acc.loop
operations that have the tile clause (OpenACC 3.4 spec, section 2.9.8).
The tile clause specifies that the iterations of the associated loops
should be divided into tiles (rectangular blocks). The pass transforms a
single or nested acc.loop with tile clauses into a structure of "tile
loops" (iterating over tiles) containing "element loops" (iterating
within tiles).
For example, tiling a 2-level nested loop with tile(T1, T2):
```
// Before tiling:
acc.loop tile(T1, T2) control(%i, %j) = ...
// After tiling:
acc.loop control(%i) step (s1*T1) { // tile loop 1
acc.loop control(%j) step (s2*T2) { // tile loop 2
acc.loop control(%ii) = (%i) to (min(ub1, %i+s1*T1)) {
acc.loop control(%jj) = (%j) to (min(ub2, %j+s2*T2)) {
// loop body using %ii, %jj
}
}
}
}
```
Key features:
- Handles constant tile sizes and wildcard tile sizes ('*') which use a
configurable default tile size
- Properly handles collapsed loops with tile counts exceeding collapse
count by uncollapsing loops before tiling
- Distributes gang/worker/vector attributes appropriately: gang -> tile
loops, vector -> element loops
- Validates that tile size types are not wider than loop IV types
- Emits optimization remarks for tiling decisions
Three test files are added:
- acc-loop-tiling.mlir: Tests single and nested loop tiling with
constant tile sizes, unknown tile sizes (*), and loops with collapse
attributes
- acc-loop-tiling-invalid.mlir: Tests error diagnostic when tile size
type is wider than the loop IV type
- acc-loop-tiling-remarks.mlir: Tests optimization remarks emitted for
tiling decisions including default tile size selection
Co-authored-by: Vijay Kandiah <[email protected]>
Reviewers: jvoung Reviewed By: jvoung Pull Request: llvm/llvm-project#170950
llvm/llvm-project#169131 Should fix: ASTEntityMappingTest.cpp.o: undefined reference to symbol '_ZN4llvm3omp27isAllowedClauseForDirectiveENS0_9DirectiveENS0_6ClauseEj' https://lab.llvm.org/buildbot/#/builders/10/builds/18851
That hopefully concludes the initial upstreaming. Reviewers: jvoung Reviewed By: jvoung Pull Request: llvm/llvm-project#170951
… (#169779) SelectionDAG uses the DAGCombiner to fold a load followed by a sext to a load and sext instruction. For example, in x86 we will see that ``` %1 = load i32, ptr @GloBaRR #dbg_value(i32 %1, !43, !DIExpression(), !52) %2 = sext i32 %1 to i64, !dbg !53 ``` is converted to: ``` %0:gr64_nosp = MOVSX64rm32 $rip, 1, $noreg, @GloBaRR, $noreg, debug-instr-number 1, debug-location !51 DBG_VALUE $noreg, $noreg, !"Idx", !DIExpression(), debug-location !52 ``` The `DBG_VALUE` needs to be transferred correctly to the new combined instruction, and it needs to be appended with a `DIExpression` which contains a `DW_OP_LLVM_fragment`, describing that the lower bits of the virtual register contain the value. This patch fixes the above described problem.
This patch fixes issues introduced by llvm/llvm-project#171491 when running tests in CI. The shell tests expect certain characters when matching diagnostics. With llvm/llvm-project#171491, those characters can either be Unicode specific characters or their ASCII equivalent. The tests were always expecting the ASCII version. This patch fixes this by using a regex to match one or the other.
If the 'counted_by' value is signed, we will incorrectly allow accesses when the value is negative. This has obvious bad effects as it will allow accessing a huge swath of unallocated memory. Also clarify and rearrange the parameters to make them more perspicuous. Fixes: #170987.
ptr are also in addr space (1).
Due to address space differences.
Similar changes to tests in 61881c3
Update a test for llvm-project commit `5bc7b9d462f0 ("[llvm][dwarfdump]
Print the name (if available) of entities referenced by DW_AT_import
(#171859)", 2025-12-12)`.
Original commit:
KhronosGroup/SPIRV-LLVM-Translator@fedea4be9304a
47aaec4 to
e8faabe
Compare
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.
LLVM: llvm/llvm-project@b123b70
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@199d2e027d650a5