README: add a note about additional variables in the generated code
[ppcg.git] / ppcg_options.h
blobfd0dfa5891443b211687421ad187f3b557ebef47
1 #ifndef PPCG_OPTIONS_H
2 #define PPCG_OPTIONS_H
4 #include <isl/arg.h>
6 struct ppcg_debug_options {
7 int dump_schedule_constraints;
8 int dump_schedule;
9 };
11 struct ppcg_options {
12 struct ppcg_debug_options *debug;
14 int scale_tile_loops;
15 int wrap;
17 char *ctx;
18 char *sizes;
20 int tile_size;
22 /* Take advantage of private memory. */
23 int use_private_memory;
25 /* Take advantage of shared memory. */
26 int use_shared_memory;
28 /* Maximal amount of shared memory. */
29 int max_shared_memory;
31 /* The target we generate code for. */
32 int target;
34 /* Generate OpenMP macros (C target only). */
35 int openmp;
37 /* Linearize all device arrays. */
38 int linearize_device_arrays;
40 /* Allow live range to be reordered. */
41 int live_range_reordering;
43 /* Options to pass to the OpenCL compiler. */
44 char *opencl_compiler_options;
45 /* Prefer GPU device over CPU. */
46 int opencl_use_gpu;
49 ISL_ARG_DECL(ppcg_debug_options, struct ppcg_debug_options,
50 ppcg_debug_options_args)
51 ISL_ARG_DECL(ppcg_options, struct ppcg_options, ppcg_options_args)
53 #define PPCG_TARGET_C 0
54 #define PPCG_TARGET_CUDA 1
55 #define PPCG_TARGET_OPENCL 2
57 #endif