https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80068
Bug ID: 80068 Summary: [Intel MPX] "internal compiler error" on 483.xalancbmk in SPEC CPU 2006 Product: gcc Version: 6.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: dmitrii.kuvais...@tu-dresden.de Target Milestone: --- Created attachment 40985 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40985&action=edit Preprocessed C++ file from 483.xalancbmk The MPX pass experiences an "internal compiler error" when compiled under g++-6.1.0 and only under `-fno-chkp-check-read`. I run a vanilla SPEC CPU 2006 on my Ubuntu 16.04 and use GCC 6.1.0: runspec --config intelmpx.cfg --noreportable 483.xalancbmk This is the exact command line that fails: ----------------------------- ~/bin/benchmarks/cpu2006/benchspec/CPU2006/483.xalancbmk/src$ /home/dimakuv/bin/gcc-6.1.0/install/bin/g++ -v -save-temps -DSPEC_CPU -DNDEBUG -DAPP_NO_THREADS -DXALAN_INMEM_MSG_LOADER -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_VALIDATORS -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -O3 -DSPEC_CPU_LP64 -DSPEC_CPU_LINUX -fcheck-pointer-bounds -mmpx -fno-chkp-check-read -c DecimalDatatypeValidator.cpp -o DecimalDatatypeValidator.o -I. -I./xercesc/dom -I./xercesc/dom/impl -I. -I./xercesc/sax -I./xercesc/util/MsgLoaders/InMemory -I./xercesc/util/Transcoders/Iconv -I./xalanc/include Using built-in specs. COLLECT_GCC=/home/dimakuv/bin/gcc-6.1.0/install/bin/g++ Target: x86_64-pc-linux-gnu Configured with: ./configure --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 6.1.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-D' 'SPEC_CPU' '-D' 'NDEBUG' '-D' 'APP_NO_THREADS' '-D' 'XALAN_INMEM_MSG_LOADER' '-D' 'PROJ_XMLPARSER' '-D' 'PROJ_XMLUTIL' '-D' 'PROJ_PARSERS' '-D' 'PROJ_SAX4C' '-D' 'PROJ_SAX2' '-D' 'PROJ_DOM' '-D' 'PROJ_VALIDATORS' '-D' 'XML_USE_NATIVE_TRANSCODER' '-D' 'XML_USE_INMEM_MESSAGELOADER' '-D' 'XML_USE_PTHREADS' '-O3' '-D' 'SPEC_CPU_LP64' '-D' 'SPEC_CPU_LINUX' '-fcheck-pointer-bounds' '-mmpx' '-fno-chkp-check-read' '-c' '-o' 'DecimalDatatypeValidator.o' '-I' '.' '-I' './xercesc/dom' '-I' './xercesc/dom/impl' '-I' '.' '-I' './xercesc/sax' '-I' './xercesc/util/MsgLoaders/InMemory' '-I' './xercesc/util/Transcoders/Iconv' '-I' './xalanc/include' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /home/dimakuv/bin/gcc-6.1.0/install/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.1.0/cc1plus -E -quiet -v -I . -I ./xercesc/dom -I ./xercesc/dom/impl -I . -I ./xercesc/sax -I ./xercesc/util/MsgLoaders/InMemory -I ./xercesc/util/Transcoders/Iconv -I ./xalanc/include -imultiarch x86_64-linux-gnu -iprefix /home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/ -D_GNU_SOURCE -D SPEC_CPU -D NDEBUG -D APP_NO_THREADS -D XALAN_INMEM_MSG_LOADER -D PROJ_XMLPARSER -D PROJ_XMLUTIL -D PROJ_PARSERS -D PROJ_SAX4C -D PROJ_SAX2 -D PROJ_DOM -D PROJ_VALIDATORS -D XML_USE_NATIVE_TRANSCODER -D XML_USE_INMEM_MESSAGELOADER -D XML_USE_PTHREADS -D SPEC_CPU_LP64 -D SPEC_CPU_LINUX DecimalDatatypeValidator.cpp -mmpx -mtune=generic -march=x86-64 -fcheck-pointer-bounds -fno-chkp-check-read -O3 -fpch-preprocess -o DecimalDatatypeValidator.ii ignoring nonexistent directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../include/c++/6.1.0" ignoring nonexistent directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../include/c++/6.1.0/x86_64-pc-linux-gnu" ignoring nonexistent directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../include/c++/6.1.0/backward" ignoring nonexistent directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../x86_64-pc-linux-gnu/include" ignoring nonexistent directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../include/c++/6.1.0" ignoring nonexistent directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../include/c++/6.1.0/x86_64-pc-linux-gnu" ignoring nonexistent directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../include/c++/6.1.0/backward" ignoring duplicate directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.1.0/include" ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" ignoring duplicate directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.1.0/include-fixed" ignoring nonexistent directory "/home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/6.1.0/../../../../x86_64-pc-linux-gnu/include" ignoring duplicate directory "." ignoring nonexistent directory "./xalanc/include" #include "..." search starts here: #include <...> search starts here: . ./xercesc/dom ./xercesc/dom/impl ./xercesc/sax ./xercesc/util/MsgLoaders/InMemory ./xercesc/util/Transcoders/Iconv /home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/include /home/dimakuv/bin/gcc-6.1.0/install/bin/../lib/gcc/x86_64-pc-linux-gnu/6.1.0/include-fixed /usr/local/include /usr/include/x86_64-linux-gnu /usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-D' 'SPEC_CPU' '-D' 'NDEBUG' '-D' 'APP_NO_THREADS' '-D' 'XALAN_INMEM_MSG_LOADER' '-D' 'PROJ_XMLPARSER' '-D' 'PROJ_XMLUTIL' '-D' 'PROJ_PARSERS' '-D' 'PROJ_SAX4C' '-D' 'PROJ_SAX2' '-D' 'PROJ_DOM' '-D' 'PROJ_VALIDATORS' '-D' 'XML_USE_NATIVE_TRANSCODER' '-D' 'XML_USE_INMEM_MESSAGELOADER' '-D' 'XML_USE_PTHREADS' '-O3' '-D' 'SPEC_CPU_LP64' '-D' 'SPEC_CPU_LINUX' '-fcheck-pointer-bounds' '-mmpx' '-fno-chkp-check-read' '-c' '-o' 'DecimalDatatypeValidator.o' '-I' '.' '-I' './xercesc/dom' '-I' './xercesc/dom/impl' '-I' '.' '-I' './xercesc/sax' '-I' './xercesc/util/MsgLoaders/InMemory' '-I' './xercesc/util/Transcoders/Iconv' '-I' './xalanc/include' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /home/dimakuv/bin/gcc-6.1.0/install/bin/../libexec/gcc/x86_64-pc-linux-gnu/6.1.0/cc1plus -fpreprocessed DecimalDatatypeValidator.ii -quiet -dumpbase DecimalDatatypeValidator.cpp -mmpx -mtune=generic -march=x86-64 -auxbase-strip DecimalDatatypeValidator.o -O3 -version -fcheck-pointer-bounds -fno-chkp-check-read -o DecimalDatatypeValidator.s GNU C++14 (GCC) version 6.1.0 (x86_64-pc-linux-gnu) compiled by GNU C version 6.1.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C++14 (GCC) version 6.1.0 (x86_64-pc-linux-gnu) compiled by GNU C version 6.1.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: f5c20d2d9d502a0baff4ab181289a7f4 DecimalDatatypeValidator.cpp:807:1: internal compiler error: in ipa_propagate_frequency, at ipa-profile.c:403 XERCES_CPP_NAMESPACE_END ^ 0x9340e5 ipa_propagate_frequency(cgraph_node*) ../.././gcc/ipa-profile.c:403 0x947deb symbol_table::remove_unreachable_nodes(_IO_FILE*) ../.././gcc/ipa.c:695 0xa0ab64 execute_todo ../.././gcc/passes.c:2024 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. ----------------------------- I also attach the preprocessed `DecimalDatatypeValidator.ii`. Bug does not pop up under: - GCC versions 5.4.0 or 6.2.0 - default MPX flags (i.e., when MPX pass protects both stores and loads)