[Bug lto/83375] partitioner partitions static arrays with label references
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 3 13:57:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83375
--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
> I thought there was already a bug for this, but can't find it right now.
>
You maybe confused that with the issue abould global asm statements that go to
a random partition and cause issues with LTO?
In this case, it's not work for IPA comdat, because this is pure C code.
cgraph situation:
f/2 (f) @0x7ff1b1d73000
Type: function definition analyzed
Visibility: externally_visible prevailing_def_ironly public
References: data.1957/4 (read)x/0 (read)x/0 (write)y/1 (read)y/1 (write)x/0
(read)x/0 (write)y/1 (read)y/1 (write)
Referring:
Read from file: /tmp/ccRhP0dr.o
First run: 0
Function flags: count: 1073741826 (estimated locally)
Called by: main/3 (1073741825 (estimated locally),1.00 per call)
Calls:
data.1957/4 (data) @0x7ff1b1d71200
Type: variable definition analyzed
Visibility: prevailing_def_ironly
References:
Referring: f/2 (read)
Read from file: /tmp/ccRhP0dr.o
Availability: not-ready
Varpool flags: initialized
I suggest to extend LTO partitioning to find all functions with a computed
goto. And for these, put simply all static variables into a same partition. I
expect computed goto as quite rare feature. More fine approach would be to
investigate DECL_INITIAL for LABELs.
Honza what do you think?
More information about the Gcc-bugs
mailing list