mkoffload.c (process): Constify target data.
authorNathan Sidwell <nathan@gcc.gnu.org>
Fri, 17 Jul 2015 14:07:53 +0000 (14:07 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Fri, 17 Jul 2015 14:07:53 +0000 (14:07 +0000)
gcc/
* config/nvptx/mkoffload.c (process): Constify target data.
* config/i386/intelmic-mkoffload.c (generate_target_descr_file):
Constify target data.
(generate_target_offloadend_file): Likewise.

libgomp/
* libgomp.h (gomp_device_descr): Constify target data arguments.
* target.c (struct offload_image_descr): Constify target_data.
(gomp_offload_image_to_device): Likewise.
(GOMP_offload_register): Likewise.
(GOMP_offload_unrefister): Likewise.
* plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
GOMP_OFFLOAD_unload_image): Constify target data.
* plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.

liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (ImgDevAddrMap): Constify.
(offload_image, GOMP_OFFLOAD_load_image,
OMP_OFFLOAD_unload_image): Constify target data.

From-SVN: r225936

gcc/ChangeLog
gcc/config/i386/intelmic-mkoffload.c
gcc/config/nvptx/mkoffload.c
libgomp/ChangeLog
libgomp/libgomp.h
libgomp/plugin/plugin-host.c
libgomp/plugin/plugin-nvptx.c
libgomp/target.c
liboffloadmic/ChangeLog
liboffloadmic/plugin/libgomp-plugin-intelmic.cpp

index 33279aa2a41c443203b705276fe3a884cb092271..d36d6b57b7ba817a5fdbecec08b8a4b30ae3ee99 100644 (file)
@@ -1,3 +1,10 @@
+2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/nvptx/mkoffload.c (process): Constify target data.
+       * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
+       Constify target data.
+       (generate_target_offloadend_file): Likewise.
+
 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
 
        * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
