-
Notifications
You must be signed in to change notification settings - Fork 768
[SYCL][CUDA] Workaround for the problem with memory reordering #1334
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
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
Currently there is a bug in LLVM for PTX target. PTX target specific intrinsics like llvm.nvvm.barrier0 are treated like regular LLVM intrinsics in Globals AA. As a result, there are situations when Globals AA produces a result that barrier intrinsic doesn't modify internal globals. This allows llvm transformations like GVN to perform illegal memory reordering. This is a workaround while permanent fix is not implemented in LLVM project. Signed-off-by: Artur Gainullin <artur.gainullin@intel.com>
bader
approved these changes
Mar 20, 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.
@againull, I suggest you push it to llorg.
codeplay-sycl
pushed a commit
to codeplaysoftware/intel-llvm-mirror
that referenced
this pull request
Oct 21, 2021
This patch attempts to generalise this workaround: intel#1334
AlexeySachkov
pushed a commit
that referenced
this pull request
Aug 2, 2023
…y point interfaces (PR #1334) (#10623) This PR pulls in the following PR from upstream Khronos SPIRV-LLVM-Translator repo: KhronosGroup/SPIRV-LLVM-Translator#1334 ` This is a patch to expand the collection of entry point interfaces. In SPIR-V 1.4 and later OpEntryPoint must list all global variables in the interface. ` In addition, a couple of minor changes have been added to sync with latest code. This patch addresses #9958 Updated the following tests to sync with upstream as well: llvm-spirv/test/extensions/INTEL/SPV_INTEL_inline_assembly/inline_asm_clobbers.cl llvm-spirv/test/extensions/INTEL/SPV_INTEL_inline_assembly/inline_asm_constraints.cl Thanks --------- Signed-off-by: Arvind Sudarsanam <arvind.sudarsanam@intel.com>
mdtoguchi
pushed a commit
to mdtoguchi/llvm
that referenced
this pull request
Oct 18, 2023
…y point interfaces (PR intel#1334) (intel#10623) This PR pulls in the following PR from upstream Khronos SPIRV-LLVM-Translator repo: KhronosGroup/SPIRV-LLVM-Translator#1334 ` This is a patch to expand the collection of entry point interfaces. In SPIR-V 1.4 and later OpEntryPoint must list all global variables in the interface. ` In addition, a couple of minor changes have been added to sync with latest code. This patch addresses intel#9958 Updated the following tests to sync with upstream as well: llvm-spirv/test/extensions/INTEL/SPV_INTEL_inline_assembly/inline_asm_clobbers.cl llvm-spirv/test/extensions/INTEL/SPV_INTEL_inline_assembly/inline_asm_constraints.cl Thanks --------- Signed-off-by: Arvind Sudarsanam <arvind.sudarsanam@intel.com>
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.
Currently there is a bug in LLVM for PTX target. PTX target specific
intrinsics like llvm.nvvm.barrier0 are treated like regular LLVM
intrinsics in Globals AA. As a result, there are situations when Globals
AA produces a result that barrier intrinsic doesn't modify internal
globals. This allows llvm transformations like GVN to perform illegal
memory reordering.
This is a workaround while permanent fix is not implemented in LLVM
project.
Signed-off-by: Artur Gainullin artur.gainullin@intel.com