envelope-project / laik

Other
9 stars 8 forks source link

ICC emits a lot of warnings because LAIK treats enums as ints #145

Open AlexanderKurtz opened 6 years ago

AlexanderKurtz commented 6 years ago

Just so we have this registered somewhere, these are the warnings emitted by ICC when building LAIK. I used CMake to build here, but disabled the -Werror option in the main CMakeLists.txt file so it wouldn't stop at the first error. The tested commit was 1e653bbcff7756cdee67c2c0763fcb4ceccb2ad8.

$ CC=icc CXX=icpc cmake ..
-- The C compiler identification is Intel 16.0.4.20160811
-- The CXX compiler identification is Intel 16.0.4.20160811
-- Check for working C compiler: /lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/bin/intel64/icc
-- Check for working C compiler: /lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/bin/intel64/icc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/bin/intel64/icpc
-- Check for working CXX compiler: /lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/bin/intel64/icpc -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Dependency check for option 'documentation' failed, skipping!
-- Try OpenMP C flag = [-qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -qopenmp  
-- Dependency check for option 'openmp-examples' succeeded, building!
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.23") 
-- Checking for module 'libprotobuf-c'
--   No package 'libprotobuf-c' found
-- Dependency check for option 'failure-simulator' failed, skipping!
-- Dependency check for option 'mosquitto-agent' failed, skipping!
-- Checking for module 'papi'
--   No package 'papi' found
-- Dependency check for option 'profiling-agent' failed, skipping!
-- Checking for module 'mpi'
--   No package 'mpi' found
-- Found MPI_C: /opt/ibmhpc/pecurrent/mpich2/intel/lib64/libmpi.so;/usr/lib64/libdl.so;/lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/compiler/lib/intel64_lin/libirc.so;/usr/lib64/libpthread.so;/usr/lib64/librt.so  
-- Found MPI_CXX: /opt/ibmhpc/pecurrent/mpich2/intel/lib64/libmpi.so;/opt/ibmhpc/pecurrent/mpich2/intel/lib64/libmpigc4.so;/usr/lib64/libdl.so;/lrz/sys/intel/studio2016_u4/compilers_and_libraries_2016.4.258/linux/compiler/lib/intel64_lin/libirc.so;/usr/lib64/libpthread.so;/usr/lib64/librt.so  
-- Dependency check for option 'mpi-backend' succeeded, building!
-- Checking for module 'gio-2.0>=2.44'
--   
-- Checking for module 'glib-2.0>=2.44'
--   
-- Dependency check for option 'tcp-backend' failed, skipping!
-- Configuring done
-- Generating done
-- Build files have been written to: /home/[removed]/laik/build
$ make
Scanning dependencies of target laik
[  2%] Building C object src/CMakeFiles/laik.dir/action.c.o
[  4%] Building C object src/CMakeFiles/laik.dir/backend.c.o
[  6%] Building C object src/CMakeFiles/laik.dir/core.c.o
remark #11074: Inlining inhibited by limit max-size 
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[  8%] Building C object src/CMakeFiles/laik.dir/data.c.o
/home/[removed]/laik/src/data.c(1174): warning #188: enumerated type mixed with another type
              toFlow = LAIK_DF_CopyIn | LAIK_DF_CopyOut;
                     ^

remark #11074: Inlining inhibited by limit max-size 
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[ 10%] Building C object src/CMakeFiles/laik.dir/debug.c.o
[ 12%] Building C object src/CMakeFiles/laik.dir/external.c.o
[ 14%] Building C object src/CMakeFiles/laik.dir/partitioner.c.o
/home/[removed]/laik/src/partitioner.c(69): warning #188: enumerated type mixed with another type
      return laik_new_partitioner("all", runAllPartitioner, 0, 0);
                                                               ^

/home/[removed]/laik/src/partitioner.c(86): warning #188: enumerated type mixed with another type
      return laik_new_partitioner("master", runMasterPartitioner, 0, 0);
                                                                     ^

/home/[removed]/laik/src/partitioner.c(135): warning #188: enumerated type mixed with another type
      return laik_new_partitioner("copy", runCopyPartitioner, data, 0);
                                                                    ^

/home/[removed]/laik/src/partitioner.c(186): warning #188: enumerated type mixed with another type
                                  runCornerHaloPartitioner, data, 0);
                                                                  ^

/home/[removed]/laik/src/partitioner.c(264): warning #188: enumerated type mixed with another type
      return laik_new_partitioner("halo", runHaloPartitioner, data, 0);
                                                                    ^

/home/[removed]/laik/src/partitioner.c(327): warning #188: enumerated type mixed with another type
      return laik_new_partitioner("bisection", runBisectionPartitioner, 0, 0);
                                                                           ^

/home/[removed]/laik/src/partitioner.c(406): warning #188: enumerated type mixed with another type
      return laik_new_partitioner("grid", runGridPartitioner, data, 0);
                                                                    ^

/home/[removed]/laik/src/partitioner.c(549): warning #188: enumerated type mixed with another type
      return laik_new_partitioner("block", runBlockPartitioner, data, 0);
                                                                      ^

