https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116410
--- Comment #4 from Xionghu Luo (luoxhu at gcc dot gnu.org) <yinyuefengyi at
gmail dot com> ---
Gimple code:
<bb 33> [local count: 19864224]:
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs] = { 4, 2, 1, 1 };
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 16B] = { 1, 1,
1, 1 };
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 32B] = { 1, 1,
1, 1 };
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 48B] = { 1, 1,
1, 1 };
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 64B] = { 1, 1,
1, 1 };
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 80B] = { 1, 1,
1, 1 };
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 96B] = { 1, 1,
1, 1 };
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 112B] = { 1, 1,
1, 1 };
MEM <vector(4) unsigned int> [(unsigned int *)&baseLLfreqs + 128B] = { 1, 1,
1, 1 };
_49 = optPtr_83(D)->litLengthFreq;
__builtin_memcpy (_49, &baseLLfreqs, 144); // <=
ivtmp.401_149 = (unsigned long) &baseLLfreqs;
_146 = ivtmp.401_149 + 144;
Obviously, the __builtin_memcpy is not optimized as expected when built with
fat-lto-objects.