https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65780
--- Comment #48 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Stupachenko Evgeny from comment #47) > The patch caused significant regressions (see below) on spec2000 INT > benchmarks compiled with options “-fPIE -pie -O2 -ffast-math -mfpmath=sse > -m32 -march=corei7-avx” or “-fPIE -pie -O2 -ffast-math -mfpmath=sse -m32 > -march=slm”. > > Sandybridge: > 164.gzip 1635.0000 1602.0000 -2.01% > 197.parser 2159.0000 2117.0000 -1.94% > 254.gap 2909.0000 2886.0000 -0.79% > 256.bzip2 2232.0000 2154.0000 -3.49% > > Silvermont: > 164.gzip 964.0000 945.0000 -1.97% > 197.parser 951.0000 940.0000 -1.15% > 254.gap 1328.0000 1296.0000 -2.40% > 256.bzip2 952.0000 898.0000 -5.67% That is the price to pay for correctness. If you want to avoid that penalty, I'd say change ld.bfd as well as ld.gold on i?86 to use COPY relocations for PIEs like x86_64 has been changed some time ago, then when configured against improved linker and with small patch to gcc you can recover not just that cost, but some more on top of that.