Set the i386 default for MD generator partitions to 6:6:1.
The longest objects in the bootstrap are gimple-match-[1..10].o,
with per-file user times of:
user 0m12,114s
user 0m6,214s
user 0m6,737s
user 0m8,234s
user 0m5,765s
user 0m5,221s
user 0m5,732s
user 0m5,221s
user 0m5,645s
user 0m7,951s
while generic-match-[1..10].o compile in:
user 0m5,875s
user 0m5,186s
user 0m4,132s
user 0m4,367s
user 0m4,464s
user 0m4,705s
user 0m4,340s
user 0m5,942s
user 0m4,469s
user 0m4,236s
With the default set to 6:6:1, compile times become:
insn-emit-[1..6].o:
user 0m4,766s
user 0m4,799s
user 0m4,829s
user 0m4,825s
user 0m4,766s
user 0m4,781s
insn-recog-[1..6].o:
user 0m4,782s
user 0m4,741s
user 0m4,988s
user 0m4,814s
user 0m4,918s
user 0m4,898s
insn-attrtab-1.o:
user 0m3,076s
which are all comparable to the generic-match-[1..10].o compile times.
Raising the partition counts further would shorten objects that are
already off the critical path, while each additional partition
repeats the per-file preamble, adding to overall bootstrap CPU time.
gcc/ChangeLog:
* config.gcc (i[34567]86-*-* | x86_64-*-*): Set
default_md_generator_partitions target default to 6:6:1.
Bootstrapped on x86_64-pc-linux-gnu.
BTW: It looks like 6:6:1 should be the default for all targets. i386
has one of the largest insn-*.cc sources and measurements confirm that
aarch64 default is also optimal for i386.
Uros.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index ef117b293df..d651c3aae37 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -443,6 +443,7 @@ fido-*-*)
;;
i[34567]86-*-* | x86_64-*-*)
cpu_type=i386
+ default_md_generator_partitions=6:6:1
c_target_objs="i386-c.o"
cxx_target_objs="i386-c.o"
d_target_objs="i386-d.o"