https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102943

--- Comment #20 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
With attachment 51726 and current trunk, the present damage is 22% for the
ltrans105 unit, which AFAICT, is the worst offender.  This is much better than
the original 44%, but still not ideal.

After some more poking, it looks more like a ranger issue than a threader
issue, so I'll write some notes on how to reproduce for the SPEC challenged
(ahem, me).

I have the following in my config/myconfig.cfg file to avoid LD_LIBRARY_PATH
magic and to save all the build temporary files, since I'm LTO impaired ;-)

default:
BASEDIR = /home/aldyh/bld/mycompiler/install
LDFLAGS = -Wl,-rpath=/usr/lib/gcc/x86_64-redhat-linux/11/
-L/usr/lib/gcc/x86_64-redhat-linux/11/
...
...
default=base:
OPTIMIZE    = -Ofast -flto=20 -march=native -ftime-report -fno-checking
-save-temps -v
CXXOPTIMIZE  = -fpermissive
FOPTIMIZE    = -std=legacy

$ runcpu --config=myconfig -a build -D --noreportable -I -T base -i test  -n 1
521.wrf_r

Then I hunt down some make.wrf_r.out file which has the lto1 magic for the
ltrans105 unit:

/some/dir/lto1 [lots-of-flags] -ftime-report -fno-checking -fltrans
./wrf_r.ltrans105.o -o ./wrf_r.ltrans105.ltrans.s

After which, I can re-run lto1 from the directory with all the LTO/.o files
(the one with the make.wrf_r.out directory).

For the record, I hate the SPEC build system :).

Reply via email to