[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