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