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)

Reply via email to