Commit ebe4a560 by Nathan Sidwell Committed by Nathan Sidwell

mkoffload.c (process): Constify host data.

	gcc/
	* config/nvptx/mkoffload.c (process): Constify host data.
	* config/i386/intelmic-mkoffload.c (generate_target_descr_file):
	Constify host data.
	(generate_host_descr_file): Likewise.

	libgomp/
	* target.c (struct_offload_image_descr): Constify host_table.
	(gomp_offload_image_to_device): Likewise.
	(GOMP_offload_register, GOMP_offload_unregister): Likewise.

	libgcc/
	* offloadstuff.c: Constify host data.

From-SVN: r225943
parent 24757752
2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
* config/nvptx/mkoffload.c (process): Constify host data.
* config/i386/intelmic-mkoffload.c (generate_target_descr_file):
Constify host data.
(generate_host_descr_file): Likewise.
2015-07-17 Aditya Kumar <aditya.k7@samsung.com> 2015-07-17 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com> Sebastian Pop <s.pop@samsung.com>
......
...@@ -338,7 +338,7 @@ generate_host_descr_file (const char *host_compiler) ...@@ -338,7 +338,7 @@ generate_host_descr_file (const char *host_compiler)
fatal_error (input_location, "cannot open '%s'", src_filename); fatal_error (input_location, "cannot open '%s'", src_filename);
fprintf (src_file, fprintf (src_file,
"extern void *__OFFLOAD_TABLE__;\n" "extern const void *const __OFFLOAD_TABLE__;\n"
"extern const void *const __offload_image_intelmic_start;\n" "extern const void *const __offload_image_intelmic_start;\n"
"extern const void *const __offload_image_intelmic_end;\n\n" "extern const void *const __offload_image_intelmic_end;\n\n"
...@@ -350,11 +350,11 @@ generate_host_descr_file (const char *host_compiler) ...@@ -350,11 +350,11 @@ generate_host_descr_file (const char *host_compiler)
"#ifdef __cplusplus\n" "#ifdef __cplusplus\n"
"extern \"C\"\n" "extern \"C\"\n"
"#endif\n" "#endif\n"
"void GOMP_offload_register (void *, int, const void *);\n" "void GOMP_offload_register (const void *, int, const void *);\n"
"#ifdef __cplusplus\n" "#ifdef __cplusplus\n"
"extern \"C\"\n" "extern \"C\"\n"
"#endif\n" "#endif\n"
"void GOMP_offload_unregister (void *, int, const void *);\n\n" "void GOMP_offload_unregister (const void *, int, const void *);\n\n"
"__attribute__((constructor))\n" "__attribute__((constructor))\n"
"static void\n" "static void\n"
......
...@@ -881,12 +881,12 @@ process (FILE *in, FILE *out) ...@@ -881,12 +881,12 @@ process (FILE *in, FILE *out)
"extern \"C\" {\n" "extern \"C\" {\n"
"#endif\n"); "#endif\n");
fprintf (out, "extern void GOMP_offload_register" fprintf (out, "extern void GOMP_offload_register"
" (void *, int, const void *);\n"); " (const void *, int, const void *);\n");
fprintf (out, "#ifdef __cplusplus\n" fprintf (out, "#ifdef __cplusplus\n"
"}\n" "}\n"
"#endif\n"); "#endif\n");
fprintf (out, "extern void *__OFFLOAD_TABLE__[];\n\n"); fprintf (out, "extern const void *const __OFFLOAD_TABLE__[];\n\n");
fprintf (out, "static __attribute__((constructor)) void init (void)\n{\n"); fprintf (out, "static __attribute__((constructor)) void init (void)\n{\n");
fprintf (out, " GOMP_offload_register (__OFFLOAD_TABLE__, %d,\n", fprintf (out, " GOMP_offload_register (__OFFLOAD_TABLE__, %d,\n",
GOMP_DEVICE_NVIDIA_PTX); GOMP_DEVICE_NVIDIA_PTX);
......
2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
* offloadstuff.c: Constify host data.
2015-07-17 Jan Beulich <jbeulich@suse.com> 2015-07-17 Jan Beulich <jbeulich@suse.com>
* config/t-softfp: Split up "else ifneq". * config/t-softfp: Split up "else ifneq".
......
...@@ -46,10 +46,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -46,10 +46,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifdef CRT_BEGIN #ifdef CRT_BEGIN
#if defined(HAVE_GAS_HIDDEN) && defined(ENABLE_OFFLOADING) #if defined(HAVE_GAS_HIDDEN) && defined(ENABLE_OFFLOADING)
void *__offload_func_table[0] const void *const __offload_func_table[0]
__attribute__ ((__used__, visibility ("hidden"), __attribute__ ((__used__, visibility ("hidden"),
section (OFFLOAD_FUNC_TABLE_SECTION_NAME))) = { }; section (OFFLOAD_FUNC_TABLE_SECTION_NAME))) = { };
void *__offload_var_table[0] const void *const __offload_var_table[0]
__attribute__ ((__used__, visibility ("hidden"), __attribute__ ((__used__, visibility ("hidden"),
section (OFFLOAD_VAR_TABLE_SECTION_NAME))) = { }; section (OFFLOAD_VAR_TABLE_SECTION_NAME))) = { };
#endif #endif
...@@ -57,17 +57,17 @@ void *__offload_var_table[0] ...@@ -57,17 +57,17 @@ void *__offload_var_table[0]
#elif defined CRT_END #elif defined CRT_END
#if defined(HAVE_GAS_HIDDEN) && defined(ENABLE_OFFLOADING) #if defined(HAVE_GAS_HIDDEN) && defined(ENABLE_OFFLOADING)
void *__offload_funcs_end[0] const void *const __offload_funcs_end[0]
__attribute__ ((__used__, visibility ("hidden"), __attribute__ ((__used__, visibility ("hidden"),
section (OFFLOAD_FUNC_TABLE_SECTION_NAME))) = { }; section (OFFLOAD_FUNC_TABLE_SECTION_NAME))) = { };
void *__offload_vars_end[0] const void *const __offload_vars_end[0]
__attribute__ ((__used__, visibility ("hidden"), __attribute__ ((__used__, visibility ("hidden"),
section (OFFLOAD_VAR_TABLE_SECTION_NAME))) = { }; section (OFFLOAD_VAR_TABLE_SECTION_NAME))) = { };
extern void *__offload_func_table[]; extern const void *const __offload_func_table[];
extern void *__offload_var_table[]; extern const void *const __offload_var_table[];
void *__OFFLOAD_TABLE__[] const void *const __OFFLOAD_TABLE__[]
__attribute__ ((__visibility__ ("hidden"))) = __attribute__ ((__visibility__ ("hidden"))) =
{ {
&__offload_func_table, &__offload_funcs_end, &__offload_func_table, &__offload_funcs_end,
......
2015-07-17 Nathan Sidwell <nathan@codesourcery.com> 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
* target.c (struct_offload_image_descr): Constify host_table.
(gomp_offload_image_to_device): Likewise.
(GOMP_offload_register, GOMP_offload_unregister): Likewise.
* libgomp.h (gomp_device_descr): Constify target data arguments. * libgomp.h (gomp_device_descr): Constify target data arguments.
* target.c (struct offload_image_descr): Constify target_data. * target.c (struct offload_image_descr): Constify target_data.
(gomp_offload_image_to_device): Likewise. (gomp_offload_image_to_device): Likewise.
......
...@@ -57,7 +57,7 @@ static gomp_mutex_t register_lock; ...@@ -57,7 +57,7 @@ static gomp_mutex_t register_lock;
pointer to target data. */ pointer to target data. */
struct offload_image_descr { struct offload_image_descr {
enum offload_target_type type; enum offload_target_type type;
void *host_table; const void *host_table;
const void *target_data; const void *target_data;
}; };
...@@ -642,7 +642,7 @@ gomp_update (struct gomp_device_descr *devicep, size_t mapnum, void **hostaddrs, ...@@ -642,7 +642,7 @@ gomp_update (struct gomp_device_descr *devicep, size_t mapnum, void **hostaddrs,
static void static void
gomp_offload_image_to_device (struct gomp_device_descr *devicep, gomp_offload_image_to_device (struct gomp_device_descr *devicep,
void *host_table, const void *target_data, const void *host_table, const void *target_data,
bool is_register_lock) bool is_register_lock)
{ {
void **host_func_table = ((void ***) host_table)[0]; void **host_func_table = ((void ***) host_table)[0];
...@@ -730,7 +730,8 @@ gomp_offload_image_to_device (struct gomp_device_descr *devicep, ...@@ -730,7 +730,8 @@ gomp_offload_image_to_device (struct gomp_device_descr *devicep,
the target, and TARGET_DATA needed by target plugin. */ the target, and TARGET_DATA needed by target plugin. */
void void
GOMP_offload_register (void *host_table, enum offload_target_type target_type, GOMP_offload_register (const void *host_table,
enum offload_target_type target_type,
const void *target_data) const void *target_data)
{ {
int i; int i;
...@@ -764,7 +765,8 @@ GOMP_offload_register (void *host_table, enum offload_target_type target_type, ...@@ -764,7 +765,8 @@ GOMP_offload_register (void *host_table, enum offload_target_type target_type,
the target, and TARGET_DATA needed by target plugin. */ the target, and TARGET_DATA needed by target plugin. */
void void
GOMP_offload_unregister (void *host_table, enum offload_target_type target_type, GOMP_offload_unregister (const void *host_table,
enum offload_target_type target_type,
const void *target_data) const void *target_data)
{ {
void **host_func_table = ((void ***) host_table)[0]; void **host_func_table = ((void ***) host_table)[0];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment