-
Notifications
You must be signed in to change notification settings - Fork 788
LLVM and SPIRV-LLVM-Translator pulldown (WW40) #2565
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
Merged
Merged
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
Solves https://bugs.llvm.org/show_bug.cgi?id=47420 Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D87988
Add support for EQ predicates with constant operand. In that case, using the constant instead of an unknown expression should always be beneficial.
Add support for expanding the %t filename specifier in LLVM_PROFILE_FILE to the TMPDIR environment variable. This is supported on all platforms. On Darwin, TMPDIR is used to specify a temporary application-specific scratch directory. When testing apps on remote devices, it can be challenging for the host device to determine the correct TMPDIR, so it's helpful to have the runtime do this work. rdar://68524185 Differential Revision: https://reviews.llvm.org/D87332
…CTOR_ELT with GPR scalar. Fixes the neon intrinsics test in the test suite.
This code never actually did anything in the implementation. `mergeDeclAttribute` is declared as `static`, and referenced exactly once in the file: from `Sema::mergeDeclAttributes`. `Sema::mergeDeclAttributes` sets `LocalAMK` to `AMK_None`. If the attribute is `DeprecatedAttr`, `UnavailableAttr`, or `AvailabilityAttr` then the `LocalAMK` is updated. However, because we are dealing with a `SwiftNameDeclAttr` here, `LocalAMK` remains `AMK_None`. This is then passed to the function which will as a result pass the value of `AMK_None == AMK_Override` aka `false`. Simply propagate the value through and erase the dead codepath. Thanks to Aaron Ballman for flagging the use of the availability merge kind here leading to this simplification! Differential Revision: https://reviews.llvm.org/D88263 Reviewed By: Aaron Ballman
This patch adds the xxmfacc, xxmtacc and xxsetaccz instructions to manipulate accumulator registers. It also adds the ACC register class definition for the accumulator registers. Differential Revision: https://reviews.llvm.org/D84847
Normalizing memrefs failed when a caller of symbolic use in a function can not be casted to `CallOp`. This patch avoids the failure by checking the result of the casting. If the caller can not be casted to `CallOp`, it is skipped. Differential Revision: https://reviews.llvm.org/D87746
This fixes a verifier error in the testcase from bug 47619. The stack passed s3 value was widened to 4-bytes, and producing a 4-byte memory access with a < 1 byte result type. We need to either widen the result type or narrow the access size. This copies the code directly from the AMDGPU handling, which narrows the load size. I don't like that every target has to handle this, but this is currently broken on the 11 release branch and this is the simplest fix. This reverts commit 42bfa7c.
…unction" This reverts commit e17f52d. while investigating bot breakage.
For some mysterious reason it doesn't build with clang-cl when compiled as part of the includes in clang's CodeGenAction.cpp (crbug.com/1132292).
Add support for NE predicates with 0 constants. Those can be translated to UMaxExpr(x, 1).
Make the corresponding change that was made for byval in b714120. Like byval, this requires a bulk update of the test IR tests to include the type before this can be mandatory.
After skeleton of the `Parallel Op` is created set the insertion point to start of the block. So that later `CodeGen` can proceed. Note: This patch reflects the work that can be upstreamed from PR(merged) PR: flang-compiler/f18-llvm-project#424 Reviewed By: schweitz, kiranchandramohan Differential Revision: https://reviews.llvm.org/D88221
* Implement rebase opcodes. Rebase opcodes tell dyld where absolute addresses have been encoded in the binary. If the binary is not loaded at its preferred address, dyld has to rebase these addresses by adding an offset to them. * Support `-pie` and use it to test rebase opcodes. This is necessary for absolute address references in dylibs, bundles etc to work. Reviewed By: #lld-macho, gkm Differential Revision: https://reviews.llvm.org/D87199
Not 100% sure but it appears that bundles are almost identical to dylibs, aside from the fact that they do not contain `LC_ID_DYLIB`. ld64's code seems to treat bundles and dylibs identically in most places. Supporting bundles allows us to run e.g. XCTests, as all test suites are compiled into bundles which get dynamically loaded by the `xctest` test runner. Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D87856
Apparently this is used in real programs. I've handled this by reusing the logic we already have for branch (function call) relocations. Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D87852
They operate like Defined symbols but with no associated InputSection. Note that `ld64` seems to treat the weak definition flag like a no-op for absolute symbols, so I have replicated that behavior. Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D87909
This greatly reduces the amount of boilerplate in our tests. Reviewed By: #lld-macho, compnerd Differential Revision: https://reviews.llvm.org/D87960
Reviewed By: #lld-macho, compnerd Differential Revision: https://reviews.llvm.org/D88268
…s EH pad rules Issue Details: In order to support coroutine splitting, any multi-value PHI node in a coroutine is split into multiple blocks with single-value PHI Nodes, which then allows a subsequent transform to generate `reload` instructions as required (i.e., to reload the value if required if the coroutine has been resumed). This causes issues with EH pads (`catchswitch` and `catchpad`) as all pads within a `catchswitch` must have the same unwind destination, but the coroutine splitting logic may modify them to each have a unique unwind destination if there is a PHI node in the unwind `cleanuppad` that is set from values in the `catchswitch` and `cleanuppad` blocks. Fix Details: During splitting, if such a PHI node is detected, then create a "dispatcher" `cleanuppad` as well as the blocks with single-value PHI Nodes: thus the "dispatcher" is the unwind destination and it will detect which predecessor called it and then branch to the appropriate single-value PHI node block, which will then branch back to the original `cleanuppad` block. Reviewed By: GorNishanov, lxfind Differential Revision: https://reviews.llvm.org/D88059
1c5a3c4 updated the variables inserted by Emscripten SjLj lowering to be thread-local, depending on the CoalesceFeaturesAndStripAtomics pass to downgrade them to normal globals if the target features did not support TLS. However, this had the unintended side effect of preventing all non-TLS-supporting objects from being linked into modules with shared memory, because stripping TLS marks an object as thread-unsafe. This patch fixes the problem by only making the SjLj lowering variables thread-local if the target machine supports TLS so that it never introduces new usage of TLS that will be stripped. Since SjLj lowering works on Modules instead of Functions, this required that the WebAssemblyTargetMachine have its feature string updated to reflect the coalesced features collected from all the functions so that a WebAssemblySubtarget can be created without using any particular function. Differential Revision: https://reviews.llvm.org/D88323
Every call to the protected SBAddress constructor and the SetAddress method takes the address of a valid object which means we might as well pass it as a const reference instead of a pointer and drop the null check. Differential revision: https://reviews.llvm.org/D88249
attachments. They would crash the backend, which expects all DISubprograms that are not part of the type system to have a unit field. Clang right before https://reviews.llvm.org/D79967 would generate this kind of broken IR. rdar://problem/69534688 Thanks to Fangrui for fixing an assembler test I had missed! https://reviews.llvm.org/D88270
Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87957
Pulled from D87452, this is a fixed version of the collectBitParts fshl/fshr handling which as @nikic noticed wasn't checking for different providers or had correct bit ordering (which was hid by only testing shift amounts of bitwidth/2). Differential Revision: https://reviews.llvm.org/D88292
Add some comments in LowOverheadLoops and make some lambda variables explicit arguments instead of capturing.
This version includes an small fix allowing function pointers to be unconditionally replaced for now. This reverts commit 4c5e4aa.
…able one."" Looks like there is still another remaining issue: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan/builds/22273/steps/build%20libcxx%2Fmsan/logs/stdio This reverts commit 86a20d9.
Handle the case when all inputs of phi are proven to be non zero. Constants are checked in beginning of this method before check for depth of recursion, so it is a partial case of non-constant phi. Recursion depth is already handled by the function. Reviewers: aqjune, nikic, efriedma Reviewed By: nikic Subscribers: dantrushin, hiraditya, jdoerfert, llvm-commits Differential Revision: https://reviews.llvm.org/D88276
This reverts commit 55c4ff9. Issues were introduced as discussed in https://reviews.llvm.org/D88241 where this change made previous bugs in the linker and BitCodeWriter visible.
OpenCL C 3.0 is a derivative of OpenCL C 2.0 and not OpenCL C++. Run the OpenCL C++ passes for OpenCL 2.1 only, and run similar OpenCL C 2.0 passes for OpenCL C 3.0.
Signed-off-by: Aleksandr Bezzubikov <[email protected]>
Translate global variable if its storage is StorageClassFunction and its name is either llvm.global_ctors or llvm.global_dtors. Apply appending linkage to the global variable. SPV_INTEL_function_pointers extension is required for the translation.
When translator tool is used in toolchain it is possible that it can receive an empty LLVM module as an input, just emit an empty SPIR-V module with Linkage capability in this case.
Header files should only include the minimum required, to keep build times reasonable.
/summary:run |
/summary:run |
AlexeySotkin
approved these changes
Oct 2, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SPIRV-LLVM-Translator part looks good to me.
iclsrc
pushed a commit
that referenced
this pull request
May 23, 2024
Recently, LLVM migrated to new debug format replacing debug intrinsics with so-called records. The DIBuilder api supports both formats now with grace deprecation period for intrinsics. Currently Translator during reverse translation have new format disabled by flag and still supports only old one. Documentation for the migration: https://llvm.org/docs/RemoveDIsDebugInfo.html Original commit: KhronosGroup/SPIRV-LLVM-Translator@50c6c3e6b99462a
kbenzie
pushed a commit
to kbenzie/intel-llvm
that referenced
this pull request
Feb 17, 2025
Redo various urXGetInfo query tests so the first call uses the ASSERT_SUCCESS_OR_OPTIONAL_QUERY macro
Chenyang-L
pushed a commit
that referenced
this pull request
Feb 18, 2025
Redo various urXGetInfo query tests so the first call uses the ASSERT_SUCCESS_OR_OPTIONAL_QUERY macro
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@eb9f7c28e5fe
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@a88d869