f4b8a18de7
* NEWS: Mention OpenCL C language support. * Makefile.in (SFILES): Add opencl-lang.c. (COMMON_OBS): Add opencl-lang.o. * opencl-lang.c: New File * defs.h (enum language): Add language_opencl. * dwarf2read.c (read_file_scope): Handle DW_AT_producer for the IBM XL C OpenCL compiler. * c-lang.h: Include "parser-defs.h". (evaluate_subexp_c): Declare. * c-lang.c (evaluate_subexp_c): Remove the static qualifier. (c_op_print_tab): Add declaration. * eval.c (binop_promote): Handle language_opencl. * c-exp.y: Lookup the primitive types instead of referring to the builtins. gdb/testsuite: * Makefile.in (ALL_SUBDIRS): Add gdb.opencl. * configure.ac (AC_OUTPUT): Add gdb.opencl/Makefile. * configure: Regenerate. * gdb.opencl/Makefile.in: New File. * gdb.opencl/datatypes.exp: Likewise. * gdb.opencl/datatypes.cl: Likewise. * gdb.opencl/operators.exp: Likewise. * gdb.opencl/operators.cl: Likewise. * gdb.opencl/vec_comps.exp: Likewise. * gdb.opencl/vec_comps.cl: Likewise. * gdb.opencl/convs_casts.exp: Likewise. * gdb.opencl/convs_casts.cl: Likewise. * lib/opencl.exp: Likewise. * lib/opencl_hostapp.c: Likewise. * lib/opencl_kernel.cl: Likewise. * lib/cl_util.c: Likewise. * lib/cl_util.c: Likewise. * gdb.base/default.exp (set language): Add "opencl" to the list of languages. gdb/doc: * gdb.texinfo: (Summary) Add mention about OpenCL C language support. (OpenCL C): New node.
88 lines
2.7 KiB
C
88 lines
2.7 KiB
C
/* This testcase is part of GDB, the GNU debugger.
|
|
|
|
Copyright 2010 Free Software Foundation, Inc.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
Contributed by Ken Werner <ken.werner@de.ibm.com> */
|
|
|
|
/* Utility macros and functions for OpenCL applications. */
|
|
|
|
#ifndef CL_UTIL_H
|
|
#define CL_UTIL_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifdef __APPLE__
|
|
#include <OpenCL/opencl.h>
|
|
#else
|
|
#include <CL/cl.h>
|
|
#endif
|
|
#include <stdio.h>
|
|
|
|
/* Executes the given OpenCL function and checks its return value.
|
|
In case of failure (rc != CL_SUCCESS) an error string will be
|
|
printed to stderr and the program will be terminated. This Macro
|
|
is only intended for OpenCL routines which return cl_int. */
|
|
|
|
#define CHK(func)\
|
|
{\
|
|
int rc = (func);\
|
|
CHK_ERR (#func, rc);\
|
|
}
|
|
|
|
/* Macro that checks an OpenCL error code. In case of failure
|
|
(err != CL_SUCCESS) an error string will be printed to stderr
|
|
including the prefix and the program will be terminated. This
|
|
Macro is only intended to use in conjunction with OpenCL routines
|
|
which take a pointer to a cl_int as an argument to place their
|
|
error code. */
|
|
|
|
#define CHK_ERR(prefix, err)\
|
|
if (err != CL_SUCCESS)\
|
|
{\
|
|
fprintf (stderr, "CHK_ERR (%s, %d)\n", prefix, err);\
|
|
fprintf (stderr, "%s:%d error: %s\n", __FILE__, __LINE__,\
|
|
get_clerror_string (err));\
|
|
exit (EXIT_FAILURE);\
|
|
};
|
|
|
|
/* Return a pointer to a string that describes the error code specified
|
|
by the errcode argument. */
|
|
|
|
extern const char *get_clerror_string (int errcode);
|
|
|
|
/* Prints OpenCL information to stdout. */
|
|
|
|
extern void print_clinfo ();
|
|
|
|
/* Reads a given file into the memory and returns a pointer to the data or NULL
|
|
if the file does not exist. FILENAME specifies the location of the file to
|
|
be read. SIZE is an output parameter that returns the size of the file in
|
|
bytes. */
|
|
|
|
extern const char *read_file (const char * const filename, size_t *size);
|
|
|
|
/* Saves all program binaries of the given OpenCL PROGRAM. The file
|
|
names are extracted from the devices. */
|
|
|
|
extern void save_program_binaries (cl_program program);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* CL_UTIL_H */
|