public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "unlvsur at live dot com" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/98364] New: C++20 module binary bloat Date: Thu, 17 Dec 2020 23:43:40 +0000 [thread overview] Message-ID: <bug-98364-4@http.gcc.gnu.org/bugzilla/> (raw) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98364 Bug ID: 98364 Summary: C++20 module binary bloat Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: unlvsur at live dot com Target Milestone: --- the module will generate _ZGIW5helloEv which is dead code. There is no way to remove them. naive binary without module: #include<cstdio> int main() { puts("Hello World\n"); } Disassembly of section .text: 0000000000401040 <main>: 401040: 48 83 ec 08 sub $0x8,%rsp 401044: bf 04 20 40 00 mov $0x402004,%edi 401049: e8 e2 ff ff ff callq 401030 <puts@plt> 40104e: 31 c0 xor %eax,%eax 401050: 48 83 c4 08 add $0x8,%rsp 401054: c3 retq 401055: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) 40105c: 00 00 00 40105f: 90 nop 0000000000401060 <set_fast_math>: 401060: f3 0f 1e fa endbr64 401064: 0f ae 5c 24 fc stmxcsr -0x4(%rsp) 401069: 81 4c 24 fc 40 80 00 orl $0x8040,-0x4(%rsp) 401070: 00 401071: 0f ae 54 24 fc ldmxcsr -0x4(%rsp) 401076: c3 retq 401077: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) 40107e: 00 00 module binary: 0000000000401050 <main>: 401050: 48 83 ec 08 sub $0x8,%rsp 401054: bf 04 20 40 00 mov $0x402004,%edi 401059: e8 d2 ff ff ff callq 401030 <puts@plt> 40105e: 31 c0 xor %eax,%eax 401060: 48 83 c4 08 add $0x8,%rsp 401064: c3 retq 401065: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1) 40106c: 00 00 00 00 0000000000401070 <_GLOBAL__sub_I_main>: 401070: e9 0b 00 00 00 jmpq 401080 <_ZGIW5helloEv> 401075: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) 40107c: 00 00 00 40107f: 90 nop 0000000000401080 <_ZGIW5helloEv>: 401080: 80 3d b2 2f 00 00 00 cmpb $0x0,0x2fb2(%rip) # 404039 <_ZZ13_ZGIW5helloEvE9__in_chrg> 401087: 75 07 jne 401090 <_ZGIW5helloEv+0x10> 401089: c6 05 a9 2f 00 00 01 movb $0x1,0x2fa9(%rip) # 404039 <_ZZ13_ZGIW5helloEvE9__in_chrg> 401090: c3 retq 401091: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) 401098: 00 00 00 40109b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 00000000004010a0 <set_fast_math>: 4010a0: f3 0f 1e fa endbr64 4010a4: 0f ae 5c 24 fc stmxcsr -0x4(%rsp) 4010a9: 81 4c 24 fc 40 80 00 orl $0x8040,-0x4(%rsp) 4010b0: 00 4010b1: 0f ae 54 24 fc ldmxcsr -0x4(%rsp) 4010b6: c3 retq 4010b7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) 4010be: 00 00
next reply other threads:[~2020-12-17 23:43 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-17 23:43 unlvsur at live dot com [this message] 2020-12-18 13:40 ` [Bug c++/98364] C++20 module global constructor emission nathan at gcc dot gnu.org 2020-12-21 18:41 ` nathan at gcc dot gnu.org 2020-12-21 18:44 ` unlvsur at live dot com 2020-12-21 18:44 ` unlvsur at live dot com 2020-12-21 18:45 ` unlvsur at live dot com 2020-12-21 18:51 ` unlvsur at live dot com 2020-12-21 18:53 ` unlvsur at live dot com 2022-01-01 5:48 ` [Bug c++/98364] [modules] unnneded global constructors are emitted for a module pinskia at gcc dot gnu.org 2024-03-07 20:09 ` ppalka at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-98364-4@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).