/home/[removed]/laik/src/partitioner.c(738): warning #188: enumerated type mixed with another type
                                  data, 0);
                                        ^

[ 17%] Building C object src/CMakeFiles/laik.dir/partitioning.c.o
[ 19%] Building C object src/CMakeFiles/laik.dir/profiling.c.o
[ 21%] Building C object src/CMakeFiles/laik.dir/program.c.o
[ 23%] Building C object src/CMakeFiles/laik.dir/space.c.o
remark #11074: Inlining inhibited by limit max-size 
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[ 25%] Building C object src/CMakeFiles/laik.dir/type.c.o
[ 27%] Building C object src/CMakeFiles/laik.dir/backend-mpi.c.o
remark #11074: Inlining inhibited by limit max-size 
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[ 29%] Building C object src/CMakeFiles/laik.dir/backend-single.c.o
[ 31%] Linking C shared library liblaik.so
[ 31%] Built target laik
Scanning dependencies of target raytracer
[ 34%] Building CXX object examples/CMakeFiles/raytracer.dir/c++/raytracer.cpp.o
remark #11074: Inlining inhibited by limit max-size 
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[ 36%] Linking CXX executable raytracer
[ 36%] Built target raytracer
Scanning dependencies of target markov
[ 38%] Building C object examples/CMakeFiles/markov.dir/markov.c.o
/home/[removed]/laik/examples/markov.c(306): warning #188: enumerated type mixed with another type
                                LAIK_PF_Merge |
                                ^

/home/[removed]/laik/examples/markov.c(321): warning #188: enumerated type mixed with another type
          laik_switchto_phase(idata, pWrite, 0);
                                             ^

[ 40%] Linking C executable markov
[ 40%] Built target markov
Scanning dependencies of target markov2
[ 42%] Building C object examples/CMakeFiles/markov2.dir/markov2.c.o
/home/[removed]/laik/examples/markov2.c(148): warning #188: enumerated type mixed with another type
                        LAIK_DF_Init | LAIK_DF_ReduceOut | LAIK_DF_Sum);
                        ^

/home/[removed]/laik/examples/markov2.c(228): warning #188: enumerated type mixed with another type
                        LAIK_DF_Init | LAIK_DF_ReduceOut | LAIK_DF_Sum);
                        ^

/home/[removed]/laik/examples/markov2.c(356): warning #188: enumerated type mixed with another type
                                LAIK_PF_Merge |
                                ^

/home/[removed]/laik/examples/markov2.c(370): warning #188: enumerated type mixed with another type
          laik_switchto_phase(idata, pRead, 0);
                                            ^

[ 44%] Linking C executable markov2
[ 44%] Built target markov2
Scanning dependencies of target markov-ser
[ 46%] Building C object examples/CMakeFiles/markov-ser.dir/markov-ser.c.o
[ 48%] Linking C executable markov-ser
[ 48%] Built target markov-ser
Scanning dependencies of target spmv2
[ 51%] Building C object examples/CMakeFiles/spmv2.dir/spmv2.c.o
/home/[removed]/laik/examples/spmv2.c(286): warning #188: enumerated type mixed with another type
          laik_switchto_flow(sumD, LAIK_DF_ReduceOut | LAIK_DF_Sum);
                                   ^

/home/[removed]/laik/examples/spmv2.c(307): warning #188: enumerated type mixed with another type
                            LAIK_DF_Init | LAIK_DF_ReduceOut | LAIK_DF_Sum);
                            ^

[ 53%] Linking C executable spmv2
[ 53%] Built target spmv2
Scanning dependencies of target spmv
[ 55%] Building C object examples/CMakeFiles/spmv.dir/spmv.c.o
/home/[removed]/laik/examples/spmv.c(129): warning #188: enumerated type mixed with another type
                              LAIK_DF_Init | LAIK_DF_ReduceOut | LAIK_DF_Sum);
                              ^

[ 57%] Linking C executable spmv
[ 57%] Built target spmv
Scanning dependencies of target jac2d-ser
[ 59%] Building C object examples/CMakeFiles/jac2d-ser.dir/jac2d-ser.c.o
[ 61%] Linking C executable jac2d-ser
[ 61%] Built target jac2d-ser
Scanning dependencies of target propagation1d
[ 63%] Building C object examples/CMakeFiles/propagation1d.dir/propagation1d.c.o
[ 65%] Linking C executable propagation1d
[ 65%] Built target propagation1d
Scanning dependencies of target propagation2d
[ 68%] Building C object examples/CMakeFiles/propagation2d.dir/propagation2d.c.o
/home/[removed]/laik/examples/propagation2d.c(183): warning #188: enumerated type mixed with another type
                              LAIK_DF_ReduceOut | LAIK_DF_Sum);
                              ^

/home/[removed]/laik/examples/propagation2d.c(315): warning #188: enumerated type mixed with another type
      laik_switchto_phase(node, pNodes, LAIK_DF_ReduceOut | LAIK_DF_Sum);
                                        ^

