Functions | |
static void | pocc_driver_codegen_post_processing (FILE *body_file, s_pocc_options_t *poptions) |
static int | pocc_driver_codegen_program_finalize (s_pocc_options_t *poptions) |
void | pocc_driver_codegen (scoplib_scop_p program, s_pocc_options_t *poptions, s_pocc_utils_options_t *puoptions) |
static void pocc_driver_codegen_post_processing | ( | FILE * | body_file, | |
s_pocc_options_t * | poptions | |||
) | [static] |
static int pocc_driver_codegen_program_finalize | ( | s_pocc_options_t * | poptions | ) | [static] |
References s_pocc_options::codegen_timer_asm, s_pocc_options::codegen_timercode, s_pocc_options::compile_command, s_pocc_options::compile_program, s_pocc_options::execute_command_args, s_pocc_options::execute_program, s_pocc_options::input_file_name, s_pocc_options::inscop_fakepoccarray, s_pocc_options::output_file_name, s_pocc_options::pluto_parallel, s_pocc_options::program_exec_result, s_pocc_options::quiet, s_pocc_options::timeout, XFREE, and XMALLOC.
Referenced by pocc_driver_codegen().
void pocc_driver_codegen | ( | scoplib_scop_p | program, | |
s_pocc_options_t * | poptions, | |||
s_pocc_utils_options_t * | puoptions | |||
) |
Generate code for transformed scop.
(1) Create fake tile iterators inside the .scop: polyhedral tiling performed by Pluto does not update the iterators list. (2) Generate statement macros. (3) Convert the .scop to CloogProgram structure. (4) Generate declaration for the new iterators. (5) Generate polyhedral scanning code with CLooG algorithm (6) Call pocc_driver_clastops, to generate AST-based code and pretty-print it. (7) Final post-processing using PoCC internal scripts (timer code, unrolling, etc.) and full code generation.
References s_pocc_options::cloog_f, s_pocc_options::cloog_l, s_pocc_options::cloog_options, EXIT_FAILURE, s_pocc_options::output_file, s_pocc_options::output_file_name, POCC_CLOOG_UNDEF, pocc_driver_cloog(), pocc_driver_codegen_post_processing(), pocc_driver_codegen_program_finalize(), pocc_error(), s_pocc_options::quiet, s_pocc_options::use_past, XFREE, and XMALLOC.
Referenced by main(), and pocc_driver_after_letsee().