genC.h File Reference

#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"
Include dependency graph for genC.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_chunkgen_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_chunkgen_get_recurse_previous_visited_object (void)
 Get the previously visited object.
gen_chunkgen_get_recurse_current_ancestor (void)
 Get the ancestor of the current object.
gen_chunkgen_get_recurse_ancestor (const void *)
 Get the first ancestor object encountered during the recursion for the given object.
gen_chunkgen_get_ancestor (int, const void *)
 return the first ancestor object found of the given type.

Variables

int gen_debug
 Function interface for user applications.

Define Documentation

#define BOOL ( x   )     ((x).b)
#define bool_CAST ( x   )     BOOL(x)

Definition at line 117 of file genC.h.

#define BOOL_CAST ( x   )     BOOL(x)

Definition at line 111 of file genC.h.

#define bool_NEWGEN_DOMAIN   (bool_domain)

Definition at line 177 of file genC.h.

#define BOOL_NEWGEN_DOMAIN   (bool_domain)

utils for typed cons

Definition at line 171 of file genC.h.

#define bool_TYPE   bool

Definition at line 105 of file genC.h.

#define BOOL_TYPE   bool

Definition at line 99 of file genC.h.

#define CHAR ( x   )     ((x).c)

Definition at line 84 of file genC.h.

#define char_CAST ( x   )     CHAR(x)

Definition at line 118 of file genC.h.

#define CHAR_CAST ( x   )     CHAR(x)

Definition at line 112 of file genC.h.

#define char_NEWGEN_DOMAIN   (char_domain)

Definition at line 178 of file genC.h.

#define CHAR_NEWGEN_DOMAIN   (char_domain)

Definition at line 172 of file genC.h.

#define char_TYPE   char

Definition at line 106 of file genC.h.

#define CHAR_TYPE   char

Definition at line 100 of file genC.h.

#define CHUNK ( x   )     ((x).p)
#define chunk_CAST ( x   )     CHUNK(x)

Definition at line 151 of file genC.h.

#define CHUNK_CAST ( x   )     CHUNK(x)

Definition at line 143 of file genC.h.

#define chunk_TYPE   gen_chunkp

Definition at line 135 of file genC.h.

#define CHUNK_TYPE   gen_chunkp

Definition at line 127 of file genC.h.

#define chunk_undefined   gen_chunk_undefined
#define chunk_undefined_p ( c   )     gen_chunk_undefined_p(c)

Definition at line 80 of file genC.h.

#define CHUNKP ( x   )     ((x).p)

Definition at line 92 of file genC.h.

Referenced by list_commuted_p().

#define chunkp_CAST ( x   )     CHUNKP(x)

Definition at line 152 of file genC.h.

#define CHUNKP_CAST ( x   )     CHUNKP(x)

Definition at line 144 of file genC.h.

#define chunkp_TYPE   gen_chunkp

Definition at line 136 of file genC.h.

#define CHUNKP_TYPE   gen_chunkp

Definition at line 128 of file genC.h.

#define CONSP ( x   )     ((x).l)
#define consp_CAST ( x   )     LIST(x)

Definition at line 147 of file genC.h.

#define CONSP_CAST ( x   )     LIST(x)

Definition at line 139 of file genC.h.

#define consp_TYPE   list

Definition at line 131 of file genC.h.

#define CONSP_TYPE   list

Definition at line 123 of file genC.h.

#define FLOAT ( x   )     ((x).f)

Definition at line 86 of file genC.h.

#define float_CAST ( x   )     FLOAT(x)

Definition at line 120 of file genC.h.

#define FLOAT_CAST ( x   )     FLOAT(x)

Definition at line 114 of file genC.h.

#define float_NEWGEN_DOMAIN   (float_domain)

Definition at line 180 of file genC.h.

#define FLOAT_NEWGEN_DOMAIN   (float_domain)

Definition at line 174 of file genC.h.

#define float_TYPE   float

Definition at line 108 of file genC.h.

#define FLOAT_TYPE   float

Definition at line 102 of file genC.h.

#define GEN_CHECK ( e,
 )     (gen_check((e),(t)),e)

GEN_CHECK can be used to test run-time coherence of Newgen values.

Definition at line 286 of file genC.h.

#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))
#define gen_chunk_undefined_p ( c   )     ((c)==gen_chunk_undefined)
#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
#define GEN_DBG_TRAV   (GEN_DBG_TRAV_LEAF|GEN_DBG_TRAV_SIMPLE|GEN_DBG_TRAV_OBJECT)

Definition at line 200 of file genC.h.

#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)

Since C is not-orthogonal (chunk1 == chunk2 is prohibited), this one is needed.