/home/[removed]/laik/examples/propagation2d.c(389): warning #188: enumerated type mixed with another type
          laik_switchto_phase(node, pNodes, LAIK_DF_Init | LAIK_DF_ReduceOut | LAIK_DF_Sum);
                                            ^

[ 70%] Linking C executable propagation2d
[ 70%] Built target propagation2d
Scanning dependencies of target jac1d
[ 72%] Building C object examples/CMakeFiles/jac1d.dir/jac1d.c.o
/home/[removed]/laik/examples/jac1d.c(178): warning #188: enumerated type mixed with another type
              laik_switchto_flow(sumD, LAIK_DF_ReduceOut | LAIK_DF_Sum);
                                       ^

/home/[removed]/laik/examples/jac1d.c(225): warning #188: enumerated type mixed with another type
                                         LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                                         ^

/home/[removed]/laik/examples/jac1d.c(257): warning #188: enumerated type mixed with another type
      laik_switchto_flow(sumD, LAIK_DF_ReduceOut | LAIK_DF_Sum);
                               ^

[ 74%] Linking C executable jac1d
[ 74%] Built target jac1d
Scanning dependencies of target jac2d
[ 76%] Building C object examples/CMakeFiles/jac2d.dir/jac2d.c.o
/home/[removed]/laik/examples/jac2d.c(239): warning #188: enumerated type mixed with another type
              laik_switchto_flow(sumD, LAIK_DF_ReduceOut | LAIK_DF_Sum);
                                       ^

[ 78%] Linking C executable jac2d
[ 78%] Built target jac2d
Scanning dependencies of target jac3d
[ 80%] Building C object examples/CMakeFiles/jac3d.dir/jac3d.c.o
/home/[removed]/laik/examples/jac3d.c(376): warning #188: enumerated type mixed with another type
              laik_switchto_flow(sumD, LAIK_DF_ReduceOut | LAIK_DF_Sum);
                                       ^

[ 82%] Linking C executable jac3d
[ 82%] Built target jac3d
Scanning dependencies of target vsum2
[ 85%] Building C object examples/CMakeFiles/vsum2.dir/vsum2.c.o
/home/[removed]/laik/examples/vsum2.c(75): warning #188: enumerated type mixed with another type
                              LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                              ^

/home/[removed]/laik/examples/vsum2.c(87): warning #188: enumerated type mixed with another type
                              LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                              ^

/home/[removed]/laik/examples/vsum2.c(100): warning #188: enumerated type mixed with another type
                                  LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                                  ^

/home/[removed]/laik/examples/vsum2.c(119): warning #188: enumerated type mixed with another type
                              LAIK_DF_ReduceOut | LAIK_DF_Sum);
                              ^

[ 87%] Linking C executable vsum2
[ 87%] Built target vsum2
Scanning dependencies of target vsum3
[ 89%] Building C object examples/CMakeFiles/vsum3.dir/vsum3.c.o
/home/[removed]/laik/examples/vsum3.c(81): warning #188: enumerated type mixed with another type
      laik_switchto_partitioning(array, part2, LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                                               ^

/home/[removed]/laik/examples/vsum3.c(92): warning #188: enumerated type mixed with another type
      laik_switchto_partitioning(array, part3, LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                                               ^

/home/[removed]/laik/examples/vsum3.c(104): warning #188: enumerated type mixed with another type
          laik_switchto_partitioning(array, part4, LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                                                   ^

/home/[removed]/laik/examples/vsum3.c(142): warning #188: enumerated type mixed with another type
                                 LAIK_DF_ReduceOut | LAIK_DF_Sum);
                                 ^

[ 91%] Linking C executable vsum3
[ 91%] Built target vsum3
Scanning dependencies of target vsum
[ 93%] Building C object examples/CMakeFiles/vsum.dir/vsum.c.o
/home/[removed]/laik/examples/vsum.c(78): warning #188: enumerated type mixed with another type
                              LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                              ^

/home/[removed]/laik/examples/vsum.c(87): warning #188: enumerated type mixed with another type
                              LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                              ^

/home/[removed]/laik/examples/vsum.c(99): warning #188: enumerated type mixed with another type
                                      LAIK_DF_CopyIn | LAIK_DF_CopyOut);
                                      ^

/home/[removed]/laik/examples/vsum.c(126): warning #188: enumerated type mixed with another type
                              LAIK_DF_ReduceOut | LAIK_DF_Sum);
                              ^

[ 95%] Linking C executable vsum
[ 95%] Built target vsum
Scanning dependencies of target simpleagent
[ 97%] Building C object external/simple/CMakeFiles/simpleagent.dir/simple-agent.c.o
[100%] Linking C shared library libsimpleagent.so
[100%] Built target simpleagent
$ 
AlexanderKurtz commented 6 years ago

I forgot about the absolute paths (containing potentially private information) in the build output when posting this, sorry about that. They are removed now.

twittidai commented 6 years ago

Changing this to bug: on C++, there is a issue similar to this where implicit bit mask on the ENUM stuff does not work due to these treatment, one need to implement a "Operator |" in oder to make use of LAIK.

weidendo commented 6 years ago

Adding API tag, as solving this requires an LAIK API change.