-
Notifications
You must be signed in to change notification settings - Fork 224
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
[NFC] Optimize adding of decorations #1233
Merged
Merged
Conversation
This file contains 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
Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
AlexeySotkin
reviewed
Oct 7, 2021
AlexeySotkin
approved these changes
Oct 8, 2021
Fznamznon
commented
Oct 8, 2021
|
||
protected: | ||
SPIRVDecorateSet Decorations; | ||
SPIRVDecorateVec Decorations; |
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.
The patch changes only name here. I think the problem that clang-tidy complains about is out of scope of this patch.
AlexeySachkov
added
the
hacktoberfest-accepted
Temporary label to mark merged PRs so they count towards Hacktoberfest challenge.
label
Oct 8, 2021
MrSidims
approved these changes
Oct 11, 2021
svenvh
approved these changes
Oct 11, 2021
Quetzonarch
pushed a commit
to Quetzonarch/SPIRV-LLVM-Translator
that referenced
this pull request
Jul 13, 2022
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
vmaksimo
added a commit
to vmaksimo/SPIRV-LLVM-Translator
that referenced
this pull request
Sep 1, 2022
…ronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]>
vmaksimo
pushed a commit
to vmaksimo/SPIRV-LLVM-Translator
that referenced
this pull request
Sep 1, 2022
…lvm-spirv perf.. '"xmain"' -> '"xmain-cand"' (1 commits) CONFLICT (content): Merge conflict in test/transcoding/annotate_attribute.ll CONFLICT (content): Merge conflict in test/transcoding/NoSignedUnsignedWrap.ll commit 7b7a193 Author: Alexey Sotkin <[email protected]> Date: Tue Oct 26 11:12:43 2021 +0300 Cherry pick a couple of commits to improve llvm-spirv performance (KhronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]>
vmaksimo
pushed a commit
to vmaksimo/SPIRV-LLVM-Translator
that referenced
this pull request
Sep 1, 2022
…o improve llvm-spirv perf.. '"xmain"' -> '"xmain-cand"' (1 commits) (KhronosGroup#48) CONFLICT (content): Merge conflict in test/transcoding/annotate_attribute.ll CONFLICT (content): Merge conflict in test/transcoding/NoSignedUnsignedWrap.ll commit 7b7a193 Author: Alexey Sotkin <[email protected]> Date: Tue Oct 26 11:12:43 2021 +0300 Cherry pick a couple of commits to improve llvm-spirv performance (KhronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]> Co-authored-by: iclsrc <[email protected]> Co-authored-by: Artem Gindinson <[email protected]>
vmaksimo
pushed a commit
to vmaksimo/SPIRV-LLVM-Translator
that referenced
this pull request
Sep 1, 2022
…commits to improve llvm-spirv perf.. '"xmain"' -> '"xmain-cand"' (1 commits) (KhronosGroup#48) CONFLICT (content): Merge conflict in test/transcoding/annotate_attribute.ll CONFLICT (content): Merge conflict in test/transcoding/NoSignedUnsignedWrap.ll commit 7b7a193 Author: Alexey Sotkin <[email protected]> Date: Tue Oct 26 11:12:43 2021 +0300 Cherry pick a couple of commits to improve llvm-spirv performance (KhronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]> Co-authored-by: iclsrc <[email protected]> Co-authored-by: Artem Gindinson <[email protected]>
vmaksimo
pushed a commit
to vmaksimo/SPIRV-LLVM-Translator
that referenced
this pull request
Sep 1, 2022
…lvm-spirv perf.. '"xmain"' -> '"xmain-web"' (7 commits) CONFLICT (content): Merge conflict in test/transcoding/annotate_attribute.ll CONFLICT (content): Merge conflict in test/transcoding/NoSignedUnsignedWrap.ll commit 7b7a193 Author: Alexey Sotkin <[email protected]> Date: Tue Oct 26 11:12:43 2021 +0300 Cherry pick a couple of commits to improve llvm-spirv performance (KhronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]>
vmaksimo
pushed a commit
to vmaksimo/SPIRV-LLVM-Translator
that referenced
this pull request
Sep 1, 2022
…o improve llvm-spirv perf.. '"xmain"' -> '"xmain-web"' (7 commits) (KhronosGroup#49) * Resolve of merge (conflict) 7b7a193 Cherry pick a couple of commits to improve llvm-spirv perf.. '"xmain"' -> '"xmain-web"' (7 commits) CONFLICT (content): Merge conflict in test/transcoding/annotate_attribute.ll CONFLICT (content): Merge conflict in test/transcoding/NoSignedUnsignedWrap.ll commit 7b7a193 Author: Alexey Sotkin <[email protected]> Date: Tue Oct 26 11:12:43 2021 +0300 Cherry pick a couple of commits to improve llvm-spirv performance (KhronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]> * Resolve of merge (conflict) 7b7a193 Cherry pick a couple of commits to improve llvm-spirv perf.. '"xmain"' -> '"xmain-web"' (7 commits) CONFLICT (content): Merge conflict in test/transcoding/annotate_attribute.ll CONFLICT (content): Merge conflict in test/transcoding/NoSignedUnsignedWrap.ll commit 7b7a193 Author: Alexey Sotkin <[email protected]> Date: Tue Oct 26 11:12:43 2021 +0300 Cherry pick a couple of commits to improve llvm-spirv performance (KhronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]> Co-authored-by: iclsrc <[email protected]>
vmaksimo
pushed a commit
to vmaksimo/SPIRV-LLVM-Translator
that referenced
this pull request
Sep 1, 2022
…commits to improve llvm-spirv perf.. '"xmain"' -> '"xmain-web"' (7 commits) (KhronosGroup#49) * Resolve of merge (conflict) 7b7a193 Cherry pick a couple of commits to improve llvm-spirv perf.. '"xmain"' -> '"xmain-web"' (7 commits) CONFLICT (content): Merge conflict in test/transcoding/annotate_attribute.ll CONFLICT (content): Merge conflict in test/transcoding/NoSignedUnsignedWrap.ll commit 7b7a193 Author: Alexey Sotkin <[email protected]> Date: Tue Oct 26 11:12:43 2021 +0300 Cherry pick a couple of commits to improve llvm-spirv performance (KhronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]> * Resolve of merge (conflict) 7b7a193 Cherry pick a couple of commits to improve llvm-spirv perf.. '"xmain"' -> '"xmain-web"' (7 commits) CONFLICT (content): Merge conflict in test/transcoding/annotate_attribute.ll CONFLICT (content): Merge conflict in test/transcoding/NoSignedUnsignedWrap.ll commit 7b7a193 Author: Alexey Sotkin <[email protected]> Date: Tue Oct 26 11:12:43 2021 +0300 Cherry pick a couple of commits to improve llvm-spirv performance (KhronosGroup#46) * [NFC] Optimize adding of decorations (KhronosGroup#1233) Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. * [NFC] Optimize OCLUtil::toString usage in checkError function (KhronosGroup#1229) `toString` function is called to convert an LLVM IR instruction to a string, mostly in order to include it into an error message in case LLVM IR is invalid. The problem is that this function is called even when IR is valid which significantly slows translator's work. This patch reworks `toString` usage in `checkError` method to generate a string only in case when LLVM IR is invalid. Co-authored-by: Mariya Podchishchaeva <[email protected]> Co-authored-by: Viktoria Maximova <[email protected]> Co-authored-by: iclsrc <[email protected]>
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 27, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 27, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 27, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 27, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 27, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 27, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 27, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 28, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 28, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
MrSidims
pushed a commit
that referenced
this pull request
Mar 28, 2023
Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. Co-authored-by: Mariya Podchishchaeva <[email protected]>
MrSidims
pushed a commit
that referenced
this pull request
Mar 28, 2023
Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. Co-authored-by: Mariya Podchishchaeva <[email protected]>
MrSidims
pushed a commit
that referenced
this pull request
Mar 28, 2023
Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. Co-authored-by: Mariya Podchishchaeva <[email protected]>
MrSidims
pushed a commit
that referenced
this pull request
Mar 28, 2023
Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient. Co-authored-by: Mariya Podchishchaeva <[email protected]>
aratajew
pushed a commit
to aratajew/SPIRV-LLVM-Translator
that referenced
this pull request
Mar 28, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
MrSidims
pushed a commit
that referenced
this pull request
Mar 29, 2023
* [NFC] Optimize adding of decorations Use std::undordered_set instead of std::multiset with custom comparator. It is a bit unclear why std::multiset was required since there is no order requirement for OpDecorate instructions in SPIR-V spec, in addition old data structure was highly inefficient.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
hacktoberfest-accepted
Temporary label to mark merged PRs so they count towards Hacktoberfest challenge.
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.
Use std::vector instead of std::multiset with custom comparator.
It is a bit unclear why std::multiset was required since there is no
order requirement for OpDecorate instructions in SPIR-V spec, in addition old
data structure was highly inefficient.