[Bug rtl-optimization/88132] New: Compile time and memory hog w/ var-tracking on 32-bit targets
asolokha at gmx dot com
gcc-bugzilla@gcc.gnu.org
Wed Nov 21 10:44:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88132
Bug ID: 88132
Summary: Compile time and memory hog w/ var-tracking on 32-bit
targets
Product: gcc
Version: unknown
Status: UNCONFIRMED
Keywords: compile-time-hog, memory-hog
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
Target: powerpc-*-linux-gnu, powerpcspe-*-linux-gnu
gcc-9.0.0-alpha20181118 snapshot (r266255) exhibits disproportionally large
time and memory consumption compiling the following snippet w/ -O1 -fipa-ra
-fpeel-loops -fno-dce -fno-tree-dce -fno-tree-forwprop -g:
void
c6 (unsigned int an)
{
int te;
for (te = 0; te < 16; ++te)
an %= 7;
}
% timeout 10 powerpc-e300c3-linux-gnu-gcc-9.0.0-alpha20181118 -O1 -fipa-ra
-fpeel-loops -fno-dce -fno-tree-dce -fno-tree-forwprop -g -c fztr7tmm.c
zsh: exit 124 timeout 10 powerpc-e300c3-linux-gnu-gcc-9.0.0-alpha20181118 -O1
-fipa-ra -fpeel-loops
Compilation time grows roughly exponentially depending on the upper bound of
`te', at least in the range from 9 to 17. Adding -fno-var-tracking to the
command line helps. As this is var-tracking-related, there might be earlier
reports of this issue already, though I failed to find one the w/ similar
profile.
perf top reads like this most of the time, w/ lra_substitute_pseudo and
add_regs_to_insn_regno_info alternating perpetually:
Overhead Sha Symbol
50.79% cc1 [.] lra_substitute_pseudo
41.93% cc1 [.] add_regs_to_insn_regno_info
4.22% cc1 [.] bitmap_set_bit
1.35% cc1 [.] expand_reg_info
1.24% cc1 [.] read_modify_subreg_p
0.46% cc1 [.] max_reg_num
More information about the Gcc-bugs
mailing list