[Bug tree-optimization/119389] [15 Regression] tree FRE very slow when dealing with big switch statements
pheeck at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Mar 20 12:58:14 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119389
--- Comment #1 from Filip Kastl <pheeck at gcc dot gnu.org> ---
This is how it looks on r15-6120-g56946c801a7cf3a831a11870b7e11ba08bf9bd87
> gcc bugreport.c -O1 -c -ftime-report
Time variable wall GGC
phase setup : 0.00 ( 0%) 1898k ( 2%)
phase parsing : 0.09 ( 2%) 13M ( 15%)
phase opt and generate : 4.07 ( 98%) 72M ( 83%)
callgraph construction : 0.01 ( 0%) 4096k ( 5%)
callgraph functions expansion : 3.15 ( 76%) 60M ( 69%)
callgraph ipa passes : 0.88 ( 21%) 2275k ( 3%)
ipa function summary : 0.01 ( 0%) 6712 ( 0%)
ipa modref : 0.13 ( 3%) 400 ( 0%)
cfg construction : 0.01 ( 0%) 3204k ( 4%)
cfg cleanup : 0.12 ( 3%) 2554k ( 3%)
trivially dead code : 0.02 ( 0%) 0 ( 0%)
df scan insns : 0.01 ( 0%) 48 ( 0%)
df live regs : 0.11 ( 3%) 0 ( 0%)
df live&initialized regs : 0.04 ( 1%) 0 ( 0%)
df reg dead/unused notes : 0.08 ( 2%) 1347k ( 2%)
register information : 0.01 ( 0%) 0 ( 0%)
alias analysis : 0.04 ( 1%) 1281k ( 1%)
rebuild jump labels : 0.01 ( 0%) 0 ( 0%)
preprocessing : 0.02 ( 1%) 4774k ( 5%)
lexical analysis : 0.01 ( 0%) 0 ( 0%)
parser function body : 0.05 ( 1%) 8457k ( 9%)
inline parameters : 0.03 ( 1%) 8912 ( 0%)
tree gimplify : 0.01 ( 0%) 2318k ( 3%)
tree CFG construction : 0.01 ( 0%) 3836k ( 4%)
tree CFG cleanup : 0.03 ( 1%) 0 ( 0%)
tree copy propagation : 0.01 ( 0%) 0 ( 0%)
tree PTA : 0.02 ( 0%) 128 ( 0%)
tree SSA rewrite : 0.01 ( 0%) 1469k ( 2%)
tree operand scan : 0.01 ( 0%) 949k ( 1%)
dominator optimization : 1.05 ( 25%) 3067k ( 3%)
tree CCP : 0.05 ( 1%) 56 ( 0%)
tree FRE : 1.01 ( 24%) 496 ( 0%)
tree forward propagate : 0.02 ( 0%) 0 ( 0%)
tree SSA uncprop : 0.01 ( 0%) 0 ( 0%)
tree switch lowering : 0.01 ( 0%) 7244k ( 8%)
tree modref : 0.22 ( 5%) 480 ( 0%)
dominance computation : 0.11 ( 3%) 0 ( 0%)
out of ssa : 0.01 ( 0%) 360 ( 0%)
expand : 0.02 ( 1%) 14M ( 17%)
post expand cleanups : 0.01 ( 0%) 480 ( 0%)
forward prop : 0.10 ( 2%) 0 ( 0%)
CSE : 0.04 ( 1%) 0 ( 0%)
dead code elimination : 0.02 ( 1%) 0 ( 0%)
dead store elim1 : 0.01 ( 0%) 559k ( 1%)
dead store elim2 : 0.02 ( 0%) 468k ( 1%)
loop init : 0.02 ( 1%) 4552 ( 0%)
branch prediction : 0.01 ( 0%) 104 ( 0%)
combiner : 0.03 ( 1%) 325k ( 0%)
if-conversion : 0.09 ( 2%) 8771k ( 10%)
integrated RA : 0.10 ( 2%) 7146k ( 8%)
LRA non-specific : 0.05 ( 1%) 56 ( 0%)
LRA virtuals elimination : 0.01 ( 0%) 0 ( 0%)
LRA reload inheritance : 0.01 ( 0%) 0 ( 0%)
LRA create live ranges : 0.02 ( 0%) 0 ( 0%)
reload CSE regs : 0.03 ( 1%) 883k ( 1%)
thread pro- & epilogue : 0.01 ( 0%) 880 ( 0%)
if-conversion 2 : 0.01 ( 0%) 0 ( 0%)
combine stack adjustments : 0.01 ( 0%) 0 ( 0%)
hard reg cprop : 0.03 ( 1%) 0 ( 0%)
reorder blocks : 0.03 ( 1%) 1082k ( 1%)
shorten branches : 0.01 ( 0%) 0 ( 0%)
final : 0.03 ( 1%) 5189k ( 6%)
straight-line strength reduction : 0.01 ( 0%) 0 ( 0%)
initialize rtl : 0.01 ( 0%) 12k ( 0%)
access analysis : 0.01 ( 0%) 0 ( 0%)
rest of compilation : 0.06 ( 1%) 1367k ( 2%)
remove unused locals : 0.01 ( 0%) 0 ( 0%)
TOTAL : 4.16 87M
I'll try to bisect.
More information about the Gcc-bugs
mailing list