[Bug tree-optimization/70287] New: Slow compilation time
tarasevich at cs dot uni-saarland.de
gcc-bugzilla@gcc.gnu.org
Fri Mar 18 08:31:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70287
Bug ID: 70287
Summary: Slow compilation time
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: tarasevich at cs dot uni-saarland.de
Target Milestone: ---
Created attachment 38011
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38011&action=edit
test case
Combination of "-O3 -fgcse-sm -fno-tree-fre -fno-tree-copy-prop -fno-tree-ccp
-fno-tree-dce -ffloat-store" flags degrades compilation time significantly.
Removing any of those reduces compilation time to seconds. GCC 5.3.0 built from
source with Clang 3.7.1 on Ubuntu 14.04 64bit. Same behaviour observed with GCC
4.8.2
../build/gcc_530_clean_bin/bin/gcc test_case_587.c -O3 -fgcse-sm -fno-tree-fre
-fno-tree-copy-prop -fno-tree-ccp -fno-tree-dce -ffloat-store -ftime-report -v
-save-temps
Using built-in specs.
COLLECT_GCC=../build/gcc_530_clean_bin/bin/gcc
COLLECT_LTO_WRAPPER=/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../../source/gcc_530/configure
--prefix=/home/tarasevich/build/gcc_530_clean_bin/ --enable-languages=c
--disable-multilib --disable-bootstrap
CC=/home/tarasevich/build/llvm_371_bin/bin/clang
CXX=/home/tarasevich/build/llvm_371_bin/bin/clang++
Thread model: posix
gcc version 5.3.0 (GCC)
COLLECT_GCC_OPTIONS='-O3' '-fgcse-sm' '-fno-tree-fre' '-fno-tree-copy-prop'
'-fno-tree-ccp' '-fno-tree-dce' '-ffloat-store' '-ftime-report' '-v'
'-save-temps' '-mtune=generic' '-march=x86-64'
/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/cc1
-E -quiet -v -imultiarch x86_64-linux-gnu test_case_587.c -mtune=generic
-march=x86-64 -fgcse-sm -fno-tree-fre -fno-tree-copy-prop -fno-tree-ccp
-fno-tree-dce -ffloat-store -ftime-report -O3 -fpch-preprocess -o
test_case_587.i
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../x86_64-unknown-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/include
/usr/local/include
/home/tarasevich/build/gcc_530_clean_bin/include
/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
Execution times (seconds)
phase setup : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 (100%) wall
129 kB (89%) ggc
TOTAL : 0.00 0.00 0.01
146 kB
COLLECT_GCC_OPTIONS='-O3' '-fgcse-sm' '-fno-tree-fre' '-fno-tree-copy-prop'
'-fno-tree-ccp' '-fno-tree-dce' '-ffloat-store' '-ftime-report' '-v'
'-save-temps' '-mtune=generic' '-march=x86-64'
/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/cc1
-fpreprocessed test_case_587.i -quiet -dumpbase test_case_587.c -mtune=generic
-march=x86-64 -auxbase test_case_587 -O3 -version -fgcse-sm -fno-tree-fre
-fno-tree-copy-prop -fno-tree-ccp -fno-tree-dce -ffloat-store -ftime-report -o
test_case_587.s
GNU C11 (GCC) version 5.3.0 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.2.1 Compatible Clang 3.7.1
(tags/RELEASE_371/final 263010), GMP version 5.1.3, MPFR version 3.1.2-p3, MPC
version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C11 (GCC) version 5.3.0 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.2.1 Compatible Clang 3.7.1
(tags/RELEASE_371/final 263010), GMP version 5.1.3, MPFR version 3.1.2-p3, MPC
version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: c53bb545b4c066cdbf5e42f0b9d9ad8b
Execution times (seconds)
phase setup : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
1093 kB ( 1%) ggc
phase opt and generate :1032.26 (100%) usr 0.23 (100%) sys1034.31 (100%)
wall 87758 kB (99%) ggc
ipa pure const : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
4 kB ( 0%) ggc
trivially dead code : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
0 kB ( 0%) ggc
df scan insns : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
0 kB ( 0%) ggc
df multiple defs : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
0 kB ( 0%) ggc
df reaching defs : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
df live regs : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 0%) wall
0 kB ( 0%) ggc
df live&initialized regs: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
0 kB ( 0%) ggc
df use-def / def-use chains: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%)
wall 0 kB ( 0%) ggc
df reg dead/unused notes: 0.06 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
1017 kB ( 1%) ggc
register information : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
alias analysis : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
5632 kB ( 6%) ggc
rebuild jump labels : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
0 kB ( 0%) ggc
tree CFG cleanup : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
tree VRP : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall
6 kB ( 0%) ggc
tree PTA : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
0 kB ( 0%) ggc
tree SSA rewrite : 0.03 ( 0%) usr 0.01 ( 4%) sys 0.03 ( 0%) wall
2 kB ( 0%) ggc
tree SSA incremental : 0.10 ( 0%) usr 0.05 (22%) sys 0.13 ( 0%) wall
9958 kB (11%) ggc
tree operand scan : 0.02 ( 0%) usr 0.02 ( 9%) sys 0.08 ( 0%) wall
2725 kB ( 3%) ggc
dominator optimization : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
tree reassociation : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
tree forward propagate : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
tree DSE : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
0 kB ( 0%) ggc
complete unrolling : 0.07 ( 0%) usr 0.02 ( 9%) sys 0.08 ( 0%) wall
9007 kB (10%) ggc
tree vectorization : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
tree slp vectorization : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
tree rename SSA copies : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
tree strlen optimization: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
out of ssa : 0.31 ( 0%) usr 0.01 ( 4%) sys 0.32 ( 0%) wall
0 kB ( 0%) ggc
expand vars : 7.95 ( 1%) usr 0.00 ( 0%) sys 7.97 ( 1%) wall
5408 kB ( 6%) ggc
expand : 0.14 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 0%) wall
20518 kB (23%) ggc
post expand cleanups : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
forward prop : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
0 kB ( 0%) ggc
CSE : 0.42 ( 0%) usr 0.00 ( 0%) sys 0.43 ( 0%) wall
1012 kB ( 1%) ggc
dead code elimination : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
dead store elim1 : 1.50 ( 0%) usr 0.00 ( 0%) sys 1.50 ( 0%) wall
2025 kB ( 2%) ggc
dead store elim2 : 1.13 ( 0%) usr 0.00 ( 0%) sys 1.13 ( 0%) wall
2237 kB ( 3%) ggc
LSM :1008.70 (98%) usr 0.08 (35%) sys1010.55 (98%) wall
3037 kB ( 3%) ggc
CSE 2 : 0.27 ( 0%) usr 0.00 ( 0%) sys 0.28 ( 0%) wall
0 kB ( 0%) ggc
combiner : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
38 kB ( 0%) ggc
integrated RA : 0.32 ( 0%) usr 0.00 ( 0%) sys 0.31 ( 0%) wall
15325 kB (17%) ggc
LRA non-specific : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 0%) wall
1 kB ( 0%) ggc
LRA virtuals elimination: 0.04 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
2982 kB ( 3%) ggc
LRA reload inheritance : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
0 kB ( 0%) ggc
LRA create live ranges : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
LRA hard reg assignment : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
reload CSE regs : 8.93 ( 1%) usr 0.01 ( 4%) sys 8.96 ( 1%) wall
2982 kB ( 3%) ggc
load CSE after reload : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.22 ( 0%) wall
0 kB ( 0%) ggc
thread pro- & epilogue : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
1 kB ( 0%) ggc
combine stack adjustments: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
peephole 2 : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
hard reg cprop : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall
0 kB ( 0%) ggc
scheduling 2 : 0.82 ( 0%) usr 0.02 ( 9%) sys 0.84 ( 0%) wall
3752 kB ( 4%) ggc
shorten branches : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.09 ( 0%) wall
0 kB ( 0%) ggc
final : 0.12 ( 0%) usr 0.01 ( 4%) sys 0.13 ( 0%) wall
1 kB ( 0%) ggc
straight-line strength reduction: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 (
0%) wall 0 kB ( 0%) ggc
rest of compilation : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
15 kB ( 0%) ggc
remove unused locals : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
unaccounted todo : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
0 kB ( 0%) ggc
TOTAL :1032.26 0.23 1034.32
88948 kB
COLLECT_GCC_OPTIONS='-O3' '-fgcse-sm' '-fno-tree-fre' '-fno-tree-copy-prop'
'-fno-tree-ccp' '-fno-tree-dce' '-ffloat-store' '-ftime-report' '-v'
'-save-temps' '-mtune=generic' '-march=x86-64'
as -v --64 -o test_case_587.o test_case_587.s
GNU assembler version 2.24 (x86_64-linux-gnu) using BFD version (GNU Binutils
for Ubuntu) 2.24
COMPILER_PATH=/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/:/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/:/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/:/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/:/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/
LIBRARY_PATH=/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/:/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/:/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-O3' '-fgcse-sm' '-fno-tree-fre' '-fno-tree-copy-prop'
'-fno-tree-ccp' '-fno-tree-dce' '-ffloat-store' '-ftime-report' '-v'
'-save-temps' '-mtune=generic' '-march=x86-64'
/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/collect2
-plugin
/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/liblto_plugin.so
-plugin-opt=/home/tarasevich/build/gcc_530_clean_bin/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/lto-wrapper
-plugin-opt=-fresolution=test_case_587.res -plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s
--eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2
/usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o
/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/crtbegin.o
-L/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0
-L/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../lib64
-L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu
-L/usr/lib/x86_64-linux-gnu
-L/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../..
test_case_587.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed
-lgcc_s --no-as-needed
/home/tarasevich/build/gcc_530_clean_bin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/crtend.o
/usr/lib/x86_64-linux-gnu/crtn.o
More information about the Gcc-bugs
mailing list