GCC Middle and Back End API Reference
|
Data Structures | |
struct | ticker |
struct | unit_decl |
struct | bypass_decl |
struct | automaton_decl |
struct | excl_rel_decl |
struct | unit_pattern_rel_decl |
struct | reserv_decl |
struct | insn_reserv_decl |
struct | decl |
struct | unit_regexp |
struct | reserv_regexp |
struct | nothing_regexp |
struct | sequence_regexp |
struct | repeat_regexp |
struct | allof_regexp |
struct | oneof_regexp |
struct | regexp |
struct | description |
struct | unit_set_el |
struct | pattern_set_el |
struct | pattern_reserv |
struct | state |
struct | arc |
struct | alt_state |
struct | ainsn |
struct | automaton |
struct | automata_list_el |
struct | state_ainsn_table |
struct | unit_usage |
Typedefs | |
typedef int | pos_t |
typedef unsigned HOST_WIDE_INT | set_el_t |
typedef set_el_t * | reserv_sets_t |
typedef const set_el_t * | const_reserv_sets_t |
typedef struct ticker | ticker_t |
typedef HOST_WIDE_INT | vect_el_t |
typedef struct unit_decl * | unit_decl_t |
typedef struct unit_decl * | const_unit_decl_t |
typedef struct decl * | decl_t |
typedef struct decl * | const_decl_t |
typedef struct regexp * | regexp_t |
typedef struct unit_set_el * | unit_set_el_t |
typedef struct pattern_set_el * | pattern_set_el_t |
typedef struct pattern_reserv * | pattern_reserv_t |
typedef struct alt_state * | alt_state_t |
typedef struct state * | state_t |
typedef struct state * | const_state_t |
typedef struct arc * | arc_t |
typedef struct ainsn * | ainsn_t |
typedef struct automaton * | automaton_t |
typedef struct automata_list_el * | automata_list_el_t |
typedef struct automata_list_el * | const_automata_list_el_t |
typedef struct state_ainsn_table * | state_ainsn_table_t |
typedef vec< vect_el_t > | vla_hwint_t |
typedef struct unit_usage * | unit_usage_t |
Enumerations | |
enum | decl_mode { dm_unit, dm_bypass, dm_automaton, dm_excl, dm_presence, dm_absence, dm_reserv, dm_insn_reserv } |
enum | regexp_mode { rm_unit, rm_reserv, rm_nothing, rm_sequence, rm_repeat, rm_allof, rm_oneof } |
typedef struct alt_state* alt_state_t |
typedef struct automata_list_el* automata_list_el_t |
typedef struct automaton* automaton_t |
typedef struct automata_list_el* const_automata_list_el_t |
typedef struct decl* const_decl_t |
typedef const set_el_t* const_reserv_sets_t |
typedef struct state* const_state_t |
typedef struct unit_decl* const_unit_decl_t |
typedef struct pattern_reserv* pattern_reserv_t |
typedef struct pattern_set_el* pattern_set_el_t |
typedef int pos_t |
Positions in machine description file. Now they are not used. But they could be used in the future for better diagnostic messages.
typedef set_el_t* reserv_sets_t |
Reservations of function units are represented by value of the following type.
typedef unsigned HOST_WIDE_INT set_el_t |
The following is element of vector of current (and planned in the future) functional unit reservations.
typedef struct state_ainsn_table* state_ainsn_table_t |
typedef struct unit_decl* unit_decl_t |
The following typedefs are for brevity.
typedef struct unit_set_el* unit_set_el_t |
typedef struct unit_usage* unit_usage_t |
typedef HOST_WIDE_INT vect_el_t |
The following type describes elements of output vectors.
typedef vec<vect_el_t> vla_hwint_t |
Declare vector types for various data structures:
enum decl_mode |
enum regexp_mode |
|
static |
The following function returns current time in milliseconds since the moment when given ticker was created.
|
static |
This function is called by function pass_states to add an achieved STATE.
|
static |
Create and record a decl for the special advance-cycle transition.
|
static |
The function adds arc from FROM_STATE to TO_STATE marked by AINSN, unless such an arc already exists.
References description::decls, description::decls_num, dm_unit, form_reserv_sets_list(), irp, decl::mode, and description::units_num.
|
static |
This function is called by function pass_states to add an achieved STATE.
Referenced by output_pattern_set_el_list().
|
static |
Create and record a decl for the special collapse-NDFA transition.
|
static |
The function adds each element from SOURCE_LIST to the exclusion list of the each element from DEST_LIST. Checking situation "unit excludes itself".
Element not found - insert.
|
static |
The function adds each element from PATTERN_LIST to presence (if PRESENCE_P) or absence list of the each element from DEST_LIST. Checking situations "unit requires own absence", and "unit excludes and requires presence of ...", "unit requires absence and presence of ...", "units in (final) presence set belong to different automata", and "units in (final) absence set belong to different automata". Remember that we process absence sets only after all presence sets.
|
static |
The function forms `state_reservs' for STATE.
Referenced by output_insn_latency_func().
|
static |
The function is called by function pass_states. The function adds STATE to `output_states_vect'.
|
static |
The following function adds vector VECT to table TAB as its line with number VECT_NUM.
Form full vector in the table:
The comb_vect min/max values are also used for the full vector, so compute them now.
Form comb vector in the table:
Search for the place in comb vect for the inserted vect.
Slow case.
Fast case.
Search for the place in comb vect for the inserted vect.
Slot was found.
Expand comb and check vectors.
Fill comb and check vectors.
|
static |
The function adds element EL_VALUE to vector VECT for a table state x AINSN.
|
static |
|
static |
The function compares unique numbers of alt states.
Referenced by ticker_off().
|
static |
The function checks equality of alt state lists. Remember that the lists must be already sorted by the previous function.
Referenced by equal_alternatives_p().
|
static |
The following function adds AUTOMATON to the current list.
|
static |
Return nonzero value if the automata_lists are the same.
Referenced by set_state_reserv().
|
static |
The following function finishes forming the current list, inserts it into the table and returns it.
References regexp::mode, regexp::regexp, rm_repeat, and rm_sequence.
|
static |
Hash value of AUTOMATA_LIST.
References copy_insn_regexp(), regexp::mode, reserv_decl::regexp, and rm_reserv.
Referenced by set_state_reserv().
|
static |
The following function starts new automata list and makes it the current one.
|
static |
The function tests automaton declarations on equality of their keys. The function is used by abstract data `hashtab'. The function returns 1 if the declarations have the same key, 0 otherwise.
Referenced by gen_regexp_oneof().
|
static |
This page contains abstract data `table of automaton declarations'. Elements of the table is nodes representing automaton declarations. Key of the table elements is name of given automaton. Remember that automaton names have own space.
The function evaluates hash value of an automaton declaration. The function is used by abstract data `hashtab'. The function returns hash value (0..UINT_MAX) of given automaton declaration.
Referenced by gen_regexp_oneof().
|
static |
The function returns base name of given file name, i.e. pointer to first char after last `/' (or `\' for WIN32) in given file name, given file name itself if the directory name is absent. The returned string can not be changed.
|
static |
The function builds one DFA AUTOMATON for fast pipeline hazards recognition after checking and simplifying IR of the description.
|
static |
This fills in the presence_signature[] member of STATE.
|
static |
The function checks that CHECKED_SET satisfies all absence pattern sets for units in ORIGINAL_SET. The function returns TRUE if it is ok.
|
static |
The following function calls functions for checking all description.
|
static |
The following function checks existence at least one arc marked by each insn.
|
static |
The following function checks that declared automaton is used. If the automaton is not used, the function fixes error/warning. The following function must be called only after `process_decls'.
|
static |
The following function fixes errors "cycle in definition ...". The function uses function `loop_in_regexp' for that.
|
static |
The function checks that NAME does not contain quotes (`"').
Referenced by gen_automata_option(), and gen_bypass().
|
static |
The function checks that CHECKED_SET satisfies all presence pattern sets for units in ORIGINAL_SET. The function returns TRUE if it is ok.
References copy_insn_regexp(), regexp::mode, regexp::pos, and rm_sequence.
|
static |
The function processes given REGEXP to find units with the wrong distribution.
Store all unit usages in the regexp:
Check distribution:
|
static |
The function finds units which violates units to automata distribution rule. If the units exist, report about them.
|
static |
The following function checks that declared unit is used. If the unit is not used, the function fixes errors/warnings. The following function must be called only after `process_decls', `process_regexp_decls'.
|
static |
The function clears equivalence numbers and alt_states in all insns which mark all out arcs of STATE.
References automaton::corresponding_automaton_decl, progress_flag, and ticker_on().
Referenced by create_composed_state().
|
static |
The following function returns nonzero value if the best representation of the table is comb vector.
|
static |
The function compares unit declarations according to their maximal cycle in reservations.
References automaton::automaton_order_num, automaton::corresponding_automaton_decl, and automaton_decl::name.
|
static |
Compares two states pointed to by STATE_PTR_1 and STATE_PTR_2 and return -1, 0 or 1. This function can be used as predicate for qsort(). It requires the member presence_signature[] of both states be filled.
References ainsn::next_equiv_class_insn.
|
static |
Compare number of possible transitions from the states.
|
static |
The function copies pointers to equivalent states from vla FROM into vla TO.
|
static |
This page contains code for transformation of original reservations described in .md file. The main goal of transformations is simplifying reservation and lifting up all `|' on the top of IR reservation representation.
The following function makes copy of IR representation of reservation. The function also substitutes all reservations defined by define_reservation by corresponding value during making the copy.
References regexp::mode, regexp::pos, rm_allof, rm_nothing, rm_sequence, and rm_unit.
Referenced by automata_list_hash(), and check_presence_pattern_sets().
|
static |
Copy IR structure (node).
Referenced by assign_assembler_name_if_neeeded(), canonicalize_component_ref(), copy_tree_body_r(), finalize_task_copyfn(), needs_overflow_infinity(), protected_set_expr_location_unshare(), remap_gimple_op_r(), and use_register_for_decl().
|
static |
The function counts states and arcs of AUTOMATON.
References automaton::automaton_order_num, automaton::corresponding_automaton_decl, create_ainsns(), description::first_automaton, and automaton::next_automaton.
|
static |
The functions creates automaton insns for each automata. Automaton insn is simply insn for given automaton which makes reservation only of units of the automaton.
Referenced by count_states_and_arcs().
|
static |
Create nodes alt_state for all AUTOMATON insns.
|
static |
The function creates DFA(s) for fast pipeline hazards recognition after checking and simplifying IR of the description.
References automaton::achieved_states_num, and output_range_type().
|
static |
The function creates composed state (see comments for IR) from ORIGINAL_STATE and list of arcs ARCS_MARKED_BY_INSN marked by the same insn. If the composed state is not in STATE_STACK yet, it is pushed into STATE_STACK.
Create composed state.
There are not identical sets in the alt state list.
When producing collapse-NDFA transitions, we only add advance-cycle transitions to the collapsed states.
References clear_arc_insns_equiv_num(), curr_state, state::equiv_class_num_1, state::equiv_class_num_2, state::next_equiv_class_state, set_out_arc_insns_equiv_num(), and state_is_differed().
|
static |
Create IR structure (node).
Default values of members are NULL and zero.
References dm_unit, fatal(), get_str_vect(), and decl::mode.
Referenced by decl_name().
|
static |
The following function creates new table for AUTOMATON.
|
static |
The page contains abstract data `ticker'. This data is used to report time of different phases of building automata. It is possibly to write a description for which automata will be built during several minutes even on fast machine.
The following function creates ticker and makes it active.
|
static |
The function tests declarations on equality of their keys. The function is used by abstract data 'hashtab'. The function returns 1 if the declarations have the same key, 0 otherwise.
References pattern_set_el::unit_decls.
Referenced by find_automaton_decl().
|
static |
This page contains abstract data `table of declarations'. Elements of the table is nodes representing declarations (of units and reservations). Key of the table elements is names of given declarations.
The function evaluates hash value of a declaration. The function is used by abstract data `hashtab'. The function returns hash value (0..UINT_MAX) of given declaration.
Referenced by find_automaton_decl().
|
static |
The function prints message about unexpected declaration and finish the program.
References irp.
|
static |
|
static |
Return string representation of declaration mode MODE.
References create_node(), and memcpy().
|
static |
The function deletes equiv_class_insn into cyclic list of equivalent ainsns.
|
static |
The function enumerates all states of AUTOMATON.
References form_regexp(), irp, rm_oneof, and rm_sequence.
|
static |
The function returns true if reservations of alternatives ALT1 and ALT2 are equal after excluding reservations of units of EXCLUDED_AUTOMATON_DECL.
References automaton::ainsn_list, alt_states_eq(), curr_ainsn, ainsn::first_insn_with_same_reservs, ainsn::insn_reserv_decl, ainsn::next_ainsn, ainsn::next_same_reservs_insn, ainsn::sorted_alt_states, and special_decl_p().
|
static |
The function estimate size of the single DFA used by PHR (pipeline hazards recognizer).
|
static |
The function finds equivalent states of AUTOMATON.
Transfer equiv numbers for the next iteration.
References description::decls, description::decls_num, dm_unit, exp(), log(), and decl::mode.
Referenced by initiate_pass_states().
|
static |
The following function is called only for correct program. The function defines max reservation of insns in cycles.
References state::unique_num.
|
static |
The following is top level function to generate automat(a,on) for fast recognition of pipeline hazards.
Two entries for special insns.
|
static |
The function returns suffix of given file name. The returned string can not be changed.
|
static |
The functions returns arc with given characteristics (or NULL if the arc does not exist).
Any arc is good enough for a collapse-ndfa transition.
References alloc_empty_reserv_sets(), bitmap_set_bit(), unit_decl::in_set_p, pattern_reserv::next_pattern_reserv, pattern_reserv::reserv, pattern_set_el::unit_decls, unit_decl::unit_num, and pattern_set_el::units_num.
|
static |
The function searches for automaton declaration in the table with the same key as node representing name of the automaton declaration. The function returns node found in the table, NULL if such node does not exist in the table.
References decl_eq_p(), decl_hash(), dm_unit, decl::mode, and work_decl.
|
static |
The function searches for declaration in the table with the same key as node representing name of the declaration. The function returns node found in the table, NULL if such node does not exist in the table.
Referenced by finish_automaton_decl_table(), initiate_insn_decl_table(), insert_decl(), and process_bypass_1().
|
static |
The function searches for insn reservation declaration in the table with the same key as node representing name of the insn reservation declaration. The function returns node found in the table, NULL if such node does not exist in the table.
|
static |
Finishing work with the abstract data.
Referenced by reserv_sets_and().
|
static |
Finishing work with the abstract data.
|
static |
Finishing work with the abstract data.
|
static |
The function deletes the automaton declaration table. Only call of function `initiate_automaton_decl_table' is possible immediately after this function call.
References dm_unit, error(), find_decl(), and decl::mode.
|
static |
The function deletes the declaration table. Only call of function `initiate_declaration_table' is possible immediately after this function call.
References pattern_set_el::units_num.
|
static |
This recursive function finishes forming ALT_STATE of AUTOMATON and inserts alt_state into the table.
References progress_flag.
Referenced by store_alt_unit_usage().
|
static |
The function deletes the insn declaration table. Only call of function `initiate_insn_decl_table' is possible immediately after this function call.
|
static |
The function frees memory allocated for last formed string representation of regexp.
|
static |
Finishing work with the abstract data.
References bitmap_set_bit(), unit_decl::in_set_p, unit_set_el::unit_decl, and unit_decl::unit_num.
|
static |
The following function returns TRUE if STATE reserves the unit with UNIT_NUM on the first cycle.
Referenced by form_reservs_matter().
|
static |
Referenced by output_pattern_set_el_list(), output_trans_comb_vect_name(), and pass_state_graph().
|
static |
The function returns the first arc starting from STATE.
|
static |
BYPASS is a define_bypass decl that includes glob pattern PATTERN. Call FN (BYPASS, INSN, DATA) for each matching instruction INSN.
|
static |
The page contains major code for building DFA(s) for fast pipeline hazards recognition.
The function forms list of ainsns of AUTOMATON with the same reservation.
|
static |
Form lists of all arcs of STATE marked by the same ainsn.
|
static |
The following function forms list of important automata (whose states may be changed after the insn issue) for each insn.
Mark important ainsns.
Create automata sets for the insns.
|
static |
This page contains code for forming string representation of regexp. The representation is formed on IR obstack. So you should not work with IR obstack between regexp_representation and finish_regexp_representation calls.
This recursive function forms string representation of regexp (without tailing '\0').
Referenced by enumerate_states(), and process_insn_equiv_class().
|
static |
The following function forms list of reservation sets for given PATTERN_LIST.
Referenced by add_arc().
|
static |
Forming unit reservations which can affect creating the automaton states achieved from a given state. It permits to build smaller automata in many cases. We would have the same automata after the minimization without such optimization, but the automaton right after the building could be huge. So in other words, usage of reservs_matter means some minimization during building the automaton.
We can not remove queried unit from reservations.
We can not remove units which are used `exclusion_set', `presence_set', `final_presence_set', `absence_set', and `final_absence_set'.
References first_cycle_unit_presence(), and state::presence_signature.
|
static |
The function frees node ALT_STATE.
References els_in_reservs.
|
static |
The function frees list started with node ALT_STATE_LIST.
|
static |
The function frees node ARC.
|
static |
The function frees list AUTOMATA_LIST.
|
static |
The function frees node AUTOMATA_LIST_EL.
References els_in_cycle_reserv, pattern_reserv::next_pattern_reserv, and description::units_num.
Referenced by state_eq_p().
|
static |
The function frees node STATE.
Referenced by reserv_sets_are_intersected().
|
static |
Process an ABSENCE_SET. This gives information about a cpu unit reservation requirements. We fill a struct unit_pattern_rel_decl (absence) with information used later by `expand_automata'.
|
static |
Process an AUTOMATA_OPTION. This gives information how to generate finite state automaton used for recognizing pipeline hazards.
References check_name(), dm_reserv, gen_regexp(), decl::mode, and decl::pos.
|
static |
Process a DEFINE_AUTOMATON. This gives information about a finite state automaton used for recognizing pipeline hazards. We fill a struct automaton_decl with information used later by `expand_automata'.
|
static |
Process a DEFINE_BYPASS. This gives information about a unit contained in the CPU. We fill in a struct bypass_decl with information used later by `expand_automata'.
References check_name(), dm_automaton, fatal(), get_str_vect(), decl::mode, and decl::pos.
|
static |
Process a DEFINE_CPU_UNIT. This gives information about a unit contained in CPU. We fill a struct unit_decl with information used later by `expand_automata'.
|
static |
Process an EXCLUSION_SET. This gives information about a cpu unit conflicts. We fill a struct excl_rel_decl (excl) with information used later by `expand_automata'.
|
static |
Process a FINAL_ABSENCE_SET. This gives information about a cpu unit reservation requirements. We fill a struct unit_pattern_rel_decl (absence) with information used later by `expand_automata'.
|
static |
Process a FINAL_PRESENCE_SET. This gives information about a cpu unit reservation requirements. We fill a struct unit_pattern_rel_decl (presence) with information used later by `expand_automata'.
|
static |
Process a DEFINE_INSN_RESERVATION. This gives information about the reservation of cpu units by an insn. We fill a struct insn_reserv_decl with information used later by `expand_automata'.
|
static |
Process a PRESENCE_SET, a FINAL_PRESENCE_SET, an ABSENCE_SET, FINAL_ABSENCE_SET (it is depended on PRESENCE_P and FINAL_P). This gives information about a cpu unit reservation requirements. We fill a struct unit_pattern_rel_decl with information used later by `expand_automata'.
Referenced by gen_query_cpu_unit().
|
static |
Process a PRESENCE_SET. This gives information about a cpu unit reservation requirements. We fill a struct unit_pattern_rel_decl (presence) with information used later by `expand_automata'.
|
static |
Process a DEFINE_QUERY_CPU_UNIT. This gives information about a unit contained in CPU. We fill a struct unit_decl with information used later by `expand_automata'.
References gen_presence_absence_set().
|
static |
Parse construction reservation STR.
Referenced by gen_automata_option().
|
static |
Parse reservation STR which possibly contains separator '+'.
|
static |
Parse an element in STR.
|
static |
Parse reservation STR which possibly contains separator '|'.
References automaton_decl_eq_p(), automaton_decl_hash(), dm_automaton, decl::mode, and work_automaton_decl.
|
static |
Parse construction `repeat' in STR.
References dm_automaton, and decl::mode.
|
static |
Forward declarations of functions used before their definitions, only.
|
static |
Parse reservation STR which possibly contains separator ','.
References dm_insn_reserv, decl::mode, and string_hash().
|
static |
Process a DEFINE_RESERVATION. This gives information about a reservation of cpu units. We fill in a struct reserv_decl with information used later by `expand_automata'.
|
static |
The function generates DFA (deterministic finite state automaton) for fast recognition of pipeline hazards. No errors during checking must be fixed before this function call.
|
static |
|
static |
The function sets up and return EXCL_SET which is union of exclusion sets for each unit in IN_SET.
|
static |
The following function returns free node alt_state. It may be new allocated node or node freed earlier.
References bitmap_set_bit().
Referenced by NDFA_to_DFA(), and store_alt_unit_usage().
|
static |
The following function returns free automata list el. It may be new allocated node or node freed earlier.
|
static |
The following function returns free node state for AUTOMATON. It may be new allocated node or node freed earlier. The function also allocates reservation set if WITH_RESERVS has nonzero value.
Referenced by reserv_sets_are_intersected(), and store_alt_unit_usage().
|
static |
Given a string and a separator, return vector of strings which are elements in the string and number of elements through els_num. Take parentheses into account if PAREN_P has nonzero value. The function also inserts the end marker NULL at the end of vector. Return 0 for the null string, -1 if parentheses are not balanced.
Referenced by create_node(), gen_bypass(), and n_sep_els().
|
static |
The function is called by function `pass_states' to count states and arcs of an automaton.
|
static |
The function makes initial partition of STATES on equivalent classes and saves it into CLASSES. This function requires the input to be sorted via compare_states_for_equiv().
|
static |
Initialization of the abstract data.
|
static |
Initialization of the abstract data.
|
static |
Initialization of the abstract data.
|
static |
The function creates empty automaton declaration table and node representing automaton declaration and used for searching automaton declaration with given name. The function must be called only once before any work with the automaton declaration table.
|
static |
The following is top level function to initialize the work of pipeline hazards description translator.
Initialize IR storage.
|
static |
The function creates empty declaration table and node representing declaration and used for searching declaration with given name. The function must be called only once before any work with the declaration table.
|
static |
The following function forms the array containing exclusion sets for each unit.
Evaluate unit exclusion sets.
|
static |
The function creates empty insn declaration table and node representing insn declaration and used for searching insn declaration with given name. The function must be called only once before any work with the insn declaration table.
References error(), and find_decl().
|
static |
The function initializes code for passing of all states.
References evaluate_equiv_classes(), merge_states(), pass_states(), set_new_cycle_flags(), and vNULL.
|
static |
The following function forms the array containing presence and absence pattern sets for each unit.
Evaluate unit presence/absence sets.
|
static |
Initialization of the abstract data.
References description::decls, description::decls_num, dm_unit, irp, memset(), decl::mode, and description::units_num.
|
static |
The page contains code for finding equivalent automaton insns (ainsns).
The function inserts AINSN into cyclic list CYCLIC_EQUIV_CLASS_INSN_LIST of ainsns.
|
static |
The function inserts automaton declaration into the table. The function does nothing if an automaton declaration with the same key exists already in the table. The function returns automaton declaration node in the table with the same key as given automaton declaration node.
|
static |
The function inserts BYPASS in the list of bypasses of the corresponding output insn. The order of bypasses in the list is described in a comment for member `bypass_list' (see above). If there is already the same bypass in the list the function reports this and does nothing.
|
static |
The function inserts declaration into the table. The function does nothing if a declaration with the same key exists already in the table. The function returns declaration node in the table with the same key as given declaration node.
References error(), and find_decl().
|
static |
The function inserts insn declaration into the table. The function does nothing if an insn declaration with the same key exists already in the table. The function returns insn declaration node in the table with the same key as given insn declaration node.
References error(), unit_decl::name, and unit_set_el::unit_decl.
|
static |
Insert STATE into the state table.
Referenced by reserv_sets_are_intersected().
|
static |
The function tests insn declarations on equality of their keys. The function is used by abstract data `hashtab'. The function returns 1 if declarations have the same key, 0 otherwise.
References copy(), and unit_set_el::next_unit_set_el.
|
static |
This page contains abstract data `table of insn declarations'. Elements of the table is nodes representing insn declarations. Key of the table elements is name of given insn (in corresponding define_insn_reservation). Remember that insn names have own space.
The function evaluates hash value of an insn declaration. The function is used by abstract data `hashtab'. The function returns hash value (0..UINT_MAX) of given insn declaration.
|
static |
Return nonzero value if the deterministic states contains a reservation of the same cpu unit on the same cpu cycle.
|
static |
The following recursive function returns nonzero value if REGEXP contains given decl or reservations in given regexp refers for given decl.
declaration has been processed.
References ticker::incremented_off_time, and ticker::modified_creation_time.
int main | ( | ) |
FIXME: emit-rtl.h can go away once crtl is in rtl.h.
|
static |
The following function creates all states of nondeterministic AUTOMATON.
Create the start state (empty state).
We process alt_states in the same order as they are present in the description.
Add transition to advance cycle.
|
static |
The function merges equivalent states of AUTOMATON.
Create states corresponding to equivalence classes containing two or more states.
There are more one states in the class equivalence.
Create new compound state.
Its is important that alt states were sorted before and after merging to have the same querying results.
Create new arcs output from the state corresponding to equiv class.
Delete output arcs from states of given class equivalence.
Delete the state and its output arcs.
Change `to_state' of arcs output from the state of given equivalence class.
Referenced by initiate_pass_states().
|
static |
The top level function for minimization of deterministic AUTOMATON.
References automata_num, and units_to_automata_heuristic_distr().
|
static |
Given a string and a separator, return the number of separated elements in it, taking parentheses into account if PAR_FLAG has nonzero value. Return 0 for the null string, -1 if parentheses is not balanced.
References fatal(), and get_str_vect().
|
static |
The function transforms nondeterministic AUTOMATON into deterministic.
Create the start state (empty state).
Add a transition to collapse the NDFA.
References state::component_states, curr_state, state::equiv_class_state, get_free_alt_state(), alt_state::next_alt_state, alt_state::next_sorted_alt_state, and alt_state::state.
Referenced by output_trans_comb_vect_name(), and pass_state_graph().
|
static |
The function returns next out arc after ARC.
|
static |
Given a pointer to a (char *) and a separator, return an alloc'ed string containing the next separated element, taking parentheses into account if PAR_FLAG has nonzero value. Advance the pointer to after the string scanned, or the end-of-string. Return NULL if at end of string.
Remove leading whitespaces.
|
static |
Return number of out arcs of STATE.
|
static |
The function outputs a code for evaluation of a minimal delay of issue of insns which have reservations in given AUTOMATA_LIST.
References bypass_decl::latency.
|
static |
The function outputs a code changing state after issue of insns which have reservations in given AUTOMATA_LIST.
|
static |
The following function output readable representation of DFAs used for fast recognition of pipeline hazards.
|
static |
The function outputs name of AUTOMATON.
Referenced by output_print_reservation_func().
|
static |
The function outputs units name belonging to AUTOMATON.
Referenced by output_print_reservation_func().
|
static |
Output definition of the structure representing current DFA(s) state(s).
|
static |
The following is name of member which represents state of a DFA for PHR.
References state_ainsn_table::comb_vect, and undefined_vect_el_value.
Referenced by output_internal_insn_code_evaluation().
|
static |
The following function outputs function to check reservation of cpu unit (its internal code will be passed as the function argument) in given cpu state.
|
static |
The function outputs string representation of units reservation on cycle START_CYCLE in the reservation set. The function uses repeat construction if REPETITION_NUM > 1.
References first_free_arc.
|
static |
The function outputs PHR interface function `state_dead_lock_p'.
|
static |
Form and output vector representing the locked states of AUTOMATON.
Create vect of pointers to states ordered by num of transitions from the state (state with the maximum num is the first).
|
static |
Output name of deadlock vector for given automaton.
|
static |
Output the array holding default latency values. These are used in insn_latency and maximal_insn_latency function implementations.
Find the smallest integer type that can hold all the default latency values.
|
static |
The function outputs string representation of IR define_reservation and define_insn_reservation.
References ainsn::important_p, and ainsn::next_same_reservs_insn.
|
static |
The function outputs PHR interface functions `dfa_clean_insn_cache' and 'dfa_clear_single_insn_cache'.
|
static |
The function outputs PHR interface function `dfa_finish'.
|
static |
This function outputs `dfa_insn_code' and its helper function `dfa_insn_code_enlarge'.
Emacs c-mode gets really confused if there's a { or } in column 0 inside a string, so don't do that.
References output_file.
|
static |
The function outputs PHR interface function `dfa_start'.
References automaton::ainsn_list, ainsn::arc_exists_p, automaton::collapse_ainsn, automaton::corresponding_automaton_decl, ainsn::first_insn_with_same_reservs, ainsn::next_ainsn, ainsn::next_same_reservs_insn, and w_flag.
|
static |
The following function outputs function to obtain internal cpu unit code by the cpu unit name.
|
static |
The function outputs switch cases for insn reservations using function *output_automata_list_code.
|
static |
The following function outputs a function to check if insn has a dfa reservation.
References fatal().
|
static |
The function outputs PHR interface function `insn_latency'.
References add_state_reservs(), state::new_cycle_p, state::order_state_num, output_description_file, remove_state_duplicate_reservs(), and state_reservs_cmp().
|
static |
Output function `internal_dead_lock'.
References unit_decl::name, output_description_file, and unit_set_el::unit_decl.
|
static |
Output code if (insn != 0) { insn_code = dfa_insn_code (insn); if (insn_code > DFA__ADVANCE_CYCLE) return code; } else insn_code = DFA__ADVANCE_CYCLE; where insn denotes INSN_NAME, insn_code denotes INSN_CODE_NAME, and code denotes CODE.
References output_chip_member_name(), output_file, output_reserved_units_table_name(), and description::query_units_num.
|
static |
Output function `internal_insn_latency'.
References automaton::automaton_order_num, description::decls, dm_unit, decl::mode, output_description_file, and strlen().
|
static |
Output function `internal_maximum_insn_latency'.
References output_description_file, and strlen().
|
static |
Output function `internal_min_issue_delay'.
References output_file.
|
static |
Output function `internal_reset'.
References description::decls, dm_unit, decl::mode, output_description_file, and output_unit_set_el_list().
|
static |
Output function `internal_state_transition'.
|
static |
The function outputs definition and value of PHR interface variable `max_insn_queue_index'. Its value is not less than maximal queue length needed for the insn scheduler.
References bypass_decl::bypass_guard_name, bypass_decl::in_insn_reserv, insn_reserv_decl::insn_num, bypass_decl::latency, bypass_decl::next, and output_file.
|
static |
The function outputs PHR interface function `maximal_insn_latency'.
|
static |
Output function `min_insn_conflict_delay'.
|
static |
Output function `min_issue_delay'.
References output_file.
|
static |
Form and output vectors representing minimal issue delay table of AUTOMATON. The table is state x ainsn -> minimal issue delay of the ainsn.
Create vect of pointers to states ordered by num of transitions from the state (state with the maximum num is the first).
Compress the vector.
References collapse_flag, and output_file.
|
static |
Output name of simple min issue delay table representation.
References insn_reserv_decl::equiv_class_num, and ainsn::insn_equiv_class_num.
|
static |
Output patterns in LIST separated by comma.
References add_automaton_state(), first_out_arc(), and pass_states().
Referenced by output_reset_func().
|
static |
The function outputs PHR interface function `print_reservation'.
References output_automaton_name(), output_automaton_units(), output_description_file, output_state(), and pass_states().
|
static |
This page contains code for output PHR (pipeline hazards recognizer).
The function outputs minimal C type which is sufficient for representation numbers in range min_range_value and max_range_value. Because host machine and build machine may be different, we use here minimal values required by ANSI C standard instead of UCHAR_MAX, SHRT_MAX, SHRT_MIN, etc. This is a good approximation.
References state_ainsn_table::comb_vect.
Referenced by create_automata().
|
static |
The page contains code for output description file (readable representation of original description and generated DFA(s).
The function outputs string representation of IR reservation.
|
static |
The function outputs string representation of units reservation in the reservation set.
|
static |
Form and output vector representing reserved units of the states of AUTOMATON.
Create vect of pointers to states.
Create vector.
|
static |
Output name of reserved units table for AUTOMATON into file F.
Referenced by output_internal_insn_code_evaluation().
|
static |
The function outputs PHR interface function `state_reset'.
References output_description_file, and output_pattern_set_el_list().
|
static |
The function outputs PHR interface function `state_size'.
|
static |
The following function output readable representation of DFA(s) state used for fast recognition of pipeline hazards. State is described by possible (current and scheduled) cpu unit reservations.
Referenced by output_print_reservation_func().
|
static |
The following function outputs the best C representation of the table TAB of given TABLE_NAME.
|
static |
The function outputs readable representation of all out arcs of STATE.
|
static |
Output C type which is used for representation of codes of states of AUTOMATON.
|
static |
The page contains top level function for generation DFA(s) used for PHR.
The function outputs statistics about work of different phases of DFA generator.
|
static |
The function outputs all tables representing DFA(s) used for fast pipeline hazards recognition.
|
static |
The following is name of temporary variable which stores state of a DFA for PHR.
References state_ainsn_table::check_vect, and state_ainsn_table::comb_vect.
|
static |
The function output times of work of different phases of DFA generator.
|
static |
Output name of base vector of the transition table for given automaton.
|
static |
Output name of check vector of the transition table for given automaton.
|
static |
Output name of comb vector of the transition table for given automaton.
References first_out_arc(), and next_out_arc().
|
static |
Output name for simple transition table representation.
|
static |
The function outputs PHR interface function `state_transition'.
References output_file.
|
static |
Form and output vectors (comb, check, base or full vector) representing transition table of AUTOMATON.
Create vect of pointers to states ordered by num of transitions from the state (state with the maximum num is the first).
|
static |
The function outputs translate vector of internal insn code into insn equivalence class number. The equivalence class number is used to access to table and vectors representing DFA(s).
Undefined value
|
static |
Output name of translate vector for given automaton.
References state_ainsn_table::check_vect, and state_ainsn_table::comb_vect.
|
static |
Output names of units in LIST separated by comma.
Referenced by output_internal_reset_func().
|
static |
The function outputs all initialization values of VECT.
|
static |
A function passed as argument to init_rtx_reader_args_cb. It parses the options available for genautomata. Returns true if the option was recognized.
split_argument = atoi (argument_vect [i + 1]);
|
static |
The function processes equivalence class given by its first state, FIRST_STATE, on odd iteration if ODD_ITERATION_FLAG. If there are not equivalent states, the function partitions the class removing nonequivalent states and placing them in *NEXT_ITERATION_CLASSES, increments *NEW_EQUIV_CLASS_NUM_PTR ans assigns it to the state equivalence number. If the class has been partitioned, the function returns nonzero value.
There are more one states in the class equivalence.
Remove curr state from the class equivalence.
Add curr state to the new class equivalence.
This recursive function passes all states achieved from START_STATE and applies APPLIED_FUNC to them.
References first_out_arc(), and next_out_arc().
|
static |
This recursive function passes all states of AUTOMATON and applies APPLIED_FUNC to them.
Referenced by initiate_pass_states(), output_pattern_set_el_list(), and output_print_reservation_func().
|
static |
@verbatim
The following function returns string representation of active time of given ticker. The result is string representation of seconds with accuracy of 1/100 second. Only result of the last call of the function exists. Therefore the following code is not correct
printf ("parser time: %s\ngeneration time: %s\n", active_time_string (parser_ticker), active_time_string (generation_ticker));
Correct code has to be the following
printf ("parser time: %s\n", active_time_string (parser_ticker)); printf ("generation time: %s\n", active_time_string (generation_ticker));
|
static |
This recursive function processes `|' in reservation REGEXP for forming alt_states of AUTOMATON. List of the alt states should have the same order as in the description.
We inserts in reverse order but we process alternatives also in reverse order. So we have the same order of alternative as in the description.
We processes it in reverse order to get list with the same order as in the description. See also the previous commentary.
Referenced by store_alt_unit_usage(), and unit_present_on_list_p().
|
static |
A subroutine of process_bypass that is called for each input instruction IN_INSN_RESERV.
References error(), find_decl(), and rm_unit.
|
static |
A subroutine of process_bypass that is called for each pair of matching instructions. OUT_INSN_RESERV is the output instruction and DATA is the input instruction.
References description::decls, description::decls_num, dm_automaton, error(), decl::mode, w_flag, and warning().
|
static |
The function processes pipeline description declarations, checks their correctness, and forms exclusion/presence/absence sets.
Checking repeated automata declarations.
Checking undeclared automata, repeated declarations (except for automata) and correctness of their attributes (insn latency times etc.).
Check bypasses and form list of bypasses for each (output) insn.
Check exclusion set declarations and form exclusion sets.
Check presence set declarations and form presence sets.
Check absence set declarations and form absence sets.
|
static |
This page contains checker of pipeline hazard description.
Checking NAMES in an exclusion clause vector and returning formed unit_set_el_list.
References error(), and unit_decl::name.
|
static |
The function processes AINSN of a state in order to find equivalent ainsns. INSN_ARCS_ARRAY is table: code of insn -> out arc of the state.
New class of ainsns which are not equivalent to given ainsn.
References form_regexp(), and irp.
|
static |
Checking NAMES in presence/absence clause and returning the formed unit_set_el_list. The function is called only after processing all exclusion sets.
|
static |
Checking NAMES in patterns of a presence/absence clause and returning the formed pattern_set_el_list. The function is called only after processing all exclusion sets.
|
static |
The following recursive function processes all regexp in order to fix usage of units or reservations and to fix errors of undeclared name. The function may change unit_regexp onto reserv_regexp. Remember that reserv_regexp does not exist before the function call.
References process_regexp_cycles().
|
static |
The function recursively processes IR of reservation and defines max and min cycle for reservation of unit.
Referenced by process_regexp(), and process_regexp_decls().
|
static |
The following function processes regexp of define_reservation and define_insn_reservation with the aid of function `process_regexp'.
References description::decls, dm_insn_reserv, description::max_insn_reserv_cycles, decl::mode, and process_regexp_cycles().
|
static |
This recursive function processes `,' and units in reservation REGEXP for forming alt_states of AUTOMATON. It is believed that CURR_CYCLE is start cycle of all reservation REGEXP.
Referenced by store_alt_unit_usage(), and transform_insn_regexps().
|
static |
The function processes STATE in order to find equivalent ainsns.
Process insns of the arcs.
|
static |
The function prints message about unexpected regexp and finish the program.
|
static |
|
static |
Return string representation of regexp mode MODE.
|
static |
The function returns string representation of REGEXP on IR obstack.
References state_ainsn_table::max_comb_vect_el_value, and state_ainsn_table::min_comb_vect_el_value.
The function traverses IR of reservation and applies transformations implemented by FUNC.
|
static |
The function removes and frees ARC staring from FROM_STATE.
|
static |
The following function is used for sorting possible cpu unit reservation of a DFA state.
Referenced by output_insn_latency_func().
|
static |
AND of the reservation sets.
References finish_alt_states(), and free().
Referenced by reserv_sets_are_intersected().
|
static |
The function checks that the reservation sets are intersected, i.e. there is a unit reservation on a cycle in both reservation sets.
References state::automaton, free_state(), get_free_state(), insert_state(), reserv_sets_and(), reserv_sets_or(), and state::reservs.
|
static |
Comparison of given reservation sets.
References alt_state::next_sorted_alt_state, reserv_sets_eq(), and alt_state::state.
|
static |
The function checks equality of the reservation sets.
Referenced by reserv_sets_cmp().
|
static |
Hash value of reservation set.
|
static |
OR of the reservation sets.
Referenced by reserv_sets_are_intersected().
|
static |
The function sets up RESULT bits by bits of OPERAND shifted on one cpu cycle. The remaining bits of OPERAND (representing the last cycle unit reservations) are not changed.
References description::decls_num, and description::units_num.
|
static |
The function searches for equivalent ainsns of AUTOMATON.
All insns are included in one equivalence class.
Process insns in order to make equivalence partition.
Enumerate equiv classes.
Set undefined value.
|
static |
The function sets up new_cycle_p for states if there is arc to the state marked by advance_cycle_insn_decl.
Referenced by initiate_pass_states().
|
static |
The function is called by function `pass_states' for enumerating states.
|
static |
The function sets up equivalence numbers of insns which mark all out arcs of STATE by equiv_class_num_1 (if ODD_ITERATION_FLAG has nonzero value) or by equiv_class_num_2 of the destination state.
Referenced by create_composed_state().
|
static |
Add reservation of unit with UNIT_NUM on cycle CYCLE_NUM to deterministic STATE.
References automata_list_eq_p(), and automata_list_hash().
Referenced by transform_insn_regexps().
|
static |
Set up in the reservation set that unit with UNIT_NUM is used on CYCLE_NUM.
|
static |
True if DECL is either of the two special decls we created.
Referenced by equal_alternatives_p().
|
static |
Return nonzero value if the states are the same.
All state in the list must be already in the hash table. Also the lists must be sorted.
References free_automata_list_el(), and automata_list_el::next_automata_list_el.
|
static |
Hash value of STATE. If STATE represents deterministic state it is simply hash value of the corresponding reservation set. Otherwise it is formed from hash values of the component deterministic states. One more key is order number of state automaton.
|
static |
The function returns nonzero value if STATE is not equivalent to ANOTHER_STATE from the same current partition on equivalence classes. Another state has ANOTHER_STATE_OUT_ARCS_NUM number of output arcs. Iteration of making equivalence partition is defined by ODD_ITERATION_FLAG.
Referenced by create_composed_state().
|
static |
The following function is used for sorting possible cpu unit reservation of a DFA state.
Referenced by output_insn_latency_func().
|
static |
Return deterministic state (inserted into the table) which represent the automaton state is obtained from deterministic STATE by advancing cpu cycle and masking by RESERVS.
|
static |
Return deterministic state (inserted into the table) which representing the automaton state which is union of reservations of the deterministic states masked by RESERVS.
The following function creates the structure unit_usage for UNIT on CYCLE in REGEXP alternative with ALT_NUM. The structure is made accessed through cycle_alt_unit_usages.
References alt_state_being_formed, ainsn::alt_states, finish_forming_alt_state(), get_free_alt_state(), get_free_state(), regexp::mode, alt_state::next_alt_state, process_alts_for_forming_states(), process_seq_for_forming_states(), rm_oneof, alt_state::state, and state_being_formed.
|
static |
The function evaluates hash value (0..UINT_MAX) of string.
Referenced by gen_regexp_sequence().
|
static |
Set up in the reservation set RESERVS that unit with UNIT_NUM is used on CYCLE_NUM.
|
static |
The following function switches off given ticker.
References alt_state_cmp().
|
static |
The following function switches on given ticker.
Referenced by clear_arc_insns_equiv_num().
|
static |
The function makes transformation A*N -> A, A, ...
|
static |
The function makes transformations ...,(A,B,...),C,... -> ...,A,B,...,C,... ...+(A+B+...)+C+... -> ...+A+B+...+C+... ...|(A|B|...)|C|... -> ...|A|B|...|C|...
|
static |
The function makes transformations ...,A|B|...,C,... -> (...,A,C,...)|(...,B,C,...)|... ...+(A|B|...)+C+... -> (...+A+C+...)|(...+B+C+...)|... ...+(A,B,...)+C+... -> (...+A+C+...),B,... ...+(A,B,...)+(C,D,...) -> (A+C),(B+D),...
|
static |
The function applies all transformations for reservations of all insn declarations.
References automaton::automaton_order_num, unit_decl::corresponding_automaton_num, process_seq_for_forming_states(), rm_allof, rm_sequence, rm_unit, set_state_reserv(), and unit_decl::unit_num.
|
static |
The function applies all transformations for IR representation of reservation REGEXP.
|
static |
The function sorts ALT_STATES_LIST and removes duplicated alt states from the list. The comparison key is alt state unique number.
Referenced by unit_present_on_list_p().
|
static |
Return true if unit UNIT_DECL is present on the LIST.
References ainsn::alt_states, process_alts_for_forming_states(), ainsn::sorted_alt_states, insn_reserv_decl::transformed_regexp, and uniq_sort_alt_states().
|
static |
The following function is used to sort unit declaration by their names.
|
static |
The function assigns automata to units according to constructions `define_automaton' in the description.
Distribute to the first automaton.
|
static |
The function makes heuristic assigning automata to units. Actually efficacy of the algorithm has been checked yet???
Referenced by minimize_DFA().
|
static |
The following is top level function to output PHR and to finish work with pipeline description translator.
Cache of insn dfa codes:
Output function get_cpu_unit_code.
Finish all work.
|
static |
Pseudo insn decl which denotes advancing cycle.
The following vla is used for storing pointers to all achieved states.
|
static |
|
static |
The following variables is maximal number of allocated nodes alt_state.
|
static |
The following variables is maximal number of allocated nodes `arc'.
|
static |
The following variables is maximal number of allocated nodes `state'.
|
static |
Current alt_state being formed.
Referenced by store_alt_unit_usage().
|
static |
The following variable value is TRUE if the first annotated message about units to automata distribution has been output.
|
static |
Hash table of automata lists.
|
static |
The following variable value is number of automaton which are really being created. This value is defined on the base of argument of option `-split'. If the variable has zero value the number of automata is defined by the constructions `%automaton'. This case occurs when option `-split' is absent or has zero argument. If constructions `define_automaton' is absent only one automaton is created.
Referenced by minimize_DFA().
|
static |
The automaton declaration table itself is represented by the following variable.
|
static |
The following vla is used for storing pointers to all achieved states.
|
static |
The following variable values are times of all checking all generation all pipeline hazard translator work
|
static |
When making an NDFA, produce additional transitions that collapse NDFA state into a deterministic one suitable for querying CPU units. Provide avance-state transitions only for deterministic states.
Referenced by output_min_issue_delay_table().
|
static |
Pseudo insn decl which denotes collapsing the NDFA state.
|
static |
The following variable value is current automaton insn for whose reservation the alt states are created.
Referenced by equal_alternatives_p().
|
static |
|
static |
Values of two variables are counted number of states and arcs in an automaton.
|
static |
The following variable value is number of reservation being processed on loop recognition.
|
static |
The following variable value is current number (1, 2, ...) of passing graph of states.
|
static |
The page contains code for enumeration of all states of an automaton.
Variable used for enumeration of all states of an automaton. Its value is current number of automaton states.
|
static |
|
static |
The list being formed.
|
static |
VLA for representation of array of pointers to unit usage structures. There is an element for each combination of (alternative number, cycle). Unit usages on given cycle in alternative with given number are referred through element with index equals to the cycle * number of all alternatives in the regexp + the alternative number.
|
static |
The declaration table itself is represented by the following variable.
Referenced by copy_ancestor_tree().
Pointers to all declarations during IR generation are stored in the following.
|
static |
Value of the following variable is node representing description being processed. This is start point of IR.
|
static |
Number of set elements (see type set_el_t) needed for representation of one cycle reservation. It is depended on units number.
Referenced by free_automata_list_el().
|
static |
Number of set elements (see type set_el_t) needed for representation of maximal length reservation. Deterministic reservation is stored as set (bit string) of length equal to the variable value * number of bits in set_el_t.
Referenced by free_alt_state().
|
static |
|
static |
The page contains abstract data for work with exclusion sets (see exclusion_set in file rtl.def).
The following variable refers to an exclusion set returned by get_excl_set. This is bit string of length equal to cpu units number. If exclusion set for given unit contains 1 for a unit, then simultaneous reservation of the units is prohibited.
|
static |
Abstract data `alternative states' which represents nondeterministic nature of the description (see comments for structures alt_state and state).
List of free states.
|
static |
|
static |
Abstract data `automata lists'.
List of free states.
|
static |
Linked list of free 'state' structures to be recycled. The next_equiv_class_state pointer is borrowed for a free list.
|
static |
|
static |
The insn declaration table itself is represented by the following variable. The table does not contain insn reservation declarations.
|
static |
All IR is stored in the following obstack.
Referenced by add_arc(), decl_mode_check_failed(), enumerate_states(), initiate_states(), and process_insn_equiv_class().
|
static |
This page contains abstract data `state'.
Maximal length of reservations in cycles (>= 1).
|
static |
|
static |
The following flags are set up by function `initiate_automaton_gen'.
Make automata with nondeterministic reservation by insns (`-ndfa').
|
static |
|
static |
|
static |
Do not try to generate a comb vector (`-no-comb-vect').
|
static |
Do not make minimization of DFA (`-no-minimization').
|
static |
Undefined position.
|
static |
Description file of PHR. The value is NULL if the file is not created.
Referenced by output_insn_latency_func(), output_internal_dead_lock_func(), output_internal_insn_latency_func(), output_internal_maximal_insn_latency_func(), output_internal_reset_func(), output_print_reservation_func(), and output_reset_func().
|
static |
PHR description file name.
|
static |
Output file for pipeline hazard recognizer (PHR) being generated. The value is NULL if the file is not defined.
Referenced by output_dfa_insn_code_func(), output_internal_insn_code_evaluation(), output_internal_min_issue_delay_func(), output_max_insn_queue_index_def(), output_min_issue_delay_func(), output_min_issue_delay_table(), and output_trans_func().
|
static |
|
static |
Flag of output of a progress bar showing how many states were generated so far for automaton being processed (`-progress').
Referenced by clear_arc_insns_equiv_num(), and finish_forming_alt_state().
|
static |
The following variable is set up 1 if a transformation has been applied.
|
static |
The following string contains original reservation string being parsed.
|
static |
Value of this variable is number of automata being generated. The actual number of automata may be less this value if there is not sufficient number of units. This value is defined by argument of option `-split' or by constructions automaton if the value is zero (it is default value of the argument).
|
static |
The page contains code for building alt_states (see comments for IR) describing all possible insns reservations of an automaton.
Current state being formed for which the current alt_state refers.
Referenced by store_alt_unit_usage().
|
static |
The following variable is used for forming array of all possible cpu unit reservations described by the current DFA state.
|
static |
The state table itself is represented by the following variable.
|
static |
Flag of automata statistics (`-stats').
|
static |
Temporary reservation of maximal length.
|
static |
Flag of output time statistics (`-time').
|
static |
The following variable values are times of o transformation of regular expressions o building NDFA (DFA if !ndfa_flag) o NDFA -> DFA (simply the same automaton if !ndfa_flag) o DFA minimization o building insn equivalence classes o all previous ones o code output
|
static |
The value in a table state x ainsn -> something which represents undefined value.
Referenced by output_chip_member_name().
|
static |
|
static |
The array contains exclusion sets for each unit.
|
static |
|
static |
|
static |
The page contains abstract data for work with presence/absence pattern sets (see presence_set/absence_set in file rtl.def).
The following arrays contain correspondingly presence, final presence, absence, and final absence patterns for each unit.
|
static |
Obstack for unit_usage structures.
|
static |
Array of pointers to unit declarations.
|
static |
Flag of creation of description file which contains description of result automaton and statistics information (`-v').
|
static |
Flag of generating warning instead of error for non-critical errors (`-w').
Referenced by output_dfa_start_func(), and process_bypass_2().
|
static |
The following variable value is node representing automaton declaration. The node used for searching automaton declaration with given name.
Referenced by gen_regexp_oneof().
|
static |
The following variable value is node representing declaration. The node used for searching declaration with given name.
Referenced by find_automaton_decl().
|
static |
The following variable value is node representing insn reservation declaration. The node used for searching insn reservation declaration with given name.