#include <stdio.h>#include <stdint.h>#include <strings.h>#include "newgen_assert.h"#include "newgen_types.h"#include "newgen_set.h"#include "newgen_list.h"#include "newgen_stack.h"#include "newgen_string_buffer.h"#include "newgen_auto_string.h"#include <memory.h>#include "newgen_map.h"#include "newgen_array.h"#include "newgen_generic_mapping.h"#include "newgen_generic_stack.h"#include "newgen_generic_function.h"
Go to the source code of this file.
Data Structures | |
| union | gen_chunk |
| A gen_chunk is used to store every object. More... | |
Defines | |
| #define | NEWGEN |
| #define | GEN_HEADER (1) |
| include <sys/stdtypes.h> | |
| #define | GEN_HEADER_SIZE (sizeof(gen_chunk)*GEN_HEADER) |
| #define | gen_chunk_undefined ((gen_chunk *)(-16)) |
| #define | gen_chunk_undefined_p(c) ((c)==gen_chunk_undefined) |
| #define | chunk_undefined gen_chunk_undefined |
| obsolete | |
| #define | chunk_undefined_p(c) gen_chunk_undefined_p(c) |
| #define | UNIT(x) "You don't want to take the value of a unit type, do you?" |
| #define | BOOL(x) ((x).b) |
| #define | CHAR(x) ((x).c) |
| #define | INT(x) ((x).i) |
| #define | FLOAT(x) ((x).f) |
| #define | STRING(x) ((x).s) |
| #define | CONSP(x) ((x).l) |
| #define | SETP(x) ((x).t) |
| #define | CHUNK(x) ((x).p) |
| #define | HASH(x) ((x).h) |
| #define | CHUNKP(x) ((x).p) |
| #define | LIST(x) ((x).l) |
| #define | SET(c) ((x).t) |
| #define | UNIT_TYPE "You don't want a unit type, do you?" |
| for the MAP macro to handle simple types correctly. | |
| #define | BOOL_TYPE bool |
| #define | CHAR_TYPE char |
| #define | INT_TYPE int |
| #define | FLOAT_TYPE float |
| #define | STRING_TYPE string |
| #define | bool_TYPE bool |
| #define | char_TYPE char |
| #define | int_TYPE int |
| #define | float_TYPE float |
| #define | string_TYPE string |
| #define | BOOL_CAST(x) BOOL(x) |
| #define | CHAR_CAST(x) CHAR(x) |
| #define | INT_CAST(x) INT(x) |
| #define | FLOAT_CAST(x) FLOAT(x) |
| #define | STRING_CAST(x) STRING(x) |
| #define | bool_CAST(x) BOOL(x) |
| #define | char_CAST(x) CHAR(x) |
| #define | int_CAST(x) INT(x) |
| #define | float_CAST(x) FLOAT(x) |
| #define | string_CAST(x) STRING(x) |
| #define | CONSP_TYPE list |
| #define | LIST_TYPE list |
| #define | SETP_TYPE set |
| #define | SET_TYPE set |
| #define | CHUNK_TYPE gen_chunkp |
| #define | CHUNKP_TYPE gen_chunkp |
| #define | HASH_TYPE hash_table |
| #define | consp_TYPE list |
| #define | list_TYPE list |
| #define | setp_TYPE set |
| #define | set_TYPE set |
| #define | chunk_TYPE gen_chunkp |
| #define | chunkp_TYPE gen_chunkp |
| #define | hash_TYPE hash_table |
| #define | CONSP_CAST(x) LIST(x) |
| #define | LIST_CAST(x) LIST(x) |
| #define | SETP_CAST(x) SET(x) |
| #define | SET_CAST(x) SET(x) |
| #define | CHUNK_CAST(x) CHUNK(x) |
| #define | CHUNKP_CAST(x) CHUNKP(x) |
| #define | HASH_CAST(x) HASH_TABLE(x) |
| #define | consp_CAST(x) LIST(x) |
| #define | list_CAST(x) LIST(x) |
| #define | setp_CAST(x) SET(x) |
| #define | set_CAST(x) SET(x) |
| #define | chunk_CAST(x) CHUNK(x) |
| #define | chunkp_CAST(x) CHUNKP(x) |
| #define | hash_CAST(x) HASH_TABLE(x) |
| #define | BOOL_NEWGEN_DOMAIN (bool_domain) |
| utils for typed cons | |
| #define | CHAR_NEWGEN_DOMAIN (char_domain) |
| #define | INT_NEWGEN_DOMAIN (int_domain) |
| #define | FLOAT_NEWGEN_DOMAIN (float_domain) |
| #define | STRING_NEWGEN_DOMAIN (string_domain) |
| #define | bool_NEWGEN_DOMAIN (bool_domain) |
| #define | char_NEWGEN_DOMAIN (char_domain) |
| #define | int_NEWGEN_DOMAIN (int_domain) |
| #define | float_NEWGEN_DOMAIN (float_domain) |
| #define | string_NEWGEN_DOMAIN (string_domain) |
| #define | LIST_NEWGEN_DOMAIN (-1) |
| #define | GEN_DBG_TRAV_LEAF 1 |
| #define | GEN_DBG_TRAV_SIMPLE 2 |
| #define | GEN_DBG_TRAV_OBJECT 4 |
| #define | GEN_DBG_CHECK 8 |
| #define | GEN_DBG_RECURSE 16 |
| #define | GEN_DBG_TRAV (GEN_DBG_TRAV_LEAF|GEN_DBG_TRAV_SIMPLE|GEN_DBG_TRAV_OBJECT) |
| #define | gen_get_ancestor_type(i, o) gen_get_ancestor(i,o) |
| #define | gen_start_recurse_ancestor_tracking() |
| #define | gen_stop_recurse_ancestor_tracking() |
| #define | gen_equal(lhs, rhs) (memcmp((lhs),(rhs))==0) |
| Since C is not-orthogonal (chunk1 == chunk2 is prohibited), this one is needed. | |
| #define | GEN_CHECK(e, t) (gen_check((e),(t)),e) |
| GEN_CHECK can be used to test run-time coherence of Newgen values. | |
| #define | GEN_CHECK_ALLOC 1 |
| #define | NEWGEN_CHECK_TYPE(dom, item) |
| this macro does about the same as gen_check, but inlined and safer. | |
Typedefs | |
| typedef union gen_chunk | gen_chunk |
| A gen_chunk is used to store every object. | |
| typedef union gen_chunk * | gen_chunkp |
| typedef void *( | gen_extract_func_t )(const gen_chunk) |
Enumerations | |
| enum | internal_type { unit_domain = 0, bool_domain, char_domain, int_domain, intptr_t_domain = int_domain, _int_domain = int_domain, float_domain, string_domain } |
some other macros need the domain number to keep track of the type. More... | |
Functions | |
| void gen_free | GEN_PROTO ((gen_chunk *)) |
| recursion and utilities | |
| int gen_free_tabulated | GEN_PROTO ((int)) |
| exported type translation functions. | |
| void gen_write | GEN_PROTO ((FILE *, gen_chunk *)) |
| int gen_write_tabulated | GEN_PROTO ((FILE *, int)) |
| void gen_read_spec | GEN_PROTO ((char *,...)) |
| gen_chunk *gen_read | GEN_PROTO ((FILE *)) |
| gen_chunk *gen_alloc | GEN_PROTO ((int, int, int,...)) |
| void gen_type_translation_reset | GEN_PROTO ((void)) |
| void gen_type_translation_read | GEN_PROTO ((string)) |
| void gen_init_external | GEN_PROTO ((int, void *(*)(FILE *, int(*)(void)), void(*)(FILE *, void *), void(*)(void *), void *(*)(void *), int(*)(void *))) |
| gen_chunk *gen_check | GEN_PROTO ((gen_chunk *, int)) |
| bool gen_sharing_p | GEN_PROTO ((gen_chunk *, gen_chunk *)) |
| void gen_null | GEN_PROTO ((void *)) |
| void gen_multi_recurse | GEN_PROTO ((void *,...)) |
| void gen_context_multi_recurse | GEN_PROTO ((void *, void *,...)) |
| void | gen_recurse (void *start, int domain_number, bool(*flt)(void *), void(*rwt)(void *)) |
| void | gen_context_recurse (void *start, void *context, int domain_number, bool(*flt)(void *, void *context), void(*rwt)(void *, void *context)) |
| gen_chunk * | gen_get_recurse_previous_visited_object (void) |
| Get the previously visited object. | |
| gen_chunk * | gen_get_recurse_current_ancestor (void) |
| Get the ancestor of the current object. | |
| gen_chunk * | gen_get_recurse_ancestor (const void *) |
| Get the first ancestor object encountered during the recursion for the given object. | |
| gen_chunk * | gen_get_ancestor (int, const void *) |
| return the first ancestor object found of the given type. | |
Variables | |
| int | gen_debug |
| Function interface for user applications. | |
Definition at line 83 of file genC.h.
Referenced by add_array_dimension_bound_test(), all_padded_p(), make_array_dimension_bound_test(), make_bottom_up_abc_tests(), make_true_array_dimension_bound_test(), and padded_simd_statement_p().
| #define BOOL_NEWGEN_DOMAIN (bool_domain) |
Definition at line 90 of file genC.h.
Referenced by add_to_list(), adg_dataflowgraph_with_extremities(), adg_get_read_entity_vertices(), adg_get_write_entity_vertices(), broadcast_conditions(), broadcast_dimensions(), call_rwt(), cons_of_gen_chunk(), contraintes_to_list(), count_eq_occ(), diff_lists(), fprint_l_psysteme(), fprint_pla_pp_dims(), free_guards(), gen_append(), gen_car(), gen_closure(), gen_concatenate(), gen_copy_seq(), gen_filter_tabulated(), gen_full_copy_list(), gen_in_list_p(), gen_insert_after(), gen_insert_before(), gen_list_and(), gen_list_and_not(), gen_list_equals_p(), gen_make_list(), gen_map(), gen_occurences(), gen_once(), gen_once_p(), gen_position(), gen_remove_from_list(), gen_sort_list(), gen_substitute_chunk_by_list(), general_merge_sort(), genread_parse(), guard_elimination(), in_list_p(), insert_sort(), list_to_contraintes(), loop_flt(), mapping_on_broadcast(), meld(), sort_eq_in_systems(), stmt_bdt_directions(), Tiling_buffer_allocation(), unify_lists(), union_list(), and update_list_for_module().
| #define chunk_TYPE gen_chunkp |
| #define CHUNK_TYPE gen_chunkp |
| #define chunk_undefined gen_chunk_undefined |
obsolete
Definition at line 79 of file genC.h.
Referenced by adg_merge_entities_lists(), entity_is_argument_p(), local_name_to_variable(), name_to_variable(), region_exact_projection_along_variable(), splc_linear_expression_p(), transformer_projection_with_redundancy_elimination_and_check(), translate_complexity_from_local_to_current_name(), unstructured_to_flow_insensitive_transformer(), variable_local_name(), variable_name(), and verify_structural_parameters().
Definition at line 92 of file genC.h.
Referenced by list_commuted_p().
| #define chunkp_TYPE gen_chunkp |
| #define CHUNKP_TYPE gen_chunkp |
Definition at line 88 of file genC.h.
Referenced by add_to_list_of_ranges_list(), dup_list_of_ranges_list(), full_copy_p(), general_merge_sort(), generate_message_from_3_lists(), genread_parse(), initialize_variable_used_map_for_current_loop_nest(), make_loop_nest_for_overlap(), messages_generation(), Overlap_Analysis(), partition_unknowns(), prgm_mapping(), update_indices_for_local_computation(), and valuer().
| #define GEN_CHECK_ALLOC 1 |
Definition at line 287 of file genC.h.
Referenced by make_abc_checked(), make_access(), make_action(), make_alias_association(), make_alias_associations(), make_align(), make_alignmap(), make_alignment(), make_analyse_map(), make_application(), make_approximation(), make_area(), make_argumentInfo(), make_array_dimension_checked(), make_assignment(), make_atom(), make_attachee(), make_attachment(), make_attachments(), make_basic(), make_bdt(), make_bound_pair(), make_c_parser_context(), make_call(), make_call_site(), make_callees(), make_cast(), make_cell(), make_chain(), make_clause(), make_clone_context(), make_code(), make_communication(), make_comp_desc(), make_comp_desc_set(), make_comp_sec(), make_complexity(), make_conditional(), make_cone(), make_conflict(), make_constant(), make_context_info(), make_control(), make_controlmap(), make_dad_struct(), make_dag(), make_dagvtx(), make_data(), make_data_status(), make_database(), make_dataflow(), make_dataval(), make_datavar(), make_db_owned_resources(), make_db_resource(), make_db_resources(), make_db_status(), make_db_symbol(), make_descriptor(), make_dfg_arc_label(), make_dfg_vertex_label(), make_dg_arc_label(), make_dg_vertex_label(), make_dimension(), make_dimension_checked(), make_directive(), make_directives(), make_distribute(), make_distributemap(), make_distribution(), make_dummy(), make_dynamic_check(), make_dynamic_status(), make_effect(), make_effects(), make_effects_classes(), make_entities(), make_entity(), make_entity_effects(), make_entity_entities(), make_entity_int(), make_entity_status(), make_entitymap(), make_equivalences(), make_evaluation(), make_execution(), make_expression(), make_expressionwithlevel(), make_extension(), make_extensions(), make_forloop(), make_formal(), make_function(), make_functional(), make_gexpression(), make_graph(), make_hpf_newdecl(), make_hpf_newdecls(), make_hpfc_reductions(), make_hpfc_status(), make_ifcount(), make_instruction(), make_interval_vertex_label(), make_language(), make_leaf_label(), make_lexpressionwithlevel(), make_lisp_expression(), make_loop(), make_loop_data(), make_makefile(), make_match(), make_matchTree(), make_matchTreeSons(), make_message(), make_mode(), make_multitest(), make_newdeclmap(), make_normalized(), make_numbers_status(), make_opcode(), make_opcodeClass(), make_outline_data(), make_outline_map(), make_outlined(), make_overlap(), make_overlapsmap(), make_owner(), make_parameter(), make_pattern(), make_patternArg(), make_patternx(), make_persistant_expression_to_effects(), make_persistant_expression_to_entity(), make_persistant_statement_to_control(), make_persistant_statement_to_int(), make_persistant_statement_to_statement(), make_placement(), make_plc(), make_points_to(), make_points_to_graph(), make_points_to_list(), make_points_to_path(), make_pragma(), make_predicate(), make_preference(), make_property(), make_pstatement(), make_pstatement_reductions(), make_qualifier(), make_quast(), make_quast_leaf(), make_quast_value(), make_ram(), make_range(), make_rangecount(), make_real_resource(), make_reduction(), make_reduction_operator(), make_reductionInfo(), make_reductions(), make_ref_temp(), make_reference(), make_referenceInfo(), make_remapping(), make_renaming(), make_resource(), make_rtype(), make_rule(), make_scc(), make_sccflags(), make_sccs(), make_schedule(), make_sentence(), make_sequence(), make_sexpression(), make_simdStatementInfo(), make_simple_section(), make_sizeofexpression(), make_statement(), make_statement_effects(), make_statement_entities(), make_statement_points_to(), make_statement_renamings(), make_statementArgument(), make_statementInfo(), make_static_control(), make_status(), make_step_atomized_map(), make_step_entity_map(), make_step_private(), make_step_reduction(), make_step_region_analyse(), make_step_status(), make_storage(), make_style(), make_subscript(), make_successor(), make_symbolic(), make_syntax(), make_test(), make_text(), make_tiling(), make_transformation(), make_transformer(), make_type(), make_type_directive(), make_ubs(), make_ubs_check(), make_unformatted(), make_unstructured(), make_value(), make_var_val(), make_varcount(), make_variable(), make_vectorElement(), make_vertex(), make_virtual_resource(), make_vtxcontent(), make_whileloop(), make_word_to_attachments(), and pipsdbm_read_statement_function().
| #define gen_chunk_undefined ((gen_chunk *)(-16)) |
Definition at line 74 of file genC.h.
Referenced by add_a_generic_prettyprint(), atom_cse_expression(), compact_phi_functions(), control_in_trail_p(), extends_tabulated(), gen_check(), gen_clear_tabulated_element(), gen_copy_tree(), gen_enter_tabulated(), gen_filter_tabulated(), gen_find(), gen_find_eq(), gen_find_from_end(), gen_find_if(), gen_find_if_from_end(), gen_find_tabulated(), gen_init_tabulated(), gen_internal_context_multi_recurse(), gen_make_array(), gen_mapc_tabulated(), gen_put_tabulated(), gen_read(), genread_parse(), init_array(), init_statement_successors_map(), newgen_domain_index(), write_array_leaf(), write_leaf_in(), and write_tabulated_leaf_in().
Definition at line 75 of file genC.h.
Referenced by AddEntityToDeclarations(), AddLocalEntityToDeclarations(), compile_module(), do_clone_loop(), entity_generate_missing_declarations(), entity_in_list_p(), find_label_entity(), gen_copy_tree(), gen_defined_p(), gen_type(), make_ref(), and statement_purge_declarations_walker().
| #define GEN_DBG_CHECK 8 |
Definition at line 197 of file genC.h.
Referenced by do_loop_unroll(), full_loop_unroll(), gen_consistent_p(), and gen_trav_leaf().
| #define GEN_DBG_RECURSE 16 |
Definition at line 198 of file genC.h.
Referenced by init_gen_quick_recurse_tables(), initialize_DirectDomainsTable(), initialize_domain_DecisionTables(), and initialize_domain_DirectDomainsTable().
| #define GEN_DBG_TRAV (GEN_DBG_TRAV_LEAF|GEN_DBG_TRAV_SIMPLE|GEN_DBG_TRAV_OBJECT) |
| #define GEN_DBG_TRAV_LEAF 1 |
Definition at line 194 of file genC.h.
Referenced by gen_trav_leaf().
| #define GEN_DBG_TRAV_OBJECT 4 |
Definition at line 196 of file genC.h.
Referenced by gen_trav_obj().
| #define GEN_DBG_TRAV_SIMPLE 2 |
Definition at line 195 of file genC.h.
Referenced by gen_trav_simple().
| #define gen_equal | ( | lhs, | |||
| rhs | ) | (memcmp((lhs),(rhs))==0) |
Definition at line 265 of file genC.h.
Referenced by is_elsif_test_p().
| #define GEN_HEADER (1) |
include <sys/stdtypes.h>
extern char * strdup(const char *);The size of the management information inside each Newgen object (in gen_chunks)
Definition at line 45 of file genC.h.
Referenced by gen_size().
| #define hash_TYPE hash_table |
| #define HASH_TYPE hash_table |
Definition at line 85 of file genC.h.
Referenced by add_aliases_for_current_call_site(), add_array_dimension_bound_test(), adg_print_graph(), adg_reorder_statement_number(), AK_ignore_this_level(), align_check(), aligned_p(), analyse_reference(), array_access_to_array_ranges(), build_contraction_matrices(), build_third_comb(), build_third_subcomb(), calculate_delay(), check_for_conflict(), cmf_layout_align(), conflict_dup(), consecutive_refs_p(), contains_level_l_dependence(), craft_layout_align(), dataflows_on_reference(), dependance_vertices_p(), fill_gLoopToToggleEnt(), generate_one_message(), genread_parse(), get_basic_from_opcode(), get_consec_offset(), get_subwordSize_from_opcode(), insert_pattern(), insert_transformation(), integer_in_list_p(), is_stat_in_pred_list(), list_of_same_or_equivalence_arguments(), make_array_bounds(), make_array_dimension_bound_test(), make_bottom_up_abc_tests(), make_dual(), make_filtered_dg_or_dvdg(), make_sched_proto(), make_true_array_dimension_bound_test(), message_manageable_p(), prepare_reindexing(), prettyprint_conflict(), prettyprint_dependence_graph(), prettyprint_dependence_graph_view(), prettyprint_dot_dependence_graph(), process_static_initialization(), process_value_list(), remove_dependance_from_levels(), same_or_equivalence_argument_add_aliases(), search_parallel_loops(), search_scc_bdt(), TestCoupleOfReferences(), TestDependence(), TestDiVariables(), TransRefTemp(), TransSimpSec(), update_indices_for_local_computation(), whole_loop_parallelize(), and yyparse().
Definition at line 93 of file genC.h.
Referenced by add_classes_for_this_callee(), add_pair_to_existing_list(), add_to_list_of_ranges_list(), add_unmatched_alias_pairs(), alias_classes(), alias_lists(), classify_reference(), comEngine_opt_loop_interchange(), compare_heads_rest_lists(), compare_matched_alias_pairs(), compare_other_list(), compare_rest_lists(), compare_rest_other_lists(), compare_unmatched_alias_pairs(), dup_list_of_ranges_list(), fprint_wp65_hash_tables(), initialize_offsets(), loop_rewrite(), make_all_movement_blocks(), make_classes_from_lists(), make_load_blocks(), make_new_local_variables(), make_store_blocks(), match_this_callee_class_elem(), opt_loop_interchange_fill_lists(), Overlap_Analysis(), parallel_loop_nest_to_body(), reference_conflicting_test_and_update(), save_callee_class(), sequence_rewrite(), set_dimensions_of_local_variables(), text_equivalences(), unite_lists_containing_same_exact_region(), and unite_lists_with_same_head().
| #define NEWGEN_CHECK_TYPE | ( | dom, | |||
| item | ) |
{ \
_int __type = dom, __itype; \
void * __item = (void *) item; \
message_assert("valid required domaine number", \
__type>0 && __type<MAX_DOMAIN); \
if (Domains[__type].domain && \
Domains[__type].domain->co.type==CONSTRUCTED_DT) { \
message_assert("some item", __item!=NULL); \
message_assert("item is defined", __item!=gen_chunk_undefined); \
__itype = ((gen_chunk*) __item)->i; \
if (__itype!=__type) { \
message_assert("valid item domain number", \
__itype>0 && __itype<MAX_DOMAIN); \
fprintf(stderr, "type error: expecting %s, got %s\n", \
Domains[__type].name, Domains[__itype].name); \
message_assert("check type", __itype==__type); \
} \
} \
\
}
this macro does about the same as gen_check, but inlined and safer.
the item *must* be some newgen allocated structure.
Definition at line 296 of file genC.h.
Referenced by gen_make_list(), and gen_typed_cons().
Definition at line 87 of file genC.h.
Referenced by activate_phase(), active_phase_p(), actual_c_parser(), add_alias_lists_callees(), add_call_to_callees(), add_classes_callees(), add_pragma_strings_to_statement(), add_rule(), AddToCalledModules(), alias_pairs(), alias_propagation(), alias_propagation_callers(), array_resizing_top_down(), atom_cse_expression(), attach_to_words(), best_similar_expression(), build_options_menu_and_panel(), build_real_resources(), C_any_comment_to_text(), c_parse(), callgraph(), clone_on_argument(), common_is_visible_p(), db_clean_db_resources(), db_delete_obsolete_resources(), do_inlining(), do_kernelize(), effect_words_reference(), EndOfProcedure(), entity_to_callees(), fetch_callees_complexities(), find_rule_by_resource(), first_word_of_sentence(), flag_kernel(), flag_loop(), fprint_activated(), gen_array_from_list(), gen_copy_string_list(), generate_alternate_return_targets(), generate_return_code_checks(), generic_c_words_simplified_entity(), get_more_derived_resources(), insert_xml_callees(), is_a_caller_or_error(), kernel_load_store(), last_word_of_sentence(), list_from_gen_array(), list_to_array(), list_to_string(), load_resources(), loop_private_variables(), MakeAssignedOrComputedGotoInst(), MakeParameterList(), module_is_called_by_main_program_p(), node(), ordinary_summary_precondition(), pips_main(), pips_parse_arguments(), pragma_to_string(), prettyprint_dot_label(), print_callees(), print_loops(), print_sentence(), process_user_file(), recursive_append(), remove_from_called_modules(), save_active_phases(), sentence_data_statement(), set_a_generic_prettyprint(), stub_head(), stub_text(), summary_out_effects_engine(), summary_total_postcondition(), syn_parse(), text_directive(), text_io_block_if(), text_region(), text_region_no_action(), text_statement_any_effect_type(), text_summary_any_effect_type(), top_down_adn_callers_arrays(), transitive_positions(), update_called_modules(), update_list_from_array(), verify_formal_and_common_variables(), word_points_to(), words_assign_op(), words_entity_list(), words_genuine_regular_call(), words_points_to_list(), words_postfix_unary_op(), words_prefix_unary_op(), words_range(), words_reduction(), words_reductions(), words_reference(), words_reference_1(), words_subscript_range(), words_to_string(), words_type(), and yyparse().
A gen_chunk is used to store every object.
It has to be able to store, at least, a (CHUNK *) and every inlinable value. To use a union is a trick to enable the assignment opereator and the ability of passing and returning them as values (for function): this requires a sufficiently clever compiler ! * Note that the field name of inlinable types have to begin with the same letter as the type itself (this can be fixed if necessary but why bother). This characteristic is used by the Newgen code generator.
| typedef union gen_chunk * gen_chunkp |
| typedef void*( gen_extract_func_t)(const gen_chunk) |
| enum internal_type |
some other macros need the domain number to keep track of the type.
they are provided here for the internal types.
| unit_domain |
Should start at 1 to be able to iterate on them with gen_recurse() functions. |
| bool_domain | |
| char_domain | |
| int_domain | |
| intptr_t_domain | |
| _int_domain | |
| float_domain | |
| string_domain |
Definition at line 158 of file genC.h.
00158 { 00159 unit_domain = 0, /**< Should start at 1 to be able to iterate on them with 00160 gen_recurse() functions */ 00161 bool_domain, 00162 char_domain, 00163 int_domain, 00164 intptr_t_domain = int_domain, 00165 _int_domain = int_domain, 00166 float_domain, 00167 string_domain 00168 };
| void gen_context_recurse | ( | void * | start, | |
| void * | context, | |||
| int | domain_number, | |||
| bool(*)(void *, void *context) | flt, | |||
| void(*)(void *, void *context) | rwt | |||
| ) |
| void gen_full_recurse GEN_PROTO | ( | (void *, void *,...) | ) |
| void gen_multi_recurse GEN_PROTO | ( | (void *,...) | ) |
| void gen_recurse_stop GEN_PROTO | ( | (void *) | ) |
| void gen_init_external GEN_PROTO | ( | (int, void *(*)(FILE *, int(*)(void)), void(*)(FILE *, void *), void(*)(void *), void *(*)(void *), int(*)(void *)) | ) |
| void gen_type_translation_write GEN_PROTO | ( | (string) | ) |
| void gen_type_translation_default GEN_PROTO | ( | (void) | ) |
| gen_chunk* gen_alloc GEN_PROTO | ( | (int, int, int,...) | ) |
| gen_chunk* gen_read GEN_PROTO | ( | (FILE *) | ) |
| void gen_read_spec GEN_PROTO | ( | (char *,...) | ) |
| int gen_read_and_check_tabulated GEN_PROTO | ( | (FILE *, int) | ) |
| void gen_write GEN_PROTO | ( | (FILE *, gen_chunk *) | ) |
| int gen_tabulated_consistent_p GEN_PROTO | ( | (int) | ) |
exported type translation functions.
| void gen_recurse | ( | void * | start, | |
| int | domain_number, | |||
| bool(*)(void *) | flt, | |||
| void(*)(void *) | rwt | |||
| ) |
| int gen_debug |
Function interface for user applications.
Function interface for user applications.
If you set gen_debug dynamically with gdb, do not forget to set gen_debug_indent to a positive enough value to avoid problems when gen_trav_obj() moves upwards the point it was when gen_debug was set
Definition at line 64 of file genClib.c.
Referenced by do_loop_unroll(), full_loop_unroll(), gen_consistent_p(), gen_trav_leaf(), gen_trav_obj(), gen_trav_simple(), init_gen_quick_recurse_tables(), initialize_DirectDomainsTable(), initialize_domain_DecisionTables(), and initialize_domain_DirectDomainsTable().
1.6.2-20100208