https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128070
yuki.tanaka at defaultcase dot de changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords|alias |
--- Comment #2 from yuki.tanaka at defaultcase dot de ---
This started being slow somewhere between GCC 11.5 and 12.1.
$ for v in 11 12; do
~/build-$v/gcc/xgcc -B ~/build-$v/gcc -mcpu=cortex-m3 -mthumb -O3
-ftime-report -DN_COPIES=50 -S cunrolli-hog.c -o /dev/null
done
Time variable usr sys wall
GGC
phase setup : 0.00 ( 0%) 0.01 ( 1%) 0.02 ( 0%)
2753k ( 2%)
phase parsing : 0.17 ( 3%) 0.50 ( 53%) 0.69 ( 9%)
19M ( 12%)
phase opt and generate : 6.20 ( 97%) 0.43 ( 46%) 6.63 ( 90%)
142M ( 87%)
phase last asm : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
0 ( 0%)
callgraph construction : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
4239k ( 3%)
callgraph functions expansion : 6.05 ( 95%) 0.40 ( 43%) 6.46 ( 88%)
118M ( 72%)
callgraph ipa passes : 0.05 ( 1%) 0.01 ( 1%) 0.06 ( 1%)
1377k ( 1%)
cfg cleanup : 0.04 ( 1%) 0.01 ( 1%) 0.02 ( 0%)
1974k ( 1%)
trivially dead code : 0.04 ( 1%) 0.00 ( 0%) 0.03 ( 0%)
0 ( 0%)
df scan insns : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
96 ( 0%)
df reaching defs : 0.04 ( 1%) 0.00 ( 0%) 0.05 ( 1%)
0 ( 0%)
df live regs : 0.07 ( 1%) 0.00 ( 0%) 0.08 ( 1%)
0 ( 0%)
df live&initialized regs : 0.04 ( 1%) 0.00 ( 0%) 0.00 ( 0%)
0 ( 0%)
df use-def / def-use chains : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
0 ( 0%)
df reg dead/unused notes : 0.05 ( 1%) 0.01 ( 1%) 0.02 ( 0%)
558k ( 0%)
register information : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
alias analysis : 0.07 ( 1%) 0.00 ( 0%) 0.05 ( 1%)
3336k ( 2%)
alias stmt walking : 2.84 ( 45%) 0.11 ( 12%) 2.96 ( 40%)
8241k ( 5%)
rebuild jump labels : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
preprocessing : 0.04 ( 1%) 0.10 ( 11%) 0.26 ( 4%)
3896k ( 2%)
lexical analysis : 0.09 ( 1%) 0.18 ( 19%) 0.22 ( 3%)
0 ( 0%)
parser (global) : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
125k ( 0%)
parser function body : 0.04 ( 1%) 0.22 ( 23%) 0.20 ( 3%)
15M ( 9%)
integration : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
96k ( 0%)
tree gimplify : 0.05 ( 1%) 0.01 ( 1%) 0.05 ( 1%)
10M ( 6%)
tree eh : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
tree CFG construction : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
7511k ( 4%)
tree CFG cleanup : 0.02 ( 0%) 0.01 ( 1%) 0.02 ( 0%)
256k ( 0%)
tree VRP : 0.07 ( 1%) 0.00 ( 0%) 0.08 ( 1%)
2228k ( 1%)
tree Early VRP : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
238k ( 0%)
tree copy propagation : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
840 ( 0%)
tree PTA : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
184 ( 0%)
tree SSA rewrite : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
448 ( 0%)
tree SSA incremental : 0.04 ( 1%) 0.01 ( 1%) 0.06 ( 1%)
1875k ( 1%)
tree operand scan : 0.01 ( 0%) 0.01 ( 1%) 0.05 ( 1%)
1958k ( 1%)
dominator optimization : 0.06 ( 1%) 0.00 ( 0%) 0.06 ( 1%)
1836k ( 1%)
backwards jump threading : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
0 ( 0%)
isolate eroneous paths : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
0 ( 0%)
tree CCP : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
34k ( 0%)
tree reassociation : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
111k ( 0%)
tree PRE : 0.13 ( 2%) 0.00 ( 0%) 0.15 ( 2%)
1280k ( 1%)
tree FRE : 0.12 ( 2%) 0.00 ( 0%) 0.07 ( 1%)
1022k ( 1%)
tree forward propagate : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
306k ( 0%)
tree conservative DCE : 0.02 ( 0%) 0.01 ( 1%) 0.02 ( 0%)
0 ( 0%)
tree aggressive DCE : 0.00 ( 0%) 0.01 ( 1%) 0.01 ( 0%)
3216 ( 0%)
tree DSE : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
0 ( 0%)
tree loop invariant motion : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
90k ( 0%)
tree loop interchange : 0.04 ( 1%) 0.00 ( 0%) 0.04 ( 1%)
3490k ( 2%)
tree loop unswitching : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
33k ( 0%)
unroll and jam : 0.03 ( 0%) 0.00 ( 0%) 0.04 ( 1%)
1778k ( 1%)
complete unrolling : 0.09 ( 1%) 0.04 ( 4%) 0.11 ( 1%)
6893k ( 4%)
tree vectorization : 0.28 ( 4%) 0.01 ( 1%) 0.30 ( 4%)
23M ( 14%)
tree slp vectorization : 0.05 ( 1%) 0.00 ( 0%) 0.05 ( 1%)
4144k ( 2%)
tree loop distribution : 0.13 ( 2%) 0.00 ( 0%) 0.13 ( 2%)
6172k ( 4%)
tree iv optimization : 0.22 ( 3%) 0.01 ( 1%) 0.23 ( 3%)
15M ( 9%)
predictive commoning : 0.05 ( 1%) 0.01 ( 1%) 0.06 ( 1%)
2833k ( 2%)
tree strlen optimization : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
900k ( 1%)
dominance frontiers : 0.00 ( 0%) 0.01 ( 1%) 0.00 ( 0%)
0 ( 0%)
dominance computation : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
0 ( 0%)
expand vars : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
871k ( 1%)
expand : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
4043k ( 2%)
lower subreg : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
1063k ( 1%)
forward prop : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
143k ( 0%)
CSE : 0.08 ( 1%) 0.00 ( 0%) 0.08 ( 1%)
413k ( 0%)
dead code elimination : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
dead store elim1 : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
749k ( 0%)
dead store elim2 : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
701k ( 0%)
loop init : 0.03 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
2091k ( 1%)
loop invariant motion : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
loop doloop : 0.02 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
128k ( 0%)
CPROP : 0.04 ( 1%) 0.00 ( 0%) 0.04 ( 1%)
1717k ( 1%)
PRE : 0.14 ( 2%) 0.02 ( 2%) 0.15 ( 2%)
18k ( 0%)
CSE 2 : 0.04 ( 1%) 0.00 ( 0%) 0.05 ( 1%)
148k ( 0%)
combiner : 0.19 ( 3%) 0.03 ( 3%) 0.22 ( 3%)
4830k ( 3%)
scheduling : 0.18 ( 3%) 0.00 ( 0%) 0.18 ( 2%)
1476k ( 1%)
integrated RA : 0.28 ( 4%) 0.09 ( 10%) 0.38 ( 5%)
6806k ( 4%)
LRA non-specific : 0.03 ( 0%) 0.00 ( 0%) 0.05 ( 1%)
69k ( 0%)
LRA virtuals elimination : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
19k ( 0%)
LRA reload inheritance : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
6688 ( 0%)
LRA create live ranges : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
6072 ( 0%)
LRA hard reg assignment : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
LRA rematerialization : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
reload : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
24 ( 0%)
reload CSE regs : 0.04 ( 1%) 0.00 ( 0%) 0.06 ( 1%)
1233k ( 1%)
load CSE after reload : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
8448 ( 0%)
peephole 2 : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
47k ( 0%)
hard reg cprop : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
scheduling 2 : 0.05 ( 1%) 0.00 ( 0%) 0.06 ( 1%)
79k ( 0%)
machine dep reorg : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
97k ( 0%)
shorten branches : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
0 ( 0%)
final : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
48 ( 0%)
initialize rtl : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
7744 ( 0%)
tree loop if-conversion : 0.05 ( 1%) 0.02 ( 2%) 0.07 ( 1%)
4316k ( 3%)
rest of compilation : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
44k ( 0%)
TOTAL : 6.38 0.94 7.34
164M
Time variable usr sys wall
GGC
phase setup : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
2755k ( 1%)
phase parsing : 0.22 ( 0%) 0.46 ( 31%) 0.68 ( 1%)
19M ( 6%)
phase opt and generate : 67.88 (100%) 1.03 ( 69%) 68.92 ( 99%)
293M ( 93%)
garbage collection : 0.03 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
0 ( 0%)
callgraph construction : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
4239k ( 1%)
callgraph functions expansion : 67.72 ( 99%) 1.01 ( 68%) 68.74 ( 99%)
270M ( 86%)
callgraph ipa passes : 0.07 ( 0%) 0.00 ( 0%) 0.08 ( 0%)
1305k ( 0%)
ipa modref : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
2504 ( 0%)
cfg cleanup : 0.02 ( 0%) 0.01 ( 1%) 0.04 ( 0%)
1960k ( 1%)
trivially dead code : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
0 ( 0%)
df scan insns : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
96 ( 0%)
df reaching defs : 0.06 ( 0%) 0.01 ( 1%) 0.04 ( 0%)
0 ( 0%)
df live regs : 0.06 ( 0%) 0.00 ( 0%) 0.04 ( 0%)
0 ( 0%)
df live&initialized regs : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
0 ( 0%)
df reg dead/unused notes : 0.05 ( 0%) 0.00 ( 0%) 0.08 ( 0%)
571k ( 0%)
register information : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
0 ( 0%)
alias analysis : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
3336k ( 1%)
alias stmt walking : 56.93 ( 84%) 0.41 ( 28%) 57.60 ( 83%)
10M ( 3%)
preprocessing : 0.07 ( 0%) 0.09 ( 6%) 0.16 ( 0%)
3896k ( 1%)
lexical analysis : 0.08 ( 0%) 0.13 ( 9%) 0.29 ( 0%)
0 ( 0%)
parser function body : 0.07 ( 0%) 0.24 ( 16%) 0.23 ( 0%)
15M ( 5%)
tree gimplify : 0.05 ( 0%) 0.01 ( 1%) 0.05 ( 0%)
10M ( 3%)
tree eh : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
tree CFG construction : 0.02 ( 0%) 0.01 ( 1%) 0.03 ( 0%)
7511k ( 2%)
tree CFG cleanup : 0.02 ( 0%) 0.01 ( 1%) 0.01 ( 0%)
256k ( 0%)
tree VRP : 0.13 ( 0%) 0.01 ( 1%) 0.14 ( 0%)
677k ( 0%)
tree Early VRP : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
162k ( 0%)
tree PTA : 0.03 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
208 ( 0%)
tree SSA incremental : 0.03 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
1731k ( 1%)
tree operand scan : 0.01 ( 0%) 0.02 ( 1%) 0.04 ( 0%)
1846k ( 1%)
dominator optimization : 0.04 ( 0%) 0.01 ( 1%) 0.06 ( 0%)
564k ( 0%)
backwards jump threading : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
4800 ( 0%)
tree CCP : 0.04 ( 0%) 0.01 ( 1%) 0.03 ( 0%)
71k ( 0%)
tree split crit edges : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
55k ( 0%)
tree reassociation : 0.01 ( 0%) 0.01 ( 1%) 0.00 ( 0%)
111k ( 0%)
tree PRE : 7.30 ( 11%) 0.34 ( 23%) 7.38 ( 11%)
110M ( 35%)
tree FRE : 0.10 ( 0%) 0.00 ( 0%) 0.11 ( 0%)
1140k ( 0%)
tree code sinking : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
21k ( 0%)
tree forward propagate : 0.03 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
186k ( 0%)
tree conservative DCE : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
tree DSE : 0.02 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
16M ( 5%)
tree loop invariant motion : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
90k ( 0%)
tree loop interchange : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%)
3490k ( 1%)
tree canonical iv : 0.00 ( 0%) 0.01 ( 1%) 0.01 ( 0%)
34k ( 0%)
tree loop unswitching : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
61k ( 0%)
unroll and jam : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%)
1779k ( 1%)
complete unrolling : 0.11 ( 0%) 0.04 ( 3%) 0.15 ( 0%)
6669k ( 2%)
tree vectorization : 0.55 ( 1%) 0.04 ( 3%) 0.58 ( 1%)
41M ( 13%)
tree slp vectorization : 0.16 ( 0%) 0.02 ( 1%) 0.18 ( 0%)
13M ( 4%)
tree loop distribution : 0.12 ( 0%) 0.00 ( 0%) 0.12 ( 0%)
6172k ( 2%)
tree iv optimization : 0.22 ( 0%) 0.01 ( 1%) 0.24 ( 0%)
15M ( 5%)
predictive commoning : 0.08 ( 0%) 0.00 ( 0%) 0.08 ( 0%)
3140k ( 1%)
tree copy headers : 0.00 ( 0%) 0.01 ( 1%) 0.03 ( 0%)
207k ( 0%)
tree strlen optimization : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
1072 ( 0%)
dominance computation : 0.01 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
0 ( 0%)
out of ssa : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
0 ( 0%)
expand vars : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
863k ( 0%)
expand : 0.01 ( 0%) 0.01 ( 1%) 0.02 ( 0%)
4056k ( 1%)
lower subreg : 0.00 ( 0%) 0.01 ( 1%) 0.01 ( 0%)
1062k ( 0%)
forward prop : 0.01 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
142k ( 0%)
CSE : 0.09 ( 0%) 0.00 ( 0%) 0.10 ( 0%)
413k ( 0%)
dead code elimination : 0.02 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
0 ( 0%)
dead store elim1 : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
754k ( 0%)
dead store elim2 : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
710k ( 0%)
loop init : 0.00 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
2171k ( 1%)
loop versioning : 0.01 ( 0%) 0.01 ( 1%) 0.01 ( 0%)
0 ( 0%)
loop invariant motion : 0.00 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
0 ( 0%)
loop doloop : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
97k ( 0%)
CPROP : 0.05 ( 0%) 0.00 ( 0%) 0.04 ( 0%)
1710k ( 1%)
PRE : 0.15 ( 0%) 0.00 ( 0%) 0.15 ( 0%)
18k ( 0%)
auto inc dec : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
424 ( 0%)
CSE 2 : 0.04 ( 0%) 0.00 ( 0%) 0.04 ( 0%)
120k ( 0%)
branch prediction : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
126k ( 0%)
combiner : 0.20 ( 0%) 0.00 ( 0%) 0.19 ( 0%)
4779k ( 1%)
scheduling : 0.16 ( 0%) 0.00 ( 0%) 0.16 ( 0%)
1472k ( 0%)
integrated RA : 0.24 ( 0%) 0.00 ( 0%) 0.23 ( 0%)
6794k ( 2%)
LRA non-specific : 0.03 ( 0%) 0.00 ( 0%) 0.06 ( 0%)
80k ( 0%)
LRA virtuals elimination : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
29k ( 0%)
LRA reload inheritance : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
5840 ( 0%)
LRA create live ranges : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
5424 ( 0%)
LRA hard reg assignment : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
0 ( 0%)
reload : 0.01 ( 0%) 0.00 ( 0%) 0.00 ( 0%)
24 ( 0%)
reload CSE regs : 0.05 ( 0%) 0.00 ( 0%) 0.05 ( 0%)
1243k ( 0%)
load CSE after reload : 0.02 ( 0%) 0.00 ( 0%) 0.02 ( 0%)
7264 ( 0%)
hard reg cprop : 0.00 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
96 ( 0%)
scheduling 2 : 0.07 ( 0%) 0.00 ( 0%) 0.07 ( 0%)
87k ( 0%)
machine dep reorg : 0.01 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
105k ( 0%)
final : 0.02 ( 0%) 0.00 ( 0%) 0.01 ( 0%)
48 ( 0%)
tree loop if-conversion : 0.07 ( 0%) 0.01 ( 1%) 0.12 ( 0%)
4305k ( 1%)
rest of compilation : 0.05 ( 0%) 0.00 ( 0%) 0.03 ( 0%)
122k ( 0%)
TOTAL : 68.10 1.49 69.61
315M
$ for v in 11 12; do ~/build-$v/gcc/xgcc -v; done
Using built-in specs.
COLLECT_GCC=build-11/gcc/xgcc
Target: arm-none-eabi
Configured with: gcc-11/configure --target=arm-none-eabi
--with-multilib-list=rmprofile --enable-languages=c --without-headers
--with-newlib --enable-checking=release
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 11.5.0 (GCC)
Using built-in specs.
COLLECT_GCC=build-12/gcc/xgcc
Target: arm-none-eabi
Configured with: gcc-12/configure --target=arm-none-eabi
--with-multilib-list=rmprofile --enable-languages=c --without-headers
--with-newlib --enable-checking=release
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 12.1.0 (GCC)