Definition at line 280 of file genC.h.

#define gen_get_ancestor_type ( i,
 )     gen_get_ancestor(i,o)

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 GEN_HEADER_SIZE   (sizeof(gen_chunk)*GEN_HEADER)

Definition at line 46 of file genC.h.

 
#define gen_start_recurse_ancestor_tracking (  ) 

Definition at line 268 of file genC.h.

 
#define gen_stop_recurse_ancestor_tracking (  ) 

Definition at line 269 of file genC.h.

#define HASH ( x   )     ((x).h)

Definition at line 91 of file genC.h.

#define hash_CAST ( x   )     HASH_TABLE(x)

Definition at line 153 of file genC.h.

#define HASH_CAST ( x   )     HASH_TABLE(x)

Definition at line 145 of file genC.h.

#define hash_TYPE   hash_table

Definition at line 137 of file genC.h.

#define HASH_TYPE   hash_table

Definition at line 129 of file genC.h.

#define INT ( x   )     ((x).i)

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().

#define int_CAST ( x   )     INT(x)

Definition at line 119 of file genC.h.

#define INT_CAST ( x   )     INT(x)

Definition at line 113 of file genC.h.

#define int_NEWGEN_DOMAIN   (int_domain)

Definition at line 179 of file genC.h.

#define INT_NEWGEN_DOMAIN   (int_domain)

Definition at line 173 of file genC.h.

#define int_TYPE   int

Definition at line 107 of file genC.h.

#define INT_TYPE   int

Definition at line 101 of file genC.h.

#define LIST ( x   )     ((x).l)
#define list_CAST ( x   )     LIST(x)

Definition at line 148 of file genC.h.

#define LIST_CAST ( x   )     LIST(x)

Definition at line 140 of file genC.h.

#define LIST_NEWGEN_DOMAIN   (-1)

Definition at line 183 of file genC.h.

#define list_TYPE   list

Definition at line 132 of file genC.h.

#define LIST_TYPE   list

Definition at line 124 of file genC.h.

#define NEWGEN

Definition at line 25 of file genC.h.

#define NEWGEN_CHECK_TYPE ( dom,
item   ) 
Value:
{                                                                       \
    _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().

#define SET ( c   )     ((x).t)

Definition at line 94 of file genC.h.

#define set_CAST ( x   )     SET(x)

Definition at line 150 of file genC.h.

#define SET_CAST ( x   )     SET(x)

Definition at line 142 of file genC.h.

#define set_TYPE   set

Definition at line 134 of file genC.h.

#define SET_TYPE   set

Definition at line 126 of file genC.h.

#define SETP ( x   )     ((x).t)

Definition at line 89 of file genC.h.

#define setp_CAST ( x   )     SET(x)

Definition at line 149 of file genC.h.

#define SETP_CAST ( x   )     SET(x)

Definition at line 141 of file genC.h.

#define setp_TYPE   set

Definition at line 133 of file genC.h.

#define SETP_TYPE   set

Definition at line 125 of file genC.h.

#define STRING ( x   )     ((x).s)

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().

#define string_CAST ( x   )     STRING(x)

Definition at line 121 of file genC.h.

#define STRING_CAST ( x   )     STRING(x)

Definition at line 115 of file genC.h.

#define string_NEWGEN_DOMAIN   (string_domain)

Definition at line 181 of file genC.h.

#define STRING_NEWGEN_DOMAIN   (string_domain)

Definition at line 175 of file genC.h.

#define string_TYPE   string

Definition at line 109 of file genC.h.

#define STRING_TYPE   string

Definition at line 103 of file genC.h.

#define UNIT ( x   )     "You don't want to take the value of a unit type, do you?"

Definition at line 82 of file genC.h.

#define UNIT_TYPE   "You don't want a unit type, do you?"

for the MAP macro to handle simple types correctly.

FC.

Definition at line 98 of file genC.h.


Typedef Documentation

typedef union gen_chunk gen_chunk

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

Definition at line 72 of file genC.h.


Enumeration Type Documentation

some other macros need the domain number to keep track of the type.

they are provided here for the internal types.

Enumerator:
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 };


Function Documentation

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 *)   ) 
bool gen_sharing_p GEN_PROTO ( (gen_chunk *, gen_chunk *)   ) 
gen_chunk* gen_check GEN_PROTO ( (gen_chunk *, int)   ) 
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.

bool gen_false GEN_PROTO ( (gen_chunk *)   ) 

recursion and utilities

void gen_recurse ( void *  start,
int  domain_number,
bool(*)(void *)  flt,
void(*)(void *)  rwt 
)

Variable Documentation

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().

Generated by  doxygen 1.6.2-20100208