summaryrefslogtreecommitdiff
path: root/gcc/genattrtab.h
Commit message (Collapse)AuthorAgeFilesLines
* r110127@banpei: zack | 2006-01-22 14:49:27 -0800zack2006-01-231-54/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls nor any of the random handful of variables that used to be necessary when this program was linked with rtlanal.o. Prune set of forward function declarations. (struct attr_desc): Remove static_p field. (hash_obstack, temp_obstack, attr_hash_table, attr_printf) (check_attr_test, make_internal_attr, make_numeric_value): Make static. (attr_string): Do not read the character one past the length of the string. (write_attr_get, find_attr, make_internal_attr): Don't touch static_p. (struct insn_reserv, all_insn_reservs, last_insn_reserv_p) (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses) (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses) (make_automaton_attrs): New. (main): Do not call into genautomata. Call local gen_bypass and gen_insn_reserv as appropriate. Call make_automaton_attrs. Remove special case for insn_alts. * genautomata.c: Include gensupport.h; not genattrtab.h nor varray.h (leftover from previous change). Prune set of forward function declarations. Remove state_alts fields from all structures. Remove state_alts_table from struct automaton. Make everything except main static. Do not maintain num_dfa_decls. Do not maintain state_alts fields of various structures. (process_decls): Don't validate condexp for dm_insn_reserv decls. (add_arc): Remove state_alts argument. All callers updated. (output_reserved_units_table): Emit #ifdef here... (output_tables): ...not here. Don't generate state_alts tables. (expand_automata): Don't generate attributes. (write_automata): Don't generate state_alts functions. (main): New function. (it_is_empty_reserv_sets, output_state_alts_full_vect_name) (output_state_alts_comb_vect_name, output_state_alts_check_vect_name) (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME) (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME) (BYPASS_P_FUNC_NAME, output_state_alts_table) (output_automata_list_state_alts_code, output_internal_state_alts_func) (output_state_alts_func, make_insn_alts_attr, make_bypass_attr) (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr): Delete. * genattr.c: Declare internal_dfa_insn_code in insn-attr.h. * genattrtab.h: Delete file. * Makefile.in (OBJS-common): Add insn-automata.o. (insn-automata.o): New rule. (simple_generated_c): Add insn-automata.c. (build/genattrtab.o, build/genautomata.o): Update dependencies. (genprogmd): Add automata. (build/genattrtab): Needs no extra objects nor libraries. (build/genautomata): Needs build/vec.o and -lm. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110123 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kcook2005-06-251-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101317 138bc75d-0d04-0410-961f-82ee72b054a4
* * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,kazu2005-04-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c, errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c, genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def, integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c, machmode.def, mips-tfile.c, params.c, pretty-print.c, print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h, tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c, config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md, config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h, config/i386/cygming.h, config/i386/djgpp.h, config/i386/lynx.h, config/i386/netware.c, config/i386/winnt.c, config/ia64/ia64-c.c, config/iq2000/iq2000.c, config/m32r/little.h, config/m68k/m68k-protos.h, config/m68k/m68k.h, config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md, config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, config/mn10300/mn10300.h, config/ns32k/netbsd.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-hpux11.h, config/pdp11/pdp11.c, config/pdp11/pdp11.h, config/rs6000/darwin.h, config/rs6000/default64.h, config/rs6000/rs6000-c.c, config/s390/2064.md, config/s390/2084.md, config/s390/s390-modes.def, config/s390/s390-protos.h, config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c, config/stormy16/stormy16.c, config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h, config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update copyright. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98914 138bc75d-0d04-0410-961f-82ee72b054a4
* * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.kazu2005-04-081-5/+1
| | | | | | | | | | | | (check_attr_value, write_attr_get, write_expr_attr_cache, find_attr, make_internal_attr): Don't reference negative_ok or unsigned_p. * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED, ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove. (ATTR_STATIC): Adjust the value. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97841 138bc75d-0d04-0410-961f-82ee72b054a4
* * genattr.c (internal_dfa_insn_code): Don't prototype.ghazi2003-07-091-0/+1
| | | | | | | | | | | | | | | | * genattrtab.c (attr_desc): Add `static_p' field. (expand_units): Make blockage range and ready cost functions static. (write_attr_get): Don't add extern prototypes in C file. Mark static functions as appropriate. (find_attr, make_internal_attr): Initialize static_p. * genattrtab.h (ATTR_STATIC): New macro. * genautomata.c (output_internal_reset_func): Mark output function as inline. (make_internal_dfa_insn_code_attr): Mark output function as static. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69116 138bc75d-0d04-0410-961f-82ee72b054a4
* * genattrtab.h: Add new macros for attr `special' flags.ghazi2003-07-091-0/+8
| | | | | | | | | * genattrtab.c (attr_desc): Reorder/resize fields better. Use attr `special' macros in all calls to make_internal_attr. * genautomata.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69114 138bc75d-0d04-0410-961f-82ee72b054a4
* * genattrtab.h: Convert prototypes to ISO C90.aj2003-07-061-20/+20
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69000 138bc75d-0d04-0410-961f-82ee72b054a4
* * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,neroden2003-03-131-4/+4
| | | | | | | langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64298 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-01-20 Vladimir Makarov <vmakarov@redhat.com>vmakarov2003-01-201-0/+4
| | | | | | | | | | | | | | * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c. * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h. * genattr.c (main): Output default definition of AUTOMATON_ALTS. Wrap up definition `insn_alts'. * genattrtab.c (main): Wrap up `insn_alts'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61513 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-01-09 Vladimir Makarov <vmakarov@redhat.com>vmakarov2003-01-091-0/+2
| | | | | | | Merging changes from itanium-sched-branch: git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61132 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-04-29 Vladimir Makarov <vmakarov@redhat.com>vmakarov2002-04-291-0/+43
| | | | | | | Merging code from dfa-branch: git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52915 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-08-30 Vladimir Makarov <vmakarov@redhat.com>vmakarov2001-08-301-43/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rtl.def: Undo my patch commited 2001-08-27. * genattrtab.c: Ditto. * rtl.h: Ditto. * sched-int.h: Ditto. * target-def.h: Ditto. * target.h: Ditto. * haifa-sched.c: Ditto. * sched-rgn.c: Ditto. * sched-vis.c: Ditto. * Makefile.in: Ditto. * doc/md.texi: Ditto. * doc/tm.texi: Ditto. * doc/contrib.texi: Ditto. * doc/gcc.texi: Ditto. * genattrtab.h: Remove it. * genautomata.c: Remove it. * genattr.c: Undo my patch and Richard Henderson's patch commited 2001-08-27. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45297 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-08-27 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>vmakarov2001-08-271-0/+43
* rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New RTL constructions. * genattr.c (main): New variable num_insn_reservations. Increase it if there is DEFINE_INSN_RESERVATION. Output automaton based pipeline hazard recognizer interface. * genattrtab.h: New file. * genattrtab.c: Include genattrtab.h. (attr_printf, check_attr_test, make_internal_attr, make_numeric_value): Move protypes into genattrtab.h. Define them as external. (num_dfa_decls): New global variable. (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET, DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION. Call expand_automata and write_automata. * genautomata.c: New file. * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them. * sched-int.h: (curr_state): Add the external definition for automaton pipeline interface. (haifa_insn_data): Add comments for members blockage and units. * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, TARGET_SCHED_DFA_PRE_CYCLE_INSN, TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, TARGET_SCHED_DFA_POST_CYCLE_INSN, TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New macros. (TARGET_SCHED): Use the new macros. * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn, dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn, first_cycle_multipass_dfa_lookahead, init_dfa_bubbles, dfa_bubble): New members in gcc_target.sched. * haifa-sched.c (insert_schedule_bubbles_p): New variable. (MAX_INSN_QUEUE_INDEX): New macro for automaton interface. (insn_queue): Redefine it as pointer to array. (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE. (max_insn_queue_index_macro_value): New variable. (curr_state, dfa_state_size, ready_try): New varaibles for automaton interface. (ready_element, ready_remove, max_issue): New function prototypes for automaton interface. (choose_ready): New function prototype. (insn_unit, blockage_range): Add comments. (unit_last_insn, unit_tick, unit_n_insns): Define them for case FUNCTION_UNITS_SIZE == 0. (insn_issue_delay, actual_hazard_this_instance, schedule_unit, actual_hazard, potential_hazard): Add comments. (insn_cost): Use cost -1 as undefined value. Remove LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton pipeline interface. (ready_element, ready_remove): New functions for automaton interface. (schedule_insn): Add new code for automaton pipeline interface. (queue_to_ready): Add new code for automaton pipeline interface. Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE. (debug_ready_list): Print newline when the queue is empty. (max_issue): New function for automaton pipeline interface. (choose_ready): New function. (schedule_block): Add new code for automaton pipeline interface. Print ready list before scheduling each insn. (sched_init): Add new code for automaton pipeline interface. Initiate insn cost by -1. (sched_finish): Free the current automaton state and finalize automaton pipeline interface. * sched-rgn.c: Include target.h. (init_ready_list, new_ready, debug_dependencies): Add new code for automaton pipeline interface. * sched-vis.c: Include target.h. (get_visual_tbl_length): Add code for automaton interface. (target_units, print_block_visualization): Add comments. * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB, USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables. (sched-rgn.o, sched-vis.o): Add new dependency file target.h. (getruntime.o, genautomata.o): New entries. (genattrtab.o): Add new dependency file genattrtab.h. (genattrtab): Add new dependencies. Link it with `libm.a'. (getruntime.o, hashtab.o): New entries for canadian cross. * doc/md.texi: Description of automaton based model. * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST): Add comments. (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, TARGET_SCHED_DFA_PRE_CYCLE_INSN, TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, TARGET_SCHED_DFA_POST_CYCLE_INSN, TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new hook descriptions. (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE, MAX_DFA_ISSUE_RATE): New macro descriptions. * doc/contrib.texi: Add dfa based scheduler contribution. * doc/gcc.texi: Add more information about genattrtab. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45202 138bc75d-0d04-0410-961f-82ee72b054a4