index e5e5c35fc43a9004c0de1c2ae5c21e9311caf20f..a3b0a5cc1ace30e8234810566040ddf4ebc7f372 100644 (file)
@@ -241,18 +241,18 @@ generate_target_descr_file (const char *target_compiler)
     fatal_error (input_location, "cannot open '%s'", src_filename);
 
   fprintf (src_file,
-          "extern void *__offload_funcs_end[];\n"
-          "extern void *__offload_vars_end[];\n\n"
+          "extern const void *const __offload_funcs_end[];\n"
+          "extern const void *const __offload_vars_end[];\n\n"
 
-          "void *__offload_func_table[0]\n"
+          "const void *const __offload_func_table[0]\n"
           "__attribute__ ((__used__, visibility (\"hidden\"),\n"
           "section (\".gnu.offload_funcs\"))) = { };\n\n"
 
-          "void *__offload_var_table[0]\n"
+          "const void *const __offload_var_table[0]\n"
           "__attribute__ ((__used__, visibility (\"hidden\"),\n"
           "section (\".gnu.offload_vars\"))) = { };\n\n"
 
-          "void *__OFFLOAD_TARGET_TABLE__[]\n"
+          "const void *const __OFFLOAD_TARGET_TABLE__[]\n"
           "__attribute__ ((__used__, visibility (\"hidden\"))) = {\n"
           "  &__offload_func_table, &__offload_funcs_end,\n"
           "  &__offload_var_table, &__offload_vars_end\n"
@@ -301,11 +301,11 @@ generate_target_offloadend_file (const char *target_compiler)
     fatal_error (input_location, "cannot open '%s'", src_filename);
 
   fprintf (src_file,
-          "void *__offload_funcs_end[0]\n"
+          "const void *const __offload_funcs_end[0]\n"
           "__attribute__ ((__used__, visibility (\"hidden\"),\n"
           "section (\".gnu.offload_funcs\"))) = { };\n\n"
 
-          "void *__offload_vars_end[0]\n"
+          "const void *const __offload_vars_end[0]\n"
           "__attribute__ ((__used__, visibility (\"hidden\"),\n"
           "section (\".gnu.offload_vars\"))) = { };\n");
   fclose (src_file);
@@ -339,10 +339,10 @@ generate_host_descr_file (const char *host_compiler)
 
   fprintf (src_file,
           "extern void *__OFFLOAD_TABLE__;\n"
-          "extern void *__offload_image_intelmic_start;\n"
-          "extern void *__offload_image_intelmic_end;\n\n"
+          "extern const void *const __offload_image_intelmic_start;\n"
+          "extern const void *const __offload_image_intelmic_end;\n\n"
 
-          "static const void *__offload_target_data[] = {\n"
+          "static const void *const __offload_target_data[] = {\n"
           "  &__offload_image_intelmic_start, &__offload_image_intelmic_end\n"
           "};\n\n");
 
@@ -350,11 +350,11 @@ generate_host_descr_file (const char *host_compiler)
           "#ifdef __cplusplus\n"
           "extern \"C\"\n"
           "#endif\n"
-          "void GOMP_offload_register (void *, int, void *);\n"
+          "void GOMP_offload_register (void *, int, const void *);\n"
           "#ifdef __cplusplus\n"
           "extern \"C\"\n"
           "#endif\n"
-          "void GOMP_offload_unregister (void *, int, void *);\n\n"
+          "void GOMP_offload_unregister (void *, int, const void *);\n\n"
 
           "__attribute__((constructor))\n"
           "static void\n"
index ca13e096f5cf19f5e9d5561020065237628d6ed3..52f8bd911449bd23d958234404c33a9312fa4292 100644 (file)
@@ -863,7 +863,7 @@ process (FILE *in, FILE *out)
   fprintf (out, "};\n\n");
 
   fprintf (out,
-          "static struct nvptx_tdata {\n"
+          "static const struct nvptx_tdata {\n"
           "  const char *ptx_src;\n"
           "  const char *const *var_names;\n"
           "  __SIZE_TYPE__ var_num;\n"
@@ -880,7 +880,8 @@ process (FILE *in, FILE *out)
   fprintf (out, "#ifdef __cplusplus\n"
           "extern \"C\" {\n"
           "#endif\n");
-  fprintf (out, "extern void GOMP_offload_register (void *, int, void *);\n");
+  fprintf (out, "extern void GOMP_offload_register"
+          " (void *, int, const void *);\n");
   fprintf (out, "#ifdef __cplusplus\n"
           "}\n"
           "#endif\n");
index 6b15776accb209fd37499ef265d3911beb6b137c..129e78b7df9405b256d54b9a58d0831768765c4e 100644 (file)
@@ -1,3 +1,15 @@
+2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * libgomp.h (gomp_device_descr): Constify target data arguments.
+       * target.c (struct offload_image_descr): Constify target_data.
+       (gomp_offload_image_to_device): Likewise.
+       (GOMP_offload_register): Likewise.
+       (GOMP_offload_unrefister): Likewise.
+       * plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
+       GOMP_OFFLOAD_unload_image): Constify target data.
+       * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
+       (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
+
 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
 
        * plugin/plugin-nvptx.c (link_ptx): Constify string argument.
index 5ed0f78484a146f52e682660c551f2c0a7e8bcf8..420ac83e9e74a8497f291b03236d99f8431416c2 100644 (file)
@@ -748,8 +748,8 @@ struct gomp_device_descr
   int (*get_num_devices_func) (void);
   void (*init_device_func) (int);
   void (*fini_device_func) (int);
-  int (*load_image_func) (int, void *, struct addr_pair **);
-  void (*unload_image_func) (int, void *);
+  int (*load_image_func) (int, const void *, struct addr_pair **);
+  void (*unload_image_func) (int, const void *);
   void *(*alloc_func) (int, size_t);
   void (*free_func) (int, void *);
   void *(*dev2host_func) (int, void *, const void *, size_t);
index 3cb4dab3778f8e8085749911294c2ac060a0a523..da3c5f4cdb74b1243b4d35b3b5fc0fbfafc6a7e2 100644 (file)
@@ -111,7 +111,7 @@ GOMP_OFFLOAD_fini_device (int n __attribute__ ((unused)))
 
 STATIC int
 GOMP_OFFLOAD_load_image (int n __attribute__ ((unused)),
-                        void *i __attribute__ ((unused)),
+                        const void *t __attribute__ ((unused)),
                         struct addr_pair **r __attribute__ ((unused)))
 {
   return 0;
@@ -119,7 +119,7 @@ GOMP_OFFLOAD_load_image (int n __attribute__ ((unused)),
 
 STATIC void
 GOMP_OFFLOAD_unload_image (int n __attribute__ ((unused)),
-                          void *i __attribute__ ((unused)))
+                          const void *t __attribute__ ((unused)))
 {
 }
 
index cfb143bc068ee3ac368b9a091d0e9d1a45def7c3..ba6bf0111f38853818c01c2e17716c4b06500aac 100644 (file)
@@ -334,7 +334,7 @@ struct ptx_event
 
 struct ptx_image_data
 {
-  void *target_data;
+  const void *target_data;
   CUmodule module;
   struct ptx_image_data *next;
 };
@@ -1633,7 +1633,7 @@ typedef struct nvptx_tdata
 } nvptx_tdata_t;
 
 int
-GOMP_OFFLOAD_load_image (int ord, void *target_data,
+GOMP_OFFLOAD_load_image (int ord, const void *target_data,
                         struct addr_pair **target_table)
 {
   CUmodule module;
@@ -1641,7 +1641,7 @@ GOMP_OFFLOAD_load_image (int ord, void *target_data,
   unsigned int fn_entries, var_entries, i, j;
   CUresult r;
   struct targ_fn_descriptor *targ_fns;
-  nvptx_tdata_t const *img_header = (nvptx_tdata_t const *) target_data;
+  const nvptx_tdata_t *img_header = (const nvptx_tdata_t *) target_data;
   struct ptx_image_data *new_image;
 
   GOMP_OFFLOAD_init_device (ord);
@@ -1704,9 +1704,10 @@ GOMP_OFFLOAD_load_image (int ord, void *target_data,
 }
 
 void
-GOMP_OFFLOAD_unload_image (int tid __attribute__((unused)), void *target_data)
+GOMP_OFFLOAD_unload_image (int tid __attribute__((unused)),
+                          const void *target_data)
 {
-  void **img_header = (void **) target_data;
+  const void *const *img_header = (const void *const *) target_data;
   struct targ_fn_descriptor *targ_fns
     = (struct targ_fn_descriptor *) img_header[0];
   struct ptx_image_data *image, *prev = NULL, *newhd = NULL;
index 6e82792c8197d66eada5c49b2d0d20e2ee32eb99..b11c4f2fa6c515aa0ffd766857f5a36f2fda5c00 100644 (file)
@@ -58,7 +58,7 @@ static gomp_mutex_t register_lock;
 struct offload_image_descr {
   enum offload_target_type type;
   void *host_table;
-  void *target_data;
+  const void *target_data;
 };
 
 /* Array of descriptors of offload images.  */
@@ -642,7 +642,7 @@ gomp_update (struct gomp_device_descr *devicep, size_t mapnum, void **hostaddrs,
 
 static void
 gomp_offload_image_to_device (struct gomp_device_descr *devicep,
-                             void *host_table, void *target_data,
+                             void *host_table, const void *target_data,
                              bool is_register_lock)
 {
   void **host_func_table = ((void ***) host_table)[0];
@@ -731,7 +731,7 @@ gomp_offload_image_to_device (struct gomp_device_descr *devicep,
 
 void
 GOMP_offload_register (void *host_table, enum offload_target_type target_type,
-                      void *target_data)
+                      const void *target_data)
 {
   int i;
   gomp_mutex_lock (&register_lock);
@@ -765,7 +765,7 @@ GOMP_offload_register (void *host_table, enum offload_target_type target_type,
 
 void
 GOMP_offload_unregister (void *host_table, enum offload_target_type target_type,
-                        void *target_data)
+                        const void *target_data)
 {
   void **host_func_table = ((void ***) host_table)[0];
   void **host_funcs_end  = ((void ***) host_table)[1];
index b0f9e90187f2332890408594bb6faac6bb213f51..a641dd39db89d38190651f1d77a1af4155115594 100644 (file)
@@ -1,3 +1,10 @@
+2015-07-17  Nathan Sidwell  <nathan@acm.org>
+       Ilya Verbin <iverbin@gmail.com>
+
+       * plugin/libgomp-plugin-intelmic.cpp (ImgDevAddrMap): Constify.
+       (offload_image, GOMP_OFFLOAD_load_image,
+       OMP_OFFLOAD_unload_image): Constify target data.
+
 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
 
        * plugin/Makefile.am (main_target_image.h): Change type of data
index a2d61b15783ed49b1c002db44d2b6e7a331dcd83..a6e5e1c775698edbfc190fcea5002c215ec903c2 100644 (file)
@@ -61,7 +61,7 @@ typedef std::vector<addr_pair> AddrVect;
 typedef std::vector<AddrVect> DevAddrVect;
 
 /* Addresses for all images and all devices.  */
-typedef std::map<void *, DevAddrVect> ImgDevAddrMap;
+typedef std::map<const void *, DevAddrVect> ImgDevAddrMap;
 
 
 /* Total number of available devices.  */
@@ -255,7 +255,7 @@ get_target_table (int device, int &num_funcs, int &num_vars, void **&table)
    corresponding target addresses.  */
 
 static void
-offload_image (void *target_image)
+offload_image (const void *target_image)
 {
   struct TargetImage {
     int64_t size;
@@ -328,7 +328,8 @@ offload_image (void *target_image)
 }
 
 extern "C" int
-GOMP_OFFLOAD_load_image (int device, void *target_image, addr_pair **result)
+GOMP_OFFLOAD_load_image (int device, const void *target_image,
+                        addr_pair **result)
 {
   TRACE ("(device = %d, target_image = %p)", device, target_image);
 
@@ -352,7 +353,7 @@ GOMP_OFFLOAD_load_image (int device, void *target_image, addr_pair **result)
 }
 
 extern "C" void
-GOMP_OFFLOAD_unload_image (int device, void *target_image)
+GOMP_OFFLOAD_unload_image (int device, const void *target_image)
 {
   TRACE ("(device = %d, target_image = %p)", device, target_image);