PIPS
|
#include <ctype.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "ri-util.h"
#include "workspace-util.h"
#include "text.h"
#include "pipsdbm.h"
#include "resources.h"
#include "properties.h"
#include "misc.h"
#include "conversion.h"
#include "effects.h"
#include "semantics.h"
#include "transformer.h"
#include "control.h"
#include "effects-generic.h"
#include "effects-simple.h"
#include "effects-convex.h"
#include "text-util.h"
#include "parser_private.h"
#include "accel-util.h"
Go to the source code of this file.
Data Structures | |
struct | entity_list_pair |
struct | entity_to_declaring_statement_t |
bool array_expansion | ( | const char * | module_name | ) |
init
do
validate
module_name | odule_name |
Definition at line 395 of file statement_insertion.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, do_array_expansion(), do_array_expansion_aux(), expanded, free_value_mappings(), gen_context_recurse, get_current_module_entity(), get_current_module_statement(), HASH_DEFAULT_SIZE, hash_pointer, hash_table_free(), hash_table_make(), module_name(), module_name_to_entity(), module_reorder(), module_to_value_mappings(), reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_precondition_map(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), set_precondition_map(), set_proper_rw_effects(), and statement_domain.
|
static |
if we reach this point, we are ready for backward translation from vecteur to dimensions :)
Definition at line 305 of file statement_insertion.c.
References array_entity_p(), CATCH, CONS, constraints_for_bounds(), constraints_to_loop_bound(), CONTRAINTE_UNDEFINED_P, DIMENSION, DIVIDE_OPERATOR_NAME, dummy_identifier, dummy_identifier_p, ENTITY, entity_declaration_sc(), entity_declarations, entity_intrinsic(), entity_storage, entity_to_declaring_statement(), entity_type, expanded, expressions_to_entities(), f(), FOREACH, formal_offset, formal_parameter_p(), gen_free_list(), gen_full_copy_list(), gen_full_free_list(), gen_nreverse(), get_current_module_entity(), get_current_module_statement(), hash_get(), hash_put(), HASH_UNDEFINED_VALUE, intptr_t, list_to_base(), load_cumulated_rw_effects_list(), load_statement_precondition(), make_dimension(), module_functional_parameters, NIL, offset, ok, overflow_error, PARAMETER, parameter_dummy, pips_debug, pips_user_warning, predicate_system, reference_indices, reference_variable, REGION, region_any_reference, region_system, sc_cute_convex_hull(), sc_rectangular_hull(), sc_rm(), sc_safe_append(), set_assign_list(), set_belong_p(), set_free(), set_make(), set_pointer, simplify_minmax_expression(), storage_formal, transformer_free(), transformer_range(), transformer_relation, TRY, type_variable, UNCATCH, variable_dimensions, and VOLATILE_FOREACH.
Referenced by array_expansion().
|
static |
Definition at line 294 of file statement_insertion.c.
References CONS, ENTITY, expanded, FOREACH, gen_free_list(), hash_del(), HASH_FOREACH, and NIL.
Referenced by array_expansion().
first find a statement with the relevant pragma
make sure all data access are ok by building the convex union of data access and data declarations
update pragma
update pragma
Definition at line 180 of file statement_insertion.c.
References effects_effects, empty_string_p(), ENDP, EXTENSION, extension_pragma, extensions_extension, find_statements_with_pragma(), FOREACH, free(), get_string_property(), load_cumulated_rw_effects_list(), load_proper_rw_effects(), out_regions(), pips_user_warning, pragma_string, pragma_string_p, STATEMENT, statement_extensions, statement_insertion_fix_access(), and strdup().
Referenced by statement_insertion().
returns the statement block declaring entity e
among all thoses in top
assumes the entity is declared locally c only
Definition at line 283 of file statement_insertion.c.
References entity_to_declaring_statement_aux(), formal_parameter_p(), gen_context_recurse, gen_true2(), pips_assert, statement_domain, statement_undefined, and statement_undefined_p.
Referenced by do_array_expansion().
|
static |
Definition at line 269 of file statement_insertion.c.
References entity_in_list_p(), gen_recurse_stop(), statement_block_p, and statement_declarations.
Referenced by entity_to_declaring_statement().
returns a list of call to to
found in in
Definition at line 75 of file statement_insertion.c.
References call_domain, find_calls_to_function_walker(), find_calls_to_function_walker_in_declaration(), entity_list_pair::found, gen_context_multi_recurse(), gen_true2(), NIL, and statement_domain.
Referenced by statement_insertion_fix_access_in_callers().
|
static |
Definition at line 61 of file statement_insertion.c.
References CALL, call_function, CONS, entity_list_pair::found, same_entity_p(), and entity_list_pair::to.
Referenced by find_calls_to_function(), and find_calls_to_function_walker_in_declaration().
|
static |
Definition at line 67 of file statement_insertion.c.
References call_domain, ENTITY, entity_initial, find_calls_to_function_walker(), FOREACH, gen_context_recurse, gen_true2(), statement_declarations, and value_expression_p.
Referenced by find_calls_to_function().
bool statement_insertion | ( | const char * | module_name | ) |
init
do
validate
module_name | odule_name |
Definition at line 240 of file statement_insertion.c.
References db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, debug_off, debug_on, do_statement_insertion(), get_current_module_statement(), module_name(), module_name_to_entity(), module_reorder(), reset_cumulated_rw_effects(), reset_current_module_entity(), reset_current_module_statement(), reset_proper_rw_effects(), set_cumulated_rw_effects(), set_current_module_entity(), set_current_module_statement(), and set_proper_rw_effects().
|
static |
fixes statement declaration depending on region access
Definition at line 120 of file statement_insertion.c.
References CATCH, CONS, constraints_for_bounds(), constraints_to_loop_bound(), CONTRAINTE_UNDEFINED_P, DIMENSION, DIVIDE_OPERATOR_NAME, ENTITY, entity_declaration_sc(), entity_intrinsic(), entity_type, expressions_to_entities(), FOREACH, formal_parameter_p(), gen_free_list(), gen_full_free_list(), gen_nreverse(), get_current_module_name(), make_dimension(), NIL, overflow_error, pips_debug, pips_user_warning, reference_indices, reference_variable, REGION, region_any_reference, region_system, return(), sc_cute_convex_hull(), sc_rm(), statement_insertion_fix_access_in_callers(), TRY, type_variable, UNCATCH, variable_dimensions, and VOLATILE_FOREACH.
Referenced by do_statement_insertion().
|
static |
tries hard to propagate entity dimension change
Definition at line 86 of file statement_insertion.c.
References CALL, call_arguments, callees_callees, caller_name, db_get_memory_resource(), DB_PUT_MEMORY_RESOURCE, entity_storage, entity_type, EXPRESSION, expression_reference(), expression_reference_p(), find_calls_to_function(), FOREACH, formal_offset, gen_free_list(), gen_full_copy_list(), gen_full_free_list(), gen_length(), gen_nth(), intptr_t, module_name(), module_name_to_entity(), pips_internal_error, POP, reference_indices, reference_variable, storage_formal, STRING, type_variable, ultimate_type(), and variable_dimensions.
Referenced by statement_insertion_fix_access().