-
Notifications
You must be signed in to change notification settings - Fork 116
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
Deduplicate constant data tables #2849
Deduplicate constant data tables #2849
Conversation
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.
This misses the include of <unordered_map>
.
Also, we should clear the map when entering ::run
.
Nit: Aren't we preferring llvm::DenseMap
?
Test summary for commit 829e85fCTS tests (Failed: 0/138443)
Ubuntu navi3x, SrdcvkUbuntu navi2x, Srdcvk |
The header file |
829e85f
to
87d0d6d
Compare
Test summary for commit 87d0d6dCTS tests (Failed: 0/138443)
Ubuntu navi3x, SrdcvkUbuntu navi2x, Srdcvk |
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.
One nit, otherwise LGTM
A constant data is assigned to different variables several times, then we will create multiple globalVariables, which causes the constant data is repeated in the .rodata section with different names. Like this: .rodata (size = 1344 bytes) __unnamed_3 (offset = 0 size = 448 hash = 0xB186021131D03E38) (offset = 0 size = 0 hash = 0x071E967D705FB008) 0:3F1FE7C0 3F0B1A4C 3F53F141 00000000 BE095BFF BF71E3A8 3F745048 00000000 32:3EC6833C BEDE978D 3F1520B0 00000000 3DF8572A BE45729B 3E693F29 00000000 ... __unnamed_2 (offset = 448 size = 448 hash = 0xB186021131D03E38) 448:3F1FE7C0 3F0B1A4C 3F53F141 00000000 BE095BFF BF71E3A8 3F745048 00000000 480:3EC6833C BEDE978D 3F1520B0 00000000 3DF8572A BE45729B 3E693F29 00000000 ... __unnamed_1 (offset = 896 size = 448 hash = 0xB186021131D03E38) 896:3F1FE7C0 3F0B1A4C 3F53F141 00000000 BE095BFF BF71E3A8 3F745048 00000000 928:3EC6833C BEDE978D 3F1520B0 00000000 3DF8572A BE45729B 3E693F29 00000000 ... For the globalVariable that the initialization values are the same, we should treat them as the same variable.
87d0d6d
to
f646e54
Compare
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.
Thanks
Test summary for commit f646e54CTS tests (Failed: 0/138443)
Ubuntu navi3x, SrdcvkUbuntu navi2x, Srdcvk |
A constant data is assigned to different variables several times, then we will create multiple globalVariables, which causes the constant data is repeated in the .rodata section with different names. Like this:
.rodata (size = 1344 bytes)
__unnamed_3 (offset = 0 size = 448 hash = 0xB186021131D03E38)
(offset = 0 size = 0 hash = 0x071E967D705FB008)
0:3F1FE7C0 3F0B1A4C 3F53F141 00000000 BE095BFF BF71E3A8 3F745048 00000000
32:3EC6833C BEDE978D 3F1520B0 00000000 3DF8572A BE45729B 3E693F29 00000000
...
__unnamed_2 (offset = 448 size = 448 hash = 0xB186021131D03E38)
448:3F1FE7C0 3F0B1A4C 3F53F141 00000000 BE095BFF BF71E3A8 3F745048 00000000
480:3EC6833C BEDE978D 3F1520B0 00000000 3DF8572A BE45729B 3E693F29 00000000
...
__unnamed_1 (offset = 896 size = 448 hash = 0xB186021131D03E38)
896:3F1FE7C0 3F0B1A4C 3F53F141 00000000 BE095BFF BF71E3A8 3F745048 00000000
928:3EC6833C BEDE978D 3F1520B0 00000000 3DF8572A BE45729B 3E693F29 00000000
...
For the globalVariable that the initialization values are the same, we should treat them as the same variable.