Zack Weinberg <zack at codesourcery dot com> writes:
I'd be happy to do this test, but there is no file attached to your
message.
[Devang sent me the test case offline.]
With a hot cache:
$ for i in 1 2 3; do /usr/bin/time ./cc1obj.vanilla -O0 -quiet dt.mi;
done
0:01.32 - 1.26u, 0.05s, 98% - 1198/5404
0:01.35 - 1.31u, 0.04s, 99% - 1198/5404
0:01.32 - 1.28u, 0.04s, 99% - 1198/5404
$ for i in 1 2 3; do /usr/bin/time ./cc1obj.c-ids-2 -O0 -quiet dt.mi;
done
0:00.76 - 0.73u, 0.04s, 100% - 1190/5226
0:00.78 - 0.73u, 0.04s, 98% - 1190/5226
0:00.78 - 0.71u, 0.06s, 98% - 1190/5226
I make that a 42% speedup. At -O2 the figures are similar:
$ for i in 1 2 3; do /usr/bin/time ./cc1obj.vanilla -O2 -quiet dt.mi;
done
0:01.37 - 1.32u, 0.03s, 98% - 1290/5464
0:01.34 - 1.27u, 0.06s, 98% - 1290/5465
0:01.36 - 1.30u, 0.06s, 99% - 1290/5465
$ for i in 1 2 3; do /usr/bin/time ./cc1obj.c-ids-2 -O2 -quiet dt.mi;
done
0:00.83 - 0.76u, 0.05s, 97% - 1278/5285
0:00.79 - 0.74u, 0.05s, 98% - 1278/5284
0:00.79 - 0.74u, 0.04s, 98% - 1278/5284
(interesting to see just how *little* time is spent in the optimizer,
eh?)
These are native i686-linux compilers, with mainline default checking
settings. I had to make a trivial change to the test case to get it
to compile without error (s/"r0"/"eax"/ in two asm statements' clobber
lists).
zw