Liboffload: Patch for MPSS > 3.4.x (provided by Tim Cramer)
authorAndrey Churbanov <Andrey.Churbanov@intel.com>
Wed, 6 May 2015 10:58:40 +0000 (10:58 +0000)
committerAndrey Churbanov <Andrey.Churbanov@intel.com>
Wed, 6 May 2015 10:58:40 +0000 (10:58 +0000)
llvm-svn: 236588

openmp/offload/Makefile
openmp/offload/src/cean_util.h

index c79f06d..75e3744 100755 (executable)
@@ -14,6 +14,7 @@
 # root_dir - path to root directory of liboffload\r
 # build_dir - path to build directory\r
 # mpss_dir - path to root directory of mpss\r
+# mpss_version - version of the mpss (e.g., version "3.3.x" would be "33")\r
 # libiomp_host_dir - path to host libiomp directory (unnecessary if compiler_host is icc)\r
 # libiomp_target_dir - path to target libiomp directory (unnecesarry if compiler_target is icc)\r
 # omp_header_dir - path to omp.h (unnecessary if compiler_host and compiler_target are icc)\r
@@ -47,13 +48,24 @@ compiler_host?=gcc
 compiler_target?=gcc\r
 \r
 # MPSS\r
+mpss_version?=30\r
 mpss_dir?=/\r
 mpss_present=$(shell if test -d $(mpss_dir); then echo OK; else echo KO; fi)\r
 ifneq ($(mpss_present), OK)\r
   $(error "Cannot find MPSS directory $(mpss_dir)")\r
 endif\r
 \r
-coi_dir=$(mpss_dir)/opt/intel/mic/coi\r
+ifeq ($(shell test $(mpss_version) -gt 33; echo $$?), 0)\r
+  coi_dir=$(mpss_dir)/sysroots/k1om-mpss-linux/usr\r
+  coi_include=$(coi_dir)/include/intel-coi\r
+  coi_lib_host=$(mpss_dir)/lib64\r
+  coi_lib_device=$(coi_dir)/lib64\r
+else\r
+  coi_dir=$(mpss_dir)/opt/intel/mic/coi\r
+  coi_include=$(coi_dir)/include\r
+  coi_lib_host=$(coi_dir)/host-linux-release/lib\r
+  coi_lib_device=$(coi_dir)/device-linux-release/lib\r
+endif\r
 myo_dir=$(mpss_dir)/opt/intel/mic/myo\r
 \r
 # Sources\r
@@ -90,25 +102,25 @@ obj_ofld_host=$(foreach file,$(obj_ofld),$(build_host_dir)/$(file))
 obj_ofld_target=$(foreach file,$(obj_ofld),$(build_target_dir)/$(file))\r
 \r
 # Options\r
-opts_common=-O2 -w -fpic -c -DCOI_LIBRARY_VERSION=2 -DMYO_SUPPORT -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -I$(coi_dir)/include -I$(myo_dir)/include -I$(source_dir)\r
+opts_common=-O2 -w -fpic -c -DCOI_LIBRARY_VERSION=2 -DMYO_SUPPORT -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -I$(coi_include) -I$(myo_dir)/include -I$(source_dir)\r
 ifneq ($(omp_header_dir), )\r
   opts_common+=-I$(imported_dir)\r
 endif\r
 \r
 opts_liboffload=-shared -Wl,-soname,liboffload.so.5 -ldl -lstdc++ -liomp5\r
 \r
-opts_liboffload_host=$(opts_liboffload) -L$(coi_dir)/host-linux-release/lib -lcoi_host -L$(myo_dir)/lib -lmyo-client\r
+opts_liboffload_host=$(opts_liboffload) -L$(coi_lib_host) -lcoi_host -L$(myo_dir)/lib -lmyo-client\r
 ifneq ($(libiomp_host_dir), )\r
   opts_liboffload_host+=-L$(libiomp_host_dir)\r
 endif\r
 \r
-opts_liboffload_target=$(opts_liboffload) -L$(coi_dir)/device-linux-release/lib -lcoi_device -L$(myo_dir)/lib -lmyo-service\r
+opts_liboffload_target=$(opts_liboffload) -L$(coi_lib_device) -lcoi_device -L$(myo_dir)/lib -lmyo-service\r
 ifneq ($(libiomp_target_dir), )\r
   opts_liboffload_target+=-L$(libiomp_target_dir)\r
 endif\r
 \r
 options_host?=\r
-opts_host=$(options_host) -DHOST_LIBRARY=1\r
+opts_host=$(options_host) -DHOST_LIBRARY=1 -DMPSS_VERSION=$(mpss_version)\r
 ifeq ($(os_host), linux)\r
   opts_host+=-DLINUX\r
 endif\r
@@ -118,6 +130,9 @@ opts_target=$(options_target) -DHOST_LIBRARY=0
 ifeq ($(os_target), linux)\r
   opts_target+=-DLINUX\r
 endif\r
+ifeq ($(compiler_target), icc)\r
+  opts_target+=-mmic\r
+endif\r
 \r
 # Make targets\r
 .PHONY: all clean info\r
@@ -196,6 +211,7 @@ info:
        @echo "root_dir = $(root_dir)"\r
        @echo "build_dir = $(build_dir)"\r
        @echo "mpss_dir = $(mpss_dir)"\r
+       @echo "mpss_version = $(mpss_version)"\r
        @echo "libiomp_host_dir = $(libiomp_host_dir)"\r
        @echo "libiomp_target_dir = $(libiomp_target_dir)"\r
        @echo "omp_header_dir = $(omp_header_dir)"\r
index 0eb1f53..d0debcc 100644 (file)
 #ifndef CEAN_UTIL_H_INCLUDED
 #define CEAN_UTIL_H_INCLUDED
 
+#if MPSS_VERSION > 33
+#include <source/COIBuffer_source.h>
+#endif
 #include <stdint.h>
 
+#if MPSS_VERSION <= 33
 // CEAN expression representation
 struct dim_desc {
     int64_t size;       // Length of data type
@@ -27,6 +31,7 @@ struct arr_desc {
     int64_t rank;       // Rank of array
     dim_desc dim[1];
 };
+#endif
 
 struct CeanReadDim {
     int64_t count; // The number of elements in this dimension