6 struct ppcg_debug_options
{
7 int dump_schedule_constraints
;
9 int dump_final_schedule
;
15 struct ppcg_debug_options
*debug
;
25 /* Take advantage of private memory. */
26 int use_private_memory
;
28 /* Take advantage of shared memory. */
29 int use_shared_memory
;
31 /* Maximal amount of shared memory. */
32 int max_shared_memory
;
34 /* The target we generate code for. */
37 /* Generate OpenMP macros (C target only). */
40 /* Linearize all device arrays. */
41 int linearize_device_arrays
;
43 /* Allow live range to be reordered. */
44 int live_range_reordering
;
46 /* Options to pass to the OpenCL compiler. */
47 char *opencl_compiler_options
;
48 /* Prefer GPU device over CPU. */
50 /* Number of files to include. */
51 int opencl_n_include_file
;
52 /* Files to include. */
53 const char **opencl_include_files
;
54 /* Print definitions of types in kernels. */
55 int opencl_print_kernel_types
;
56 /* Embed OpenCL kernel code in host code. */
57 int opencl_embed_kernel_code
;
59 /* Name of file for saving isl computed schedule or NULL. */
60 char *save_schedule_file
;
61 /* Name of file for loading schedule or NULL. */
62 char *load_schedule_file
;
65 ISL_ARG_DECL(ppcg_debug_options
, struct ppcg_debug_options
,
66 ppcg_debug_options_args
)
67 ISL_ARG_DECL(ppcg_options
, struct ppcg_options
, ppcg_options_args
)
69 #define PPCG_TARGET_C 0
70 #define PPCG_TARGET_CUDA 1
71 #define PPCG_TARGET_OPENCL 2