6 #ifndef expressions_header_included
7 #define expressions_header_included
100 extern void atomize_as_required(
statement ,
bool (* )(
reference,
expression),
bool (* )(
call,
expression),
bool (* )(
test,
expression),
bool (* )(
range,
expression),
bool (* )(
whileloop,
expression),
entity (* )(
entity,
basic));
115 extern bool icm(
const char *);
void perform_icm_association(const char *, statement)
sequence_gcm_cse.c
eformat_t partial_eval_expression(expression, Psysteme, effects)
bool simplify_subscripts(const char *)
simplify.c
eformat_t partial_eval_call_expression(expression, Psysteme, effects)
eformat_t partial_eval_minus_c_operator(expression *, expression *, Psysteme, effects)
void partial_eval_declarations(list, Psysteme, effects)
void regenerate_expression(eformat_t *, expression *)
in order to regenerate expression from eformat.
eformat_t partial_eval_max_operator(expression *, expression *, Psysteme, effects)
void convert_to_c_operators(void *)
void naryfication_of_expressions(statement)
optimize.c
void substitute_expression(void *, expression, expression)
expression_substitution.c
eformat_t partial_eval_mult_operator(expression *, expression *, Psysteme, effects)
bool icm(const char *)
Pipsmake phase: Invariant Code Motion.
bool expression_substitution(const char *)
simple pass that performs substitution of expression by module call
eformat_t partial_eval_unary_operator(entity, cons *, Psysteme, effects)
eformat_t partial_eval_min_or_max_operator(int, expression *, expression *, Psysteme, effects)
void set_live_loop_indices(void)
cproto-generated files
void partial_eval_declaration(entity, Psysteme, effects)
assumes conditions checked by partial_eval_declarations()
eformat_t partial_eval_call(call, Psysteme, effects)
bool simplify_constant_address_expressions(const char *)
transforms *"aer" into 'a' do not take care of "aer"[2] but could be extended to
void perform_ac_cse(const char *, statement)
void atomize_as_required(statement, bool(*)(reference, expression), bool(*)(call, expression), bool(*)(test, expression), bool(*)(range, expression), bool(*)(whileloop, expression), entity(*)(entity, basic))
eformat_t partial_eval_reference(expression, Psysteme, effects)
bool rename_operator(const char *)
rename_operator.c
eformat_t partial_eval_power_operator(expression *, expression *, Psysteme, effects)
void try_reorder_expressions(void *, bool)
bool simplify_complex(const char *)
split complexes into an array with first element <> real part and second element <> imaginary part
eformat_t partial_eval_binary_operator_old(entity, cons *, Psysteme, effects)
void inverse_normalization_of_expressions(statement)
bool instruction_selection(const char *)
instruction_selection.c
bool forward_substitute(const char *)
forward_substitution.c
bool entity_written_p(entity, effects)
eformat_t partial_eval_div_or_mod_operator(int, expression *, expression *, Psysteme, effects)
bool optimize_expressions(const char *)
pipsmake interface to apply expression optimization according to various strategy.
void init_use_preconditions(const char *)
void print_eformat(eformat_t, char *)
bool common_subexpression_elimination(const char *)
Pipsmake phase: Common Subexpression Elimination.
bool eformat_equivalent_p(eformat_t, eformat_t)
effects stmt_to_fx(statement, statement_effects)
returns proper effects associated to statement stmt
void reset_live_loop_indices(void)
eformat_t partial_eval_c_mod_operator(expression *, expression *, Psysteme, effects)
void partial_eval_call_and_regenerate(call, Psysteme, effects)
eformat_t partial_eval_plus_or_minus_operator(int, expression *, expression *, Psysteme, effects)
eformat_t partial_eval_expression_and_copy(expression, Psysteme, effects)
void init_use_proper_effects(const char *)
void dump_live_loop_indices(void)
bool partial_eval(const char *)
Top-level function.
eformat_t partial_eval_div_operator(expression *, expression *, Psysteme, effects)
void regenerate_call(eformat_t *, call)
We are likely to end up in trouble because the regenerated expression may not be a call; for instance...
eformat_t partial_eval_update_operators(expression *, expression *, Psysteme, effects)
expression generate_monome(int, expression)
entity inverse_operator_of(entity)
void cleanup_subscripts(void *)
eformat_t partial_eval_binary_operator(entity, cons *, Psysteme, effects)
void complex_translation_struct_of_array(list *, list)
eformat_t partial_eval_syntax(expression, Psysteme, effects)
void complex_translation_array_of_structs(list *, list)
eformat_t partial_eval_min_operator(expression *, expression *, Psysteme, effects)
void transformer_map_print(void)
eformat_t partial_eval_minus_operator(expression *, expression *, Psysteme, effects)
void partial_eval_expression_and_regenerate(expression *, Psysteme, effects)
eformat_t partial_eval_mod_operator(expression *, expression *, Psysteme, effects)
void convert_to_standard_operators(void *)
Psysteme stmt_prec(statement)
statement atomize_this_expression(entity(*)(entity, basic), expression)
simple_atomize.c
void simplify_c_operator(statement)
replace PLUS_C_OPERATOR_NAME by PLUS_OPERATOR_NAME when relevant
eformat_t partial_eval_plus_c_operator(expression *, expression *, Psysteme, effects)
bool split_structures(const char *)
void partial_eval_statement(statement)
apply partial eval on each statement we cannot recurse on something other than a statement because we...
eformat_t partial_eval_plus_operator(expression *, expression *, Psysteme, effects)
The structure used to build lists in NewGen.