1. 10 Mar, 2003 1 commit
    • cfgcleanup.c (outgoing_edges_match): Compare the jump tables. · 39811184
      	* cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
      	(try_crossjump_to_edge): Replace refereces to one jump table by
      	references to identical jump table.
      	* loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
      	(replace_label): Moved to rtlanal.c.
      	(struct rtx_pair): Moved to rtl.h.
      	* rtl.h (struct rtx_pair): Moved from loop.c.
      	(replace_label): New extern function.
      	(subrtx_p): New extern function.
      	(tablejump_p): New extern function.
      	* rtlanal.c (replace_label): Moved from loop.c.
      	(subrtx_p_1): New static function.
      	(subrtx_p): New function.
      	(tablejump_p): New function.
      
      From-SVN: r64096
      Josef Zlomek committed
  2. 28 Feb, 2003 1 commit
  3. 20 Feb, 2003 2 commits
    • toplev.c (flag_sched2_use_superblocks, [...]): New global variables. · b9422b69
      	* toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces):  New global variables.
      	(lang_independent_options):  Add -fsched2-use-superblocks -fsced2-use-traces.
      	(rest_of_compilation): Deal with it.
      	* invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
      	* flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces): Declare.
      	* rtl.h (reg_to_stack):  Update prototype.
      	* reg-stack.c (reg_to_stack): Return when something has changed;
      	update liveness when executing after superblock scheduling.
      
      	* combine.c (simplify_shift_const):  Simplify few special cases
      	into constants.
      
      From-SVN: r63183
      Jan Hubicka committed
    • combine.c (distribute_notes): Kill REG_EXEC_COUNT. · 8fa08316
      	* combine.c (distribute_notes): Kill REG_EXEC_COUNT.
      	* rtl.c (reg_note_name): Likewise.
      	* rtl.h (enum reg_note): Likewise.
      	* doc/invoke.texi: Likewise.
      	* doc/rtl.texi: Likewise.
      
      From-SVN: r63157
      Josef Zlomek committed
  4. 05 Feb, 2003 1 commit
  5. 24 Jan, 2003 1 commit
    • emit-rtl.c (reg_attrs_htab): New static variable. · a560d4d4
      	* emit-rtl.c (reg_attrs_htab): New static variable.
      	(reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
      	functions.
      	(reg_rtx): Do not maintain regno_decl.
      	(gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
      	set_mem_attrs_from_reg): New global function.
      	(init_emit): Do not initialize regno_decl.
      	(init_emit_once): initialize reg_attrs_htab.
      	* final.c (alter_subreg): Do not replace REG by SUBREG.
      	(gen_mem_expr_from_op): Improve output.
      	(output_asm_operands): Likewise.
      	* function.c (assign_params): Do not set REGNO_DECL.
      	* function.h (struct function): Kill regno_decl.
      	(REGNO_DECL): Kill.
      	* gengtype.c (adjust_field_rtx_def): Handle new field of reg.
      	* print_rtl.c (print_rtx): Output REG information.
      	* regclass.c (reg_scan_mark_refs): Update attrs.
      	* reload1.c (alter_reg): Likewise.
      	* simplify_rtx.c (simplify_subreg): Likewise.
      	* stmt.c (expand_decl): Likewise.
      	* rtl.def (REG): Add new field.
      	* rtl.h (struct reg_attrs): New.
      	(rtunion_def): At rtreg.
      	(X0MEMATTR): Add checking.
      	(X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
      	(set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
      	Declare.
      	* tree.h (SET_DECL_RTL): Call set_decl_rtl.
      
      From-SVN: r61741
      Jan Hubicka committed
  6. 23 Jan, 2003 1 commit
    • re PR rtl-optimization/8423 (CSE1 not propagating __builtin_constant_p enough) · 34ee7f82
      	PR optimization/8423
      	* cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
      	its argument is constant, or 0 if !flag_gcse.
      	* simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
      	if it's argument is constant.
      	* gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
      	(hash_scan_set): Don't record CONSTANT_P_RTX expressions.
      	(do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
      	* builtins.c (purge_builtin_constant_p): New function to force
      	instantiation of any remaining CONSTANT_P_RTX nodes.
      	* rtl.h (purge_builtin_constant_p): Prototype here.
      	* toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
      	pass after GCSE and before loop.
      	(flag_gcse): No longer static.
      	* flags.h (flag_gcse): Prototype here.
      
      From-SVN: r61642
      Roger Sayle committed
  7. 16 Jan, 2003 1 commit
    • gcse.c (one_cprop_pass): Change function arguments to take both cprop_jumps and… · a0134312
      gcse.c (one_cprop_pass): Change function arguments to take both cprop_jumps and bypass_jumps flags...
      
      
      	* gcse.c (one_cprop_pass): Change function arguments to take both
      	cprop_jumps and bypass_jumps flags instead of just alter_jumps.
      	(gcse_main): Update calls to one_cprop_pass, disabling bypassing.
      	(bypass_jumps): New function to perform separate jump bypassing pass.
      	* rtl.h (bypass_jumps): Add function prototype.
      	* timevar.def (TV_BYPASS): New timing variable.
      	* toplev.c (enum dump_file_index): Add new entry DFI_bypass.
      	(dump_file): New entry for the bypass RTL dump file.
      	(rest_of_compilation): Insert new jump bypassing optimization
      	pass after loop.
      	* doc/passes.texi: Document new pass.
      
      From-SVN: r61374
      Roger Sayle committed
  8. 08 Jan, 2003 1 commit
    • i386.md (adddi3_carry_rex64, [...]): Name pattern. · 7b52eede
      	* i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
      	(addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
      	(add??cc): New expanders.
      	* i386.c (expand_int_addcc): New function.
      	* i386-protos.h (expand_int_addcc): Declare.
      
      	* alias.c (memory_modified_1): New static function.
      	(memory_modified): New static varaible.
      	(memory_modified_in_insn_p): New global function.
      	* rtl.h (memory_modified_in_insn_p): Declare.
      	* rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
      	references.
      
      	* expr.h (emit_conditional_add): Declare.
      
      From-SVN: r61038
      Jan Hubicka committed
  9. 26 Dec, 2002 1 commit
  10. 24 Dec, 2002 1 commit
    • regmove.c: Fix comment typos. · 14b493d6
      	* regmove.c: Fix comment typos.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sibcall.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* ssa-ccp.c: Likewise.
      	* ssa.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* system.h: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* tracer.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* unroll.c: Likewise.
      	* varasm.c: Likewise.
      
      From-SVN: r60473
      Kazu Hirata committed
  11. 16 Dec, 2002 1 commit
  12. 27 Nov, 2002 1 commit
    • expr.c (gen_group_rtx, [...]): New functions. · 084a1106
      	* expr.c (gen_group_rtx, emit_group_move): New functions.
      	* expr.h (gen_group_rtx, emit_group_move): Prototype.
      	* function.c (expand_function_start): Use gen_group_rtx to create a
      	PARALLEL rtx to hold the return value when the real return rtx is a
      	PARALLEL.
      	(expand_function_end): Use emit_group_move to move the return value
      	from a PARALLEL to the real return registers.
      	* rtl.h (REG_FUNCTION_VALUE_P): Allow function values to be returned
      	in PARALLELs.
      
      From-SVN: r59554
      John David Anglin committed
  13. 04 Nov, 2002 1 commit
    • hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New. · cff9f8d5
      2002-11-04  Aldy Hernandez  <aldyh@redhat.com>
      
      	* hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.
      
      	* config/rs6000/rs6000.h (CLASS_CANNOT_CHANGE_MODE_P): Remove.
      	(CLASS_CANNOT_CHANGE_MODE): Remove.
      	(CANNOT_CHANGE_MODE_CLASS): New.
      
      	* config/alpha/alpha.h: Same.
      
      	* config/ia64/ia64.h: Same.
      
      	* config/mips/mips.h: Same.
      
      	* config/s390/s390.h: Same.
      
      	* config/sh/sh.h: Same.
      
      	* config/pa/pa64-regs.h: Same.
      
      	* config/sh/sh-protos.h (sh_cannot_change_mode_class): Add prototype.
      
      	* config/sh/sh.c (sh_cannot_change_mode_class): New.
      
      	* config/mips/mips-protos.h (mips_cannot_change_mode_class): Add
      	prototype.
      
      	* config/mips/mips.c (mips_cannot_change_mode_class): New.
      
      	* doc/tm.texi (Register Classes): Remove
      	CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P.
      	Document CANNOT_CHANGE_MODE_CLASS.
      
      	* reload.c (push_reload): Use CANNOT_CHANGE_MODE_CLASS.
      	(push_reload): Same.
      
      	* simplify-rtx.c (simplify_subreg): Same.
      
      	* reload1.c (choose_reload_regs): Same.
      
      	* recog.c (register_operand): Same.
      
      	* regrename.c (mode_change_ok): Change to use new
      	CANNOT_CHANGE_MODE_CLASS infrastructure.
      
      	* regclass.c (cannot_change_mode_set_regs): New.
      	Declare subregs_of_mode.
      	(regclass): Use subregs_of_mode.
      	Remove references to reg_changes_mode.
      	(init_reg_sets_1): Remove class_can_change_mode and
      	reg_changes_mode code.
      	(invalid_mode_change_p): New.
      	(dump_regclass): Use invalid_mode_change_p instead of
      	class_can_change_mode.
      	(regclass): Same.
      	(record_operand_costs): Do not set reg_changes_mode.
      
      	* local-alloc.c (struct qty): Remove changes_mode field.
      	(alloc_qty): Remove changes_mode initialization.
      	(update_qty_class): Remove set of changes_mode.
      	(find_free_reg): Use subregs_of_mode.
      
      	* global.c (find_reg): Use subregs_of_mode info.
      
      	* rtl.h (cannot_change_mode_set_regs): New prototype.
      	(invalid_mode_change_p): Same.
      	(REG_CANNOT_CHANGE_MODE_P): New macro.
      
      	* flow.c (mark_used_regs): Calculate subregs_of_mode.  Remove
      	REG_CHANGES_MODE.
      	(life_analysis): Clear subregs_of_mode.
      
      	* combine.c (subst): Pass class to CLASS_CANNOT_CHANGE_MODE_P.
      	Remove use of CLASS_CANNOT_CHANGE_MODE.
      	(simplify_set): Same.
      	(gen_lowpart_for_combine): Calculate subregs_of_mode.  Remove
      	REG_CHANGES_MODE.
      
      	* regs.h: Add extern for subregs_of_mode;
      	Include hard-reg-set and basic-block.
      	(REG_CHANGES_MODE): Delete.
      
      From-SVN: r58794
      Aldy Hernandez committed
  14. 07 Oct, 2002 1 commit
  15. 30 Sep, 2002 1 commit
  16. 26 Sep, 2002 1 commit
    • c-common.h: Follow spelling conventions. · 40f03658
      	* c-common.h: Follow spelling conventions.
      	* cpplex.c: Likewise.
      	* cpplib.h: Likewise.
      	* gthr-dce.h: Likewise.
      	* gthr-posix.h: Likewise.
      	* optabs.c: Likewise.
      	* output.h: Likewise.
      	* profile.c: Likewise.
      	* protoize.c: Likewise.
      	* ra-rewrite.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regclass.c: Likewise.
      	* regmove.c: Likewise.
      	* reload.c: Likewise.
      	* reload.h: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      
      From-SVN: r57555
      Kazu Hirata committed
  17. 20 Sep, 2002 1 commit
    • real.c (real_hash): New. · 46b33600
              * real.c (real_hash): New.
              * real.h: Declare it.
              * cse.c (canon_hash): Use it.
              * cselib.c (hash_rtx): Likewise.
              * emit-rtl.c (const_double_htab_hash): Likewise.
              * rtl.h (CONST_DOUBLE_REAL_VALUE): New.
              * varasm.c (struct rtx_const): Reduce vector size; separate
              integer and fp vectors.
              (HASHBITS): Remove.
              (const_hash_1): Rename from const_hash.  Use real_hash.  Do not
              take modulus MAX_HASH_TABLE.
              (const_hash): New.  Do take modulus MAX_HASH_TABLE.
              (output_constant_def): Do not take modulus MAX_HASH_TABLE.
              (SYMHASH): Don't use HASHBITS.
              (decode_rtx_const): Copy only active bits from REAL_VALUE_TYPE.
              Fix CONST_VECTOR thinko wrt fp vectors.  Fix kind comparison.
              (simplify_subtraction): Fix kind comparison.
              (const_hash_rtx): Return unsigned int.  Don't use HASHBITS.
              Use a union to pun integer array.
              * config/rs6000/rs6000.c (rs6000_hash_constant): Use real_hash;
              only hash two words of integral CONST_DOUBLE.
      
      From-SVN: r57356
      Richard Henderson committed
  18. 16 Sep, 2002 1 commit
    • Index: gcc/ChangeLog · 36a5eadd
      2002-09-12  Geoffrey Keating  <geoffk@apple.com>
      
      	* ggc-common.c (ggc_mark_rtx_children_1): Update for changed name
      	mangling.
      
      	The following changes are merged from pch-branch:
      
      	* doc/gty.texi (GTY Options): Document %a.
      	* gengtype.c (do_scalar_typedef): New function.
      	(process_gc_options): Handle `length' option.
      	(set_gc_used_type): A pointer to an array of structures doesn't
      	qualify as a pointer to a structure.
      	(output_escaped_param): Add `%a' escape.
      	(write_gc_structure_fields): Allow 'desc' on array of unions.
      	(main): Define `uint8', `jword' and `JCF_u2' as scalars; use
      	do_scalar_typedef.
      
      	* gengtype.c (enum rtx_code): Make global.
      	(rtx_format): Make global.
      	(rtx_next): New.
      	(gen_rtx_next): New.
      	(write_rtx_next): New.
      	(adjust_field_rtx_def): Skip fields marked by chain_next.
      	(open_base_files): Delete redundant prototype.
      	(write_enum_defn): New.
      	(output_mangled_typename): Correct abort call.
      	(write_gc_marker_routine_for_structure): Handle chain_next and
      	chain_prev options.
      	(finish_root_table): Don't output redundant \n.
      	(main): Call gen_rtx_next, write_rtx_next, write_enum_defn.
      	* c-tree.h (union lang_tree_node): Add chain_next option.
      
      	* gengtype.h (NUM_PARAM): New definition.
      	(struct type): For TYPE_PARAM_STRUCT, allow multiple parameters.
      	* gengtype.c (find_param_structure): New.
      	(adjust_field_type): Handle param<n>_is option.
      	(process_gc_options): Detect use_params option.  Update callers.
      	(set_gc_used_type): Add 'param' parameter, update callers.  Handle
      	'use_params' option.
      	(open_base_files): Add splay-tree.h to list of files included.
      	(output_mangled_typename): New.
      	(write_gc_structure_fields): Update 'param' parameter to support
      	multiple parameters.  Change name mangling.  Allow parameterized
      	fields to have an apparent scalar type.  Handle param<n>_is options,
      	use_param option.
      	(write_gc_marker_routine_for_structure): Update for change to name
      	mangling.  Better guess the output file for parameterized types.
      	(write_gc_types): Update for change to name mangling.
      	(write_gc_root): Update for change to name mangling.  Handle (ignore)
      	param<n>_is options.
      	* doc/gty.texi (GTY Options): Add description of param<n>_is
      	options, use_params option.
      	* ggc.h (ggc_mark_rtx): Update for changed name mangling.
      	* gengtype-lex.l: Produce token for param<n>_is.
      	* gengtype-yacc.y: Parse param<n>_is.
      
      	* gengtype.c (adjust_field_tree_exp): Don't name a variable 'rindex'.
      
      	* rtl.c: Update comment describing rtx_format.
      	* rtl.h (union rtunion): Separate definition and typedef.
      	(struct rtx_def): Use gengtype to mark.
      	* Makefile.in (gengtype.o): Also depend on rtl.def.
      	* ggc.h (ggc_mark_rtx_children): Delete prototype.
      	(ggc_mark_rtx): Change to alias of gengtype-generated routine.
      	* ggc-common.c (ggc_mark_rtx_children): Delete.
      	(ggc_mark_rtx_children_1): Delete.
      	(gt_ggc_m_rtx_def): Delete.
      	* gengtype.c (adjust_field_rtx_def): New.
      	(adjust_field_type): Call adjust_field_rtx_def.
      	(write_gc_structure_fields): Add 'default' case to switch if none
      	is specified; remove unused code.
      
      	* tree.h (struct tree_exp): Update for change to meaning
      	of special.
      	* gengtype.c (adjust_field_tree_exp): New function.
      	(adjust_field_type): Handle `tree_exp' special here.
      	(write_gc_structure_fields): Don't handle `tree_exp' special here.
      	Handle new `dot' option.
      
      	* gengtype.h: Make `info' a pointer-to-const.
      	* gengtype-yacc.y (yacc_ids): Use xasprintf.
      
      	* gengtype.c (write_gc_structure_fields): Remove implementation
      	of `always' option, add `default' option.
      	* doc/gty.texi (GTY Options): Remove documentation of `always',
      	add `default'.
      
      Index: gcc/cp/ChangeLog
      2002-09-12  Geoffrey Keating  <geoffk@apple.com>
      
      	* cp-tree.h (union lang_tree_node): Add chain_next option.
      
      Index: gcc/f/ChangeLog
      2002-09-12  Geoffrey Keating  <geoffk@apple.com>
      
      	* com.c (union lang_tree_node): Add chain_next option.
      
      Index: gcc/java/ChangeLog
      2002-09-12  Geoffrey Keating  <geoffk@apple.com>
      
      	* java-tree.h (union lang_tree_node): Add chain_next option.
      
      From-SVN: r57206
      Geoffrey Keating committed
  19. 08 Sep, 2002 1 commit
    • basic-block.h: Fix comment formatting. · 4b7e68e7
      	* basic-block.h: Fix comment formatting.
      	* c-common.c: Likewise.
      	* c-common.h: Likewise.
      	* c-lex.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* defaults.h: Likewise.
      	* et-forest.c: Likewise.
      	* explow.c: Likewise.
      	* function.h: Likewise.
      	* gcov.c: Likewise.
      	* genattrtab.c: Likewise.
      	* gengtype.c: Likewise.
      	* ifcvt.c: Likewise.
      	* libgcc2.c: Likewise.
      	* loop.c: Likewise.
      	* profile.c: Likewise.
      	* ra-build.c: Likewise.
      	* real.c: Likewise.
      	* rtl.h: Likewise.
      	* tracer.c: Likewise.
      	* tree-inline.c: Likewise.
      	* varasm.c: Likewise.
      
      From-SVN: r56952
      Kazu Hirata committed
  20. 14 Aug, 2002 1 commit
  21. 25 Jul, 2002 1 commit
  22. 19 Jul, 2002 1 commit
    • rtl.def (CODE_LABEL): Remove slot 8. · 0dc36574
      	* rtl.def (CODE_LABEL): Remove slot 8.
      	* rtl.h (struct rtx_def): Document new uses of jump and call fields.
      	(LABEL_ALTERNATE_NAME): Delete.
      	(LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New.
      	* defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME.
      
      	* final.c (output_alternate_entry_point): New.
      	(final_scan_insn): Use it instead of
      	ASM_OUTPUT_ALTERNATE_LABEL_NAME.  Do not consider possibility
      	of a case label being an alternate entry point.
      
      	* cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P.
      	* emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL.
      	Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME
      	(field deleted).
      	* print-rtl.c, ra-debug.c: Update code to output CODE_LABELs.
      
      	* doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and
      	LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME.
      	* doc/tm.texi: Delete documentation of
      	ASM_OUTPUT_ALTERNATE_LABEL_NAME.
      
      From-SVN: r55597
      Zack Weinberg committed
  23. 11 Jul, 2002 1 commit
  24. 21 Jun, 2002 1 commit
  25. 14 Jun, 2002 2 commits
  26. 13 Jun, 2002 2 commits
    • emit-rtl.c (static_regno_reg_rtx): Define. · 6cde4876
              * emit-rtl.c (static_regno_reg_rtx): Define.
              (init_emit_once): Initialize static_regno_reg_rtx.
              (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
              of building new hard reg objects once per function.
              (gen_rtx_REG): Try to share hard regs.
      	* regclass.c (init_fake_stack_mems): New function broken out from
      	init_regs.
      	* rtl.h (init_fake_stack_mems): Declare.
      	* toplev.c (lang_independent_init): Call init_regs before
      	init_emit_once.  Call init_fake_stack_mems after init_emit_once.
      
      From-SVN: r54588
      Jeff Law committed
    • alias.c (argument_registers): Remove. · 7f243674
      	* alias.c (argument_registers): Remove.
      	(init_alias_once): Initialize static_reg_base_value here.  Remove
      	initialization of argument_registers.
      	(init_alias_once_per_function): Remove.
      	(init_alias_analysis): Copy all the entries from static_reg_base_value
      	into new_reg_base_value all at once.
      	* rtl.h (init_alias_once_per_function): Remove declaration.
      	* function.c (prepare_function_start): Do not call
      	init_alias_once_per_function.
      
      	* caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
      	starting a sequence and emitting an INSN.
      
      From-SVN: r54582
      Jeff Law committed
  27. 11 Jun, 2002 1 commit
    • Delete SEQUENCE rtl usage outside of reorg and ssa passes. · 2f937369
      2002-06-05  David S. Miller  <davem@redhat.com>
      
      	Delete SEQUENCE rtl usage outside of reorg and ssa passes.
      	* rtl.h (gen_sequence, emit_insns, emit_insns_before,
      	emit_insns_before_scope, emit_insns_after,
      	emit_insns_after_scope): Delete declaration.
      	* ada/misc.c (insert_code_for): Use emit_insn* instead of
      	emit_insns_foo.
      	* config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
      	(alpha_set_memflags): Fix comment.
      	(set_frame_related_p): Use get_insns instead of gen_sequence.
      	* config/alpha/alpha.md (setjmp receiver splitter): Avoid
      	emitting no insns.
      	* config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
      	gen_sequence.
      	(arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
      	* config/fr30/fr30.c (fr30_move_double): Likewise.
      	* config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
      	Likewise.
      	* config/ia64/ia64.c (spill_restore_mem): Likewise.
      	* config/ia64/ia64.md (conditional move spliiter): Avoid emitting
      	no insns.
      	* config/m32r/m32r.c (gen_split_move_double): Use get_insns
      	instead of gen_sequence.
      	* config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
      	(mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
      	* config/sh/sh.c (sh_need_epilogue): Likewise.
      	* config/sparc/sparc.md (current_function_calls_alloca, flat): New
      	attributes.
      	(setjmp pattern and split): Use them to avoid splitter which emits
      	no RTL.
      	* genattrtab.c (main): Emit include of function.h
      	* config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
      	get_insns instead of gen_sequence.
      	* config/cris/cris.c (cris_split_movdx): Likewise.
      	* emit-rtl.c (emit_insns*): Kill.
      	(try_split): Expect insn list instead of SEQUENCE.
      	(make_jump_insn_raw, make_call_insn_raw): Fix comments.
      	(emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
      	Make them abort if a SEQUENCE is given and RTL checking is
      	enabled.
      	(emit_*_scope): Don't forget to set scope on final insn.
      	(gen_sequence): Move from here...
      	* ssa.c (gen_sequence): To here as private function.
      	* builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
      	comments.
      	(expand_builtin_return, expand_builtin_mathfn): Likewise.
      	(expand_builtin_strlen): Use get_insns instead of gen_sequence.
      	(expand_builtin_saveregs): Use emit_insn_foo, fix comments.
      	(expand_builtin_expect_jump): Use get_insns and fix comments.
      	* calls.c (try_to_integrate): Use emit_insn_foo.
      	(expand_call, emit_library_call_value_1): Likewise.
      	* expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
      	(emit_move_insn_1): Use get_insns instead of gen_sequence.
      	(expand_expr): Use emit_insn_foo.
      	* cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
      	* except.c (build_post_landing_pads): Likewise.
      	* flow.c (attempt_auto_inc): Likewise.
      	* stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
      	expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
      	* function.c (fixup_var_refs_insn): Use get_insns instead of
      	gen_sequence.
      	(fixup_var_refs_1): Likewise and expect insn list from gen_foo.
      	(fixup_memory_subreg): Use get_insns instead of gen_sequence.
      	(fixup_stack_1, purge_addressof_1, expand_main_function,
      	get_arg_pointer_save_area): Likewise.
      	(optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
      	expand_function_end): Use emit_insn_foo.
      	(record_insns, keep_stack_depressed): Work with insn list instead
      	of SEQUENCE, fix comments.
      	* ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
      	noce_try_store_flag_constants, noce_try_store_flag_inc,
      	noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
      	noce_try_minmax, noce_try_abs): Use emit_insn_foo.
      	(noce_process_if_block): Use get_insns instead of gen_sequence.
      	* optabs.c (add_equal_note): Work with insn list, fix comments.
      	(expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
      	(expand_unop, expand_complex_abs, expand_unop_insn,
      	expand_no_conflict_block): Likewise.
      	(gen_move_insn): Use get_insns instead of gen_sequence.
      	(gen_cond_trap): Likewise.
      	* integrate.c (copy_rtx_and_substitute): Likewise.
      	(emit_initial_value_sets): Use emit_insn_foo.
      	* reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
      	(fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
      	now that RTL generators give insn lists.
      	* sibcall.c (replace_call_placeholder): Use emit_insn_foo.
      	* doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
      	instead of gen_sequence.
      	(doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
      	* explow.c (emit_stack_save, emit_stack_restore): Use get_insns
      	instead of gen_sequence.
      	* loop.c (move_movables, emit_prefetch_instructions,
      	gen_add_mult, check_dbra_loop, gen_load_of_final_value):
      	Likewise.
      	(loop_regs_update): Work with insn list instead of SEQUENCE rtl.
      	(product_cheap_p): Likewise, and add commentary about RTL wastage
      	here.
      	* lcm.c (optimize_mode_switching): Use get_insns instead of
      	gen_sequence.
      	* profile.c (gen_edge_profiler): Likewise.
      	* regmove.c (copy_src_to_dest): Likewise.
      	* reg-stack.c (compensate_edge): Likewise and fix comment.
      	* gcse.c (process_insert_insn): Likewise.
      	(insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
      	* jump.c (delete_prior_computation): Update comment.
      	* genemit.c (gen_expand, gen_split, main): Use get_insns instead
      	of gen_sequence, update comments to match.
      	* recog.c (peephole2_optimize): Work with insn lists instead of
      	SEQUENCE rtl.
      	* sched-vis.c (print_pattern): Abort on SEQUENCE.
      	* unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
      	Use get_insns instead of gen_sequence.
      	(copy_loop_body): Likewise and don't emit dummy NOTE.
      	* genrecog.c: Don't mention SEQUENCE rtl in comments.
      	* combine.c (try_combine): Expect insn lists from split generator.
      	* reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
      	hand.
      
      From-SVN: r54497
      David S. Miller committed
  28. 10 Jun, 2002 1 commit
    • alias.c (static_reg_base_value): New to hold RTL for items allocated once per… · bf1660a6
      alias.c (static_reg_base_value): New to hold RTL for items allocated once per function for the aliasing code.
      
      	* alias.c (static_reg_base_value): New to hold RTL for
      	items allocated once per function for the aliasing code.
      	(init_alias_once_per_function): Initialize static_reg_base_value.
      	(init_alias_analysis): Avoid throw-away allocations of RTL by
      	using pre-computed values in static_reg_base_value.
      	* function.c (prepare_function_start): Call
      	init_alias_once_per_function appropriately.
      	* rtl.h (init_alias_once_per_function): Declare.
      	* caller-save (init_caller_save): Restructure slightly to
      	avoid lots of silly RTL generation.
      	* expr.c (init_expr_once): Likewise.
      	* reload1.c (reload_cse_regs_1): Allocate throw-away register
      	RTL object here.  Pass it into children.
      	(reload_cse_simplify_operands): Use passed-in register RTL
      	object.
      	(reload_cse_simplify): Pass through throw-away register
      	RTL object.
      
      From-SVN: r54442
      Jeff Law committed
  29. 06 Jun, 2002 2 commits
    • i386.md (and promoting splitters): Disable QI to SImode promoting when doing so… · 0d682900
      i386.md (and promoting splitters): Disable QI to SImode promoting when doing so changes immediate to be 32bit.
      
      
      	* i386.md (and promoting splitters): Disable QI to SImode promoting
      	when doing so changes immediate to be 32bit.
      
      	* rtl.h (emit_*_scope): Declare.
      	* emit-rtl.c (emit_*_scope): New global functions.
      	(try_split): Copy scope.
      	* ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
      	noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
      	noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
      	noce_process_if_block, find_cond_trap): Copy scopes.
      	* recog.c (peephole2_optimize): likewise.
      
      From-SVN: r54327
      Jan Hubicka committed
    • emit-rtl.c (get_first_nonnote_insn, [...]): New functions. · 2a496e8b
      	* emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
      	functions.
      	* rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
      	* avr/avr.c (avr_output_function_epilogue): Use above to determine
      	function size.
      	* pa/pa.c (pa_output_function_prologue): Likewise.
      
      From-SVN: r54304
      John David Anglin committed
  30. 04 Jun, 2002 2 commits
  31. 02 Jun, 2002 2 commits
    • loop.c (emit_prefetch_instructions): Properly place the address computation. · ba4f7968
      
      	* loop.c (emit_prefetch_instructions): Properly place the address computation.
      
      
      	* basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
      	(set_block_for_insn): Turn into macro.
      	* cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
      	* cfglayout.c (insn_scopes): Kill.
      	(scope_to_insns_initialize): Do not use insn_scopes.
      	(scope_to_insns_finalize): Likewise.
      	(duplicate_insn_chain): Likewise.
      	(cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
      	* cfgrtl.c (basic_block_for_insn): Kill.
      	(delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
      	(create_basic_block_structure): Use reorder_insns.
      	(compute_bb_for_insn): Do not use basic_block_for_insn.
      	(merge_blocks_nomove): Likewise.
      	(update_bb_for_insn): Likewise.
      	(verify_flow_info): Likewise.
      	(set_block_for_insn): Kill.
      	* combine.c (try_combine): Update gen_rtx_INSN call.
      	* emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
      	(mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
      	scopes and BBs.
      	(add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
      	(emit_note_before, emit_note_after, emit_line_note_after, emit_note):
      	Clear BB.
      	(emit_insns_after): Simplify.
      	(emit_copy_of_insn_after): Copy scope.
      	* final.c (final_start_function): Lower scopes.
      	* flow.c (check_function_return_warnings): Do not rely on deleted insn.
      	* integrate.c (copy_insn_list): Cope scopes.
      	* jump.c (duplicate_loop_exit_test): LIkewise; simplify.
      	* loop.c (loop_optimize): Do not care block notes.
      	* print-rtl.c (print_rtx): Print BB.
      	* recog.c (apply_change_group): Simplify.
      	* rtl.c (copy_rtx): Handle 'B'.
      	* rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
      	* rtl.h (Field accessors): Update indexes.
      	* sched-ebb.c (schedule_ebbs): Do not lower notes.
      	* sched-rgn.c (schedule_insns): Likewise.
      	* toplev.c (rest_of_compilation): Lower notes.
      	* unroll.c (unroll_loop): Do not care scoping notes.
      	(copy_loop_body): Copy scopes.
      
      From-SVN: r54188
      Jan Hubicka committed
    • rtl.h (CC0_P): New. · 818b6b7f
              * rtl.h (CC0_P): New.
              * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
              (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
              (bypass_block): Save old dest block for dump text.
              (bypass_conditional_jumps): Allow any mode register; use CC0_P.
              Allow only true SET insns, not single_set.
      
      From-SVN: r54178
      Richard Henderson committed
  32. 01 Jun, 2002 1 commit
    • Makefile.in (tracer.o): New. · 5c856b23
      	* Makefile.in (tracer.o): New.
      	* params.def (TRACER_*): New options.
      	* rtl.h (tracer): Declare.
      	* timevar.def (TV_TRACER): New.
      	* toplev.c (dump_file_index): Add DFI_tracer.
      	(dump_file_info): Add tracer.
      	(flag_tracer): New.
      	(lang_indepdenent_options): Add tracer.
      	(rest_of_compilation): Call tracer.
      	* tracer.c: New file.
      	* invoke.texi (-ftracer): Document.
      	(--param tracer-*): Document.
      
      From-SVN: r54154
      Jan Hubicka committed
  33. 30 May, 2002 1 commit
    • rtl.h (clear_emit_caches): Delete. · 62a35e60
      2002-05-29  David S. Miller  <davem@redhat.com>
      
      	* rtl.h (clear_emit_caches): Delete.
      	* integrate.c (output_inline_function): Don't call it.
      	* emit-rtl.c (restore_emit_status, init_emit): Likewise.
      	(clear_emit_caches): Delete definition.
      	(SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
      
      From-SVN: r54053
      David S. Miller committed
  34. 21 May, 2002 1 commit