1. 04 Feb, 2004 1 commit
    • alloc-pool.h, [...]: Update copyright. · e146f815
      	gcc/
      	* alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
      	caller-save.c, df.h, genconfig.c, global.c, lcm.c,
      	ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
      	sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
      	config/arm/fpa.md, config/arm/iwmmxt.md,
      	config/arm/netbsd-elf.h, config/arm/netbsd.h,
      	config/m68hc11/m68hc11.md, config/mips/iris5.h,
      	config/mn10300/mn10300.md, config/rs6000/altivec.md,
      	config/sparc/netbsd-elf.h: Update copyright.
      
      	cp/
      	* error.c, search.c: Update copyright.
      
      	java/
      	* typeck.c: Update copyright.
      
      From-SVN: r77265
      Kazu Hirata committed
  2. 02 Feb, 2004 1 commit
    • alias.c (record_set): Use hard_regno_nregs. · 66fd46b6
      	* alias.c (record_set): Use hard_regno_nregs.
      	* bt-load.c (find_btr_reference, note_btr_set): Likewise.
      	* builtins.c (apply_args_size): Likewise.
      	* caller-save.c (setup_save_areas, save_call_clobbered_regs,
      	mark_set_regs, add_stored_regs, mark_referenced_regs,
      	insert_restore, insert_save, insert_one_insn): Likewise.
      	* cfgcleanup.c: Include regs.h
      	(mark_effect, mentions_nonequal_regs): Likewise.
      	* cfgrtl.c (mark_killed_regs): Likewise
      	* combine.c (update_table_tick, record_value_for_reg,
      	record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
      	reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
      	reg_bitfield_target_p, distribute_notes): Likewise.
      	* cse.c (mention_regs, insert, invalidate, invalidate_for_call,
      	exp_equiv_p, cse_insn): Likewise.
      	* cselib.c (cselib_lookup): Likewise.
      	(cselib_invalidate_regno, cselib_record_set): Likewise.
      	* df.c (df_ref_record): Likewise.
      	* dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
      	Likewise.
      	* flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
      	count_or_remove_death_notes_bb): Likewise.
      	* function.c (aggregate_value_p, keep_stack_depressed): Likewise.
      	* gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
      	mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
      	* integrate.c (mark_stores): Likewise.
      	* jump.c (delete_prior_computation): Likewise.
      	* lcm.c (reg_dies, reg_becomes_live): Likewise.
      	* local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
      	* loop.c (LOOP_REGNO_NREGS): Likewise.
      	* postreload.c (reload_combine, reload_combine_note_store,
      	reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
      	* ra-colorize.c (combine, color_usable_p, get_free_reg,
      	calculate_dont_begin, calculate_dont_begin, colorize_one_web,
      	try_recolor_web, insert_coalesced_conflicts, check_colors,
      	break_precolored_alias): Likewise.
      	* ra-debug.c: Include regs.h
      	(ra_print_rtx_object): Likewise.
      	* ra-rewrite (choose_spill_colors): Likewise.
      	(spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
      	* ra.c (init_ra): Likewise.
      	* recog.c (reg_fits_class_p, peep2_reg_dead_p,
      	peep2_find_free_register): Likewise.
      	* reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
      	* regclass.c (hard_regno_nregs): New array.
      	(init_reg_modes_once): Initialize it.
      	(choose_hard_reg_mode): Use it.
      	(record_reg_classes): Likewise.
      	* regmove.c (mark_flags_life_zones): Likewise.
      	* regrename.c (note_sets, clear_dead_regs, regrename_optimize,
      	scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
      	copy_value, maybe_mode_change, find_oldest_value_reg,
      	copyprop_hardreg_forward_1):
      	* regs.h (hard_regno_nregs): Declare.
      	* realod.c (reload_inner_reg_of_subreg): Use it.
      	(push_reload, combine_reloads, find_dummy_reload,
      	hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
      	refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
      	reload_adjust_reg_for_mode): Likewise.
      	* reload1.c (compute_use_by_pseudos, count_pseudo,
      	count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
      	spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
      	clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
      	allocate_reload_reg, choose_reload_regs, emit_reload_insns,
      	delete_output_reload): Likewise.
      	* resource.c (update_live_status, mark_referenced_resources,
      	mark_set_resources, mark_target_live_regs): Likewise.
      	* rtlanal.c:  Include regs.h
      	(refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
      	dead_or_set_regno_p, find_regno_note, find_reg_fusage,
      	subreg_regno_offset, subreg_offset_representable_p,
      	hoist_test_store): Likewise.
      	* sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
      	* sched-rgn.c (check_live_1, update_live_1): Likewise.
      	* stmt.c: Include regs.h
      	(decl_conflicts_with_clobbers_p): Likewise.
      	* varasm.c (make_decl_rtl): Likewise.
      	* Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
      
      From-SVN: r77088
      Jan Hubicka committed
  3. 06 Dec, 2003 1 commit
  4. 11 Jul, 2003 1 commit
  5. 06 Jul, 2003 1 commit
    • jump.c: Convert prototypes to ISO C90. · 0c20a65f
      	* jump.c: Convert prototypes to ISO C90.
      	* langhooks-def.h: Likewise.  Add extern to prototypes.
      	* langhooks.c: Likewise.
      	* langhooks.h: Likewise.
      	* lcm.c: Likewise.
      	* local-alloc.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* loop-unswitch.c: Likewise.
      	* loop.c: Likewise.
      	* loop.h: Likewise. Add extern to prototypes.
      	* machmode.h: Likewise.
      	* main.c: Likewise.
      	* mbchar.c: Likewise.
      	* mbchar.h: Likewise.
      	* mkdeps.c: Likewise.
      	* mkdeps.h: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* output.h: Likewise.
      	* gccspec.c: Likwise.
      	* postreload.c: Likewise.
      	* prefix.c: Likewise.
      	* prefix.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* real.h: Likewise.
      	* recog.c: Likewise.
      	* recog.h: Likewise.
      	* reg-stack.c: Likewise.
      	* regclass.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* reload.c: Likewise.
      	* reload.h: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* resource.h: Likewise.
      	* rtl-error.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      
      From-SVN: r68998
      Andreas Jaeger committed
  6. 19 Jun, 2003 1 commit
    • c-tree.h: Remove declaration of poplevel. · e295f317
      	* c-tree.h: Remove declaration of poplevel.
      
      	* tree.h: Remove declaration of approx_sqrt.
      
      	* c-lex.c: Remove redundant declaration of asm_out_file.
      
      	* flags.h: Remove declaration of warn_unknown_pragma and
      	main_input_filename.
      
      	* rtl.h: Remove functions from fold-const.c since they're already
      	declared in tree.h.
      
      	* regs.h: Remove redundant declaration of reg_names.
      
      cp:
      
      	* cp-tree.h: Remove duplicated declarations.
      
      From-SVN: r68193
      Andreas Jaeger committed
  7. 28 Feb, 2003 1 commit
  8. 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
  9. 27 Nov, 2001 1 commit
  10. 22 Aug, 2001 1 commit
    • Makefile.in, [...]: replace "GNU CC" with "GCC". · 1322177d
      	* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
      	bitmap.h, builtin-types.def, builtins.c, builtins.def,
      	c-aux-info.c, c-common.c, c-common.def, c-common.h,
      	c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
      	c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
      	c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
      	caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
      	conditions.h, config.gcc, configure.frag, configure.in,
      	conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
      	cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
      	dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
      	doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
      	dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
      	emit-rtl.c, errors.c, errors.h, except.c, except.h,
      	exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
      	fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
      	function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
      	gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
      	gencheck.c, gencodes.c, genconfig.c, genemit.c,
      	genextract.c, genflags.c, gengenrtl.c, genmultilib,
      	genopinit.c, genoutput.c, genpeep.c, genrecog.c,
      	gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
      	ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
      	graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
      	gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
      	gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
      	hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
      	integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
      	libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
      	machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
      	mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
      	mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
      	params.h, predict.c, predict.def, predict.h, prefix.c,
      	prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
      	read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
      	regclass.c, regmove.c, regrename.c, regs.h, reload.c,
      	reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
      	rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
      	sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
      	sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
      	ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
      	stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
      	tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
      	tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
      	unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
      	unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
      	xcoffout.h: replace "GNU CC" with "GCC".
      
      From-SVN: r45105
      Lars Brinkhoff committed
  11. 30 Jul, 2001 1 commit
    • flow.c (mark_set_1): Use REG_FREQ_FROM_BB. · a08b2604
      	* flow.c (mark_set_1): Use REG_FREQ_FROM_BB.
      	(attempt_auto_inc): LIkewise.
      	(mark_used_reg): Likewise.
      	(try_pre_increment_1): Likewise.
      	* regclass.c (regclass): Likewise.
      	* global.c (allocno_compare): Update comment; change scaling factor.
      	* local-alloc.c (QTY_CMP_PRI): Likewise.
      	* regs.h (REG_FREQ_FROM_BB): New.
      	(REG_FREQ_MAX): Likewise.
      
      From-SVN: r44483
      Jan Hubicka committed
  12. 22 Jun, 2001 1 commit
    • regs.h (struct reg_info_def): Add freq field. · b2aec5c0
      	* regs.h (struct reg_info_def): Add freq field.
      	(REG_N_REFS): Update comment.
      	(REG_FREQ): New.
      	* regclass.c (scan_one_insn): Update REG_FREQ.
      	* flow.c (mark_set_1): Update REG_FREQ, make REG_N_SETS unweighted.
      	(attempt_auto_inc): Likewise.
      	(mark_used_reg): Likewise.
      	(try_pre_increment_1): Likewise.
      	* local-alloc.c (struct qty): Add freq field.
      	(alloc_qty): Set freq.
      	(update_equiv_regs): Set REG_FREQ.
      	(QTY_CMP_PRI): Use freq.
      	(combine_regs): Update qty->freq.
      	* global.c (struct allocno): Update comment for n_refs;
      	add freq field.
      	(local_reg_freq): New array.
      	(global_alloc): Update freq field;
      	allocate and initialize local_reg_freq.
      	(allocno_compare): Use freq field.
      	(find_reg): Likewise.
      	* reload1.c (count_pseudo): Use freq isntead of n_refs.
      	(count_spilled_pseudo): Likewise.
      
      	* tm.texi (GCOV_TYPE_SIZE): Document.
      	* basic-block.h (gcov_type): Define.
      	(struct edge_def): Use gcov_type for count field.
      	(struct basic_block_def): Likewise.
      	* defaults.h (GCOV_TYPE_SIZE): Define.
      	* final.c (end_final): Use GCOV_TYPE_SIZE.
      	* flow.c (dump_edge_info, dump_flow_info, dump_bb): Print count fields
      	using HOST_WIDEST_INT_PRINT_DEC.
      	* gcov-io.h (__fetch_gcov_type, __store_gcov_type, __read_gcov_type,
      	__write_gcov_type): New.
      	(store_long): Remove.
      	* gcov.c (gcov_type): Set default.
      	(struct adj_list): Use gcov_type for arc_count.
      	(bb_info): Use gcov_type for succ_count, pred_count and exec_count.
      	(create_program_flow_graph): Read arc_count properly.
      	(solve_program_flow_graph): 'total' is gcov_type.
      	(output_data): Line_counts is gcov_type, print it properly.
      	* libgcc2.c (struct bb): Counts is gcov_type.
      	(__bb_exit_func): Use __read_gcov_type and __write_gcov_type.
      	* profile.c (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set default.
      	(GCOV_TYPE_SIZE): Define.
      	(struct bb_info): succ_count and pred_count is gcov_type.
      	(compute_branch_probabilities): Use __read_gcov_type,
      	print read edges to the dump file.
      	(total): Is gcov_type.
      	(gen_edge_profiler): Use GCOV_TYPE_SIZE.
      
      From-SVN: r43505
      Jan Hubicka committed
  13. 03 Apr, 2001 1 commit
    • Use byte offsets in SUBREGs instead of words. · ddef6bc7
      2001-04-03  Jakub Jelinek  <jakub@redhat.com>
      	    David S. Miller  <davem@pierdol.cobaltmicro.com>
                  Andrew MacLeod  <amacleod@redhat.com>
      
      	Use byte offsets in SUBREGs instead of words.
      
      	* alias.c (nonlocal_mentioned_p): Use subreg_regno function.
      	* caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
      	to pass new argument.
      	(add_stored_regs): Use subreg_regno_offset function.
      	* calls.c (expand_call): For non-paradoxical SUBREG take endianess
      	into account.
      	(precompute_arguments): Use gen_lowpart_SUBREG.
      	* combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
      	(combine_simplify_rtx): Rework to use SUBREG_BYTE.
      	(simplify_set): Rework to use SUBREG_BYTE.
      	(expand_field_assignment): Use SUBREG_BYTE.
      	(make_extraction): Use SUBREG_BYTE.
      	(if_then_else_cond): Use SUBREG_BYTE.
      	(apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
      	(gen_lowpart_for_combine): Compute full byte offset.
      	* cse.c (mention_regs): Use SUBREG_BYTE.
      	(remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
      	(canon_hash): Use SUBREG_BYTE.
      	(fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
      	(gen_lowpart_if_possible): Formatting.
      	* dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
      	correctly.
      	* dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
      	(mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
      	(loc_descriptor): Fixup explicit XEXP into SUBREG_REG
      	* dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
      	(output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
      	(output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
      	* emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
      	certain invariants about SUBREGs the compiler creates.
      	(gen_lowpart_SUBREG): New function.
      	(subreg_hard_regno): New function to get the final register number.
      	(gen_lowpart_common): Use SUBREG_BYTE.
      	(gen_imagpart): Spacing nits.
      	(subreg_realpart_p): Use SUBREG_BYTE.
      	(gen_highpart): Use SUBREG_BYTE.
      	(subreg_lowpart_p): Always compute endian corrected goal offset,
      	even at the byte level, then compare against that.
      	(constant_subword): New function, pulled out all constant cases
      	from operand_subword and changed second argument name to offset.
      	(operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
      	and call constant_subword to do the work.  Return const0_rtx if
      	looking for a word outside of OP.
      	(operand_subword_force): Change second arg name to offset.
      	* expmed.c (store_bit_field): Use SUBREG_BYTE.
      	(store_split_bit_field): Use SUBREG_BYTE.
      	(extract_bit_field): Use SUBREG_BYTE.
      	(extract_split_bit_field): Use SUBREG_BYTE.
      	(expand_shift): Use SUBREG_BYTE.
      	* expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
      	* final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
      	* flow.c (set_noop_p): Use SUBREG_BYTE.
      	(mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
      	* function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
      	(fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
      	correction code.
      	(optimize_bit_field): Use SUBREG_BYTE.
      	(purge_addressof_1): Use SUBREG_BYTE.
      	(purge_single_hard_subreg_set): Use subreg_regno_offset function.
      	(assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
      	actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
      	* gengenrtl.c (special_rtx): Add SUBREG.
      	* global.c (mark_reg_store): Use SUBREG_BYTE.
      	(set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
      	* ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
      	* integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
      	final byte offset is congruent to subreg's mode size.
      	(subst_constants): Use SUBREG_BYTE.
      	(mark_stores): Use subreg_regno_offset function.
      	* jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
      	function and SUBREG_BYTE.
      	* local-alloc.c (combine_regs): Use subreg_regno_offset function.
      	(reg_is_born): Use subreg_hard_regno.
      	* recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
      	endian correction code.  Don't combine subregs unless resulting
      	offset aligns with type.  Fix subreg constant extraction for DImode.
      	Simplify SUBREG of VOIDmode CONST_DOUBLE.
      	(general_operand): Remove dead mode_altering_drug code.
      	(indirect_operand): Use SUBREG_BYTE.
      	(constrain_operands): Use subreg_regno_offset function.
      	* reg-stack.c (get_true_reg): Use subreg_regno_offset function.
      	* regmove.c (regmove_optimize): Use SUBREG_BYTE.
      	(optimize_reg_copy_3): Use gen_lowpart_SUBREG.
      	* regs.h (REG_SIZE): Allow target to override.
      	(REGMODE_NATURAL_SIZE): New macro which target can override.
      	* reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
      	on the entire subreg rtx.
      	(push_reload): Use SUBREG_BYTE in comments and code.
      	(find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
      	for hard registers inside subregs.
      	(operands_match_p): Use subreg_regno_offset.
      	(find_reloads): Use SUBREG_BYTE and only advance offset for subregs
      	containing hard regs.
      	(find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
      	corrections when fixing up MEM subregs.
      	(find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
      	subreg_regno_offset where appropriate.
      	(find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
      	byte endian corrections when fixing up MEM subregs.
      	(subst_reloads): When combining two subregs, make sure final
      	offset is congruent to subreg's mode size.
      	(find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
      	(refers_to_regno_for_reload_p): Use subreg_regno.
      	(reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
      	* reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
      	correction code for memory subreg fixups.
      	(forget_old_reload_1): Use subreg_regno_offset.
      	(choose_reload_regs): Use subreg_regno.
      	(emit_input_reload_insns): Use SUBREG_BYTE.
      	(reload_combine_note_store): Use subreg_regno_offset.
      	(move2add_note_store): Use subreg_regno_offset.
      	* resource.c (update_live_status, mark_referenced_resources): Use
      	subreg_regno function.
      	(mark_set_resources): Use subreg_regno function.
      	* rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
      	(subreg_regno_offset, subreg_regno): Define prototypes.
      	(subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
      	(gen_lowpart_SUBREG): Add prototype.
      	* rtl.texi (subreg): Update to reflect new byte offset representation.
      	Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
      	* rtlanal.c (refers_to_regno_p): Use subreg_regno.
      	(reg_overlap_mentioned_p): Use subreg_regno.
      	(replace_regs); Make sure final offset of combined subreg is
      	congruent to size of subreg's mode.
      	(subreg_regno_offset): New function.
      	(subreg_regno): New function.
      	* sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
      	* sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
      	* stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
      	* tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
      	(SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
      	* config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
      	(a29k_get_reloaded_address): Use SUBREG_BYTE.
      	(print_operand): Use SUBREG_BYTE.
      	* config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
      	* config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
      	(arm_reload_out_hi): Use SUBREG_BYTE.
      	* config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
      	instead of SUBREG_WORD.
      	(d30v_print_operand_memory_reference): Use subreg_regno_offset.
      	* config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
      	SUBREG creation to use byte offset.
      	* config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
      	inverted load insns): Fix explicit rtl subregs to use byte
      	offsets.
      	* config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
      	udivsi3, umodsi3): Generate SUBREGs with byte offsets.
      	* config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
      	* config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
      	to use byte offsets.
      	(unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
      	* config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
      	offsets, also make sure it is congruent to SUBREG's mode size.
      	(extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
      	unnamed ldob insn): Generate SUBREGs with byte offset.
      	(zero_extendqihi2): SUBREG's are byte offsets.
      	* config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
      	(m68hc11_gen_highpart): Use SUBREG_BYTE.
      	* config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
      	zero-extendqisi2): Generate SUBREGs with byte offset.
      	(umulsidi3, mulsidi3, subreghi1ashrdi_const32,
      	subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
      	subregs in rtl to use byte offsets.
      	* config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
      	* config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
      	(mips_move_2words): Use subreg_regno_offset.
      	(mips_secondary_reload_class): Use subreg_regno_offset.
      	* config/mips/mips.md (DImode plus, minus, move, and logical op
      	splits): Fixup explicit subregs in rtl to use byte offsets.
      	* config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
      	* config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
      	* config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
      	rtl to use byte offsets.
      	* config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
      	* config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
      	subregs to use byte offsets.
      	* config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
      	Fixup explicit subregs in rtl to use byte offsets.
      	* config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
      	and remove byte endian correction code.
      	* config/sh/sh.c (output_movedouble): Use subreg_regno.
      	(gen_ashift_hi): Use SUBREG_BYTE.
      	(regs_used): Use subreg_regno_offset.
      	(machine_dependent_reorg): Use subreg_regno_offset.
      	* config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
      	* config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
      	(movdf_i4): Subregs are byte offsets now.
      	* config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
      	* config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
      	(REGMODE_NATURAL_SIZE): Override.
      	(REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
      	* config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
      	with byte offsets.
      	(zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
      	extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
      	extendqidi2): Generate SUBREGs with byte offsets, also make sure
      	it is congruent to SUBREG's mode size.
      	(smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
      	offsets.
      	(cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
      	cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
      	lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
      	SUBREG_BYTE offset for non-paradoxical subregs in patterns.
      	* config/v850/v850.c (print_operand, output_move_double): Use
      	subreg_regno function.
      
      Co-Authored-By: Andrew MacLeod <amacleod@redhat.com>
      Co-Authored-By: David S. Miller <davem@pierdol.cobaltmicro.com>
      
      From-SVN: r41058
      Jakub Jelinek committed
  14. 28 Feb, 2001 1 commit
    • caller-save.c (reg_save_code, [...]): Index by mode, not NREGS. · 787dc842
      	* caller-save.c (reg_save_code, reg_restore_code):  Index by mode, not
      	NREGS.
      	(insert_save, insert_restore): New parameter save_mode.
      	(init_caller_save): Update initialization of reg_save_code
      	and reg_restore_code.
      	(save_call_clobbered_regs):  Compute save_modes and update calls to
      	reg_save_code and reg_restore_code.
      	(insert_restore):  Unsignetize numbers; use save_modes to choose mode
      	of spill; update use of reg_restore_code.
      	(insert_save):  Likewise.
      	* i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
      	* c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
      	* regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
      
      From-SVN: r40120
      Jan Hubicka committed
  15. 13 Jun, 2000 1 commit
    • combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P instead of... · 02188693
              * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
              CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
              and hard-coded tests.
              (simplify_set): Likewise.
              (gen_lowpart_for_combine): Likewise.
              * emit-rtl.c (gen_lowpart_common): Likewise.
              * global.c (find_reg): Likewise.
              * local-alloc.c (find_free_reg): Likewise.
              * recog.c (register_operand): Likewise.
              * regclass.c (init_reg_sets_1): Likewise.
              (record_operand_costs, regclass): Likewise.
              * reload.c (push_reload): Likewise.
              * reload1.c (choose_reload_regs): Likewise.
              * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
              * local-alloc.c (struct qty): Rename changes_size to changes_mode.
              Update all references.
              * regs.h (struct reg_info_def): Likewise.
              (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
              * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
              (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
      
              * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
              (CLASS_CANNOT_CHANGE_MODE_P): New.
              * config/mips/mips.h: Likewise.
              * config/pa/pa32-regs.h: Likewise.
              * config/pa/pa64-regs.h: Likewise.
              * config/rs6000/rs6000.h: Likewise.
              * config/sh/sh.h: Likewise.
              * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
              (CLASS_CANNOT_CHANGE_MODE_P): New.
              * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
              * config/d30v/d30v.h: Likewise.
      
      From-SVN: r34526
      Richard Henderson committed
  16. 28 May, 2000 1 commit
  17. 19 May, 2000 1 commit
    • cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0. · efc9bd41
      	* cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
      	* reload.c (find_equiv_reg): Likewise.
      	* alias.c (init_alias_analysis): Likewise.
      	Only call prologue_epilogue_contains on insns.
      	* basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
      	* bb-reorder.c (hard-reg-set.h): Include earlier.
      	* haifa-sched.c (hard-reg-set.h): Likewise.
      	* ifcvt.c (hard-reg-set.h): Likewise.
      	* local-alloc.c (hard-reg-set.h): Likewise.
      	* loop.c (hard-reg-set.h): Likewise.
      	* predict.c (hard-reg-set.h): Likewise.
      	* regrename.c (hard-reg-set.h): Likewise.
      	* flow.c (hard-reg-set.h): Likewise.
      	(reg_set_to_hard_reg_set): New function.
      	* bitmap.c (regs.h, basic-block.h): No longer include.
      	(bitmap.h): Now include.
      	* conflict.c (hard-reg-set.h): Include.
      	* profile.c (hard-reg-set.h): Likewise.
      	* print-rtl.c (hard-reg-set.h): Likewise.
      	* sbitmap.c (hard-reg-set.h): Likewise.
      	* toplev.c (hard-reg-set.h): Likewise.
      	* unroll.c (hard-reg-set.h, basic-block.h): Likewise.
      	* hard-reg-set.h (reg_names): Now constant.
      	* regs.h (reg_names): Likewise.
      	* regclass.c (reg_names): Likewise.
      	* loop.h (basic-block.h): No longer include.
      	(bitmap.h): Now include.
      	* reload1.c (order_regs_for_reload): Avoid loop over reg sets.
      	* Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
      	(toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
      
      From-SVN: r34039
      Richard Kenner committed
  18. 24 Apr, 2000 1 commit
    • regs.h (reg_n_max): Don't declare. · da668e9c
      	* regs.h (reg_n_max): Don't declare.
      	* flow.c (reg_n_max): Don't define.
      	* regclass.c (renumber): Don't initialize to zero.
      	(regno_allocated): Likewise.
      	(reg_n_max): Define.
      	(allocate_reg_info): Don't initialize unnecessarily.
      
      From-SVN: r33374
      Mark Mitchell committed
  19. 26 Feb, 2000 1 commit
  20. 17 Jan, 2000 2 commits
    • Update copyrights · 9311a396
      From-SVN: r31465
      Kaveh Ghazi committed
    • machmode.h: PROTO -> PARAMS. · 13536812
              * machmode.h: PROTO -> PARAMS.
              * mbchar.h: Likewise.
              * mips-tdump.c: Likewise.
              * mips-tfile.c: Likewise.
              * optabs.c: Likewise.
              * output.h: Likewise.
              * prefix.c: Likewise.
              * profile.c: Likewise.
              * protoize.c: Likewise.
              * real.h: Likewise.
              * recog.c: Likewise.
              * recog.h: Likewise.
              * regclass.c: Likewise.
              * regmove.c: Likewise.
              * regs.h: Likewise.
      
      From-SVN: r31459
      Kaveh R. Ghazi committed
  21. 18 Dec, 1999 1 commit
    • alias.c: Minor reformatting. · d4b60170
      	* alias.c: Minor reformatting.
      	* flow.c: Likewise.
      	* regs.h: Likewise.
      	* stor-layout.c: Likewise.
      	* fold-const.c: Likewise.
       	(OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
      	(struct cb_args, const_binop_1, const_binop): Pass type of arg,
      	not arg itself.
      	(size_int_wide): Cache nodes even if garbage collecting.
      	(twoval_comparison_p): Reenable SAVE_EXPR case if operand
      	of SAVE_EXPR has no side effects.
      	* cse.c: Move a comment.
      	* tree.c: Minor reformatting.
      	(int_size_in_bytes): Return -1 if constant overflows.
      	* reload.c (combine_reloads): Do nothing if no output reload
      
      From-SVN: r31017
      Richard Kenner committed
  22. 01 Nov, 1999 1 commit
    • hard-reg-set.h (reg_names): Constify a char*. · 99f44eba
      	* hard-reg-set.h (reg_names): Constify a char*.
      
      	* regclass.c  (reg_names): Likewise.
      
      	* regs.h (reg_names): Likewise
      
      	* a29k/a29k.c (reg_names): Delete declaration.
      
      	* a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
      
      	* arc/arc.c (arc_save_restore, arc_output_function_prologue,
      	arc_output_function_epilogue): Likewise.
      
      	* elxsi/elxsi.c (reg_names): Likewise.
      
      	* gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
      
      	* m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
      	Likewise.
      
      	* m88k/m88k.c (output_function_profiler): Likewise.
      
      	* sparc/sparc.c (sparc_flat_output_function_prologue,
      	sparc_flat_output_function_epilogue): Likewise.
      
      From-SVN: r30303
      Kaveh R. Ghazi committed
  23. 09 Aug, 1999 1 commit
    • Include function.h in most files. · 49ad7cfa
      Include function.h in most files.  Remove most of the global variables
      duplicated in function.h.  Add accessor macros for them which access
      current_function.  Delete INLINE_HEADER rtx and related code, replace
      with code using struct function to store inlining related data.
      
      From-SVN: r28626
      Bernd Schmidt committed
  24. 19 Oct, 1998 1 commit
    • combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg. · 8e2f6e35
      	* combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
      	callers changed.
      	(try_combine): Don't update max_scratch.
      	* flow.c (max_scratch, num_scratch): Delete variables.
      	(life_analysis_1): Don't initialize max_scratch.
      	(propagate_block): Don't update max_scratch.
      	(mark_set_1): Don't increment num_scratch.
      	* regs.h (max_scratch): Delete declaration.
      
      From-SVN: r23172
      Bernd Schmidt committed
  25. 02 Oct, 1998 1 commit
    • global.c (global_alloc): Delete code to manage the scratch_list. · 34f89b5f
      	* global.c (global_alloc): Delete code to manage the scratch_list.
      	* local-alloc.c (qty_scratch_rtx): Delete.
      	(scratch_block): Delete.
      	(scratch_list): Delete.
      	(scratch_list_length): Delete.
      	(scratch_index): Delete.
      	(alloc_qty_for_scratch): Delete.
      	(local-alloc): Update initialization of max_qty.
      	Delete code to manage the scratch list.
      	Delete code to allocate/initialize qty_scratch_rtx.
      	(block_alloc): Don't allocate quantities for scratches.
      	Delete code to manage the scratch list.
      	* regs.h (scratch_list): Delete declaration.
      	(scratch_block): Delete declaration.
      	(scratch_list_length): Delete declaration.
      	* reload1.c (reload): Delete code to manage the scratch list.
      	(spill_hard_reg): Likewise.
      	(mark_scratch_live): Delete.
      
      From-SVN: r22751
      Bernd Schmidt committed
  26. 30 Sep, 1998 2 commits
  27. 02 Jul, 1998 1 commit
  28. 13 May, 1998 1 commit
    • acconfig.h (ENABLE_CHECKING): Undefine. · a494747c
              * acconfig.h (ENABLE_CHECKING): Undefine.
              * configure.in (--enable-checking): New option.
              * flow.c (reg_n_max): New global variable.
              * regclass.c (allocate_reg_info): Keep reg_n_max up to date.
              Delete regno_max variable.
              * regs.h (REG_N_CHECK): Define.
              (REG_N_REFS, REG_N_SETS, REG_N_DEATHS): Use REG_N_CHECK.
              (REG_N_CHANGES_SIZE, REG_N_CALLS_CROSSED, REG_LIVE_LENGTH): Likewise.
              (REGNO_FIRST_UID, REGNO_LAST_UID, REGNO_LAST_NOTE_UID): Likewise.
      
      Co-Authored-By: Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de>
      
      From-SVN: r19708
      Michael Meissner committed
  29. 03 Apr, 1998 1 commit
  30. 02 Jun, 1997 1 commit
  31. 30 May, 1997 1 commit
  32. 31 Jan, 1996 1 commit
  33. 01 Jan, 1996 1 commit
    • hard-reg-set.h (losing_caller_save_reg_set): Declare. · 6cad67d2
              * hard-reg-set.h (losing_caller_save_reg_set): Declare.
              * regclass.c (losing_caller_save_reg_set): Define.
              (init_reg_sets_1): Initialize losing_caller_save_reg_set.
              * global.c (find_reg): Avoid caller-saving registers in
              LOSING_CALLER_SAVE_REGS if it's defined.
              * local-alloc.c (find_free_reg): Avoid caller-saving registers
              in losing_caller_save_reg_set.
              (CLASS_LIKELY_SPILLED_P): Delete definition.  Moved into regs.h.
              * regs.h (CLASS_LIKELY_SPILLED_P): Define if not already defined.
      
      From-SVN: r10926
      Jeff Law committed
  34. 27 Dec, 1995 1 commit
  35. 15 Jun, 1995 1 commit
  36. 16 May, 1995 1 commit
  37. 07 Aug, 1994 1 commit
  38. 20 Apr, 1994 1 commit