PIPS
|
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "ri-util.h"
#include "misc.h"
#include "control.h"
#include "pipsdbm.h"
#include "resources.h"
Go to the source code of this file.
Functions | |
static void | dowhile_to_while_walker (statement stmt, bool *changed) |
bool | dowhile_to_while (const char *module_name) |
dowhile_to_while.c More... | |
void | do_loop_to_while_loop (statement sl) |
converts a doloop to a while loop, in place More... | |
void | do_loop_to_for_loop (statement sl) |
converts a doloop to a for loop, in place More... | |
void do_loop_to_for_loop | ( | statement | sl | ) |
converts a doloop to a for loop, in place
sl | l |
Definition at line 162 of file dowhile_to_while.c.
References copy_expression(), copy_statement(), entity_intrinsic(), entity_to_expression(), LESS_OR_EQUAL_OPERATOR_NAME, loop_body, loop_index, loop_range, make_assign_expression(), make_forloop(), make_instruction_forloop(), MakeBinaryCall(), pips_assert, PLUS_UPDATE_OPERATOR_NAME, range_increment, range_lower, range_upper, statement_loop(), statement_loop_p(), and update_statement_instruction().
Referenced by rw_loop().
void do_loop_to_while_loop | ( | statement | sl | ) |
converts a doloop to a while loop, in place
convert the loop to a while loop : fst the body
then the whileloop
and the prelude
sl | l |
Definition at line 115 of file dowhile_to_while.c.
References copy_statement(), entity_empty_label(), entity_intrinsic(), entity_to_expression(), expression_undefined, instruction_to_statement(), LESS_OR_EQUAL_OPERATOR_NAME, loop_body, loop_index, loop_range, make_assign_statement(), make_block_statement(), make_evaluation_before(), make_instruction_sequence(), make_instruction_whileloop(), make_sequence(), make_statement_list, make_whileloop(), MakeBinaryCall(), pips_assert, PLUS_OPERATOR_NAME, range_increment, range_lower, range_upper, statement_loop(), statement_loop_p(), and update_statement_instruction().
Referenced by terapix_loop_handler().
bool dowhile_to_while | ( | const char * | module_name | ) |
module_name | odule_name |
Definition at line 82 of file dowhile_to_while.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, dowhile_to_while_walker(), gen_context_recurse, gen_true2(), get_current_module_statement(), module_name(), module_name_to_entity(), module_reorder(), reset_current_module_entity(), reset_current_module_statement(), set_current_module_entity(), set_current_module_statement(), and statement_domain.
Definition at line 38 of file dowhile_to_while.c.
References clone_statement(), CONS, evaluation_after_p, free_clone_context(), free_evaluation(), get_current_module_entity(), insert_statement(), instruction_to_statement(), instruction_undefined, instruction_whileloop, instruction_whileloop_p, make_clone_context(), make_empty_statement, make_evaluation_before(), make_instruction_block(), NIL, statement_instruction, update_statement_instruction(), whileloop_body, and whileloop_evaluation.
Referenced by dowhile_to_while().