Commit Graph

55 Commits

Author SHA1 Message Date
Richard Henderson
e881bb1b1b Flow rewrite to use basic block structures and edge lists.
From-SVN: r25450
1999-02-25 15:45:42 -08:00
Richard Henderson
a5cad80034 Update copyrights.
From-SVN: r24624
1999-01-11 15:15:28 -08:00
Richard Henderson
3b413743e0 basic-block.h (basic_block_head): Rename to x_basic_block_head.
* basic-block.h (basic_block_head): Rename to x_basic_block_head.
        (basic_block_end): Rename to x_basic_block_end.
        (BLOCK_HEAD, BLOCK_END): Update.
        * caller-save.c: Change basic_block_head/end references to
        BLOCK_HEAD/END.
        * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
        * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
        * regmove.c, reload1.c, reorg.c, sched.c: Likewise.

From-SVN: r24622
1999-01-11 14:37:20 -08:00
Jeff Law
4283012f9f Copyright fixes.
From-SVN: r24535
1999-01-06 13:44:41 -07:00
Jeffrey A Law
941c63ac30 rtlanal.c (multiple_sets): New function.
* rtlanal.c (multiple_sets): New function.
        * rtl.h (multiple_sets): Declare it.
        * local-alloc.c (wipe_dead_reg): Use it.
        * global.c (global_conflicts): Likewise.
Should fix the m68k bootstrap problems.

From-SVN: r24283
1998-12-12 16:03:54 -07:00
Mark Mitchell
8d4c79be50 global.c (record_conflicts): Don't use an array of shorts to store an array of ints.
* global.c (record_conflicts): Don't use an array of shorts to
        store an array of ints.
	(global_conflicts): Likewise.

From-SVN: r24282
1998-12-12 22:12:02 +00:00
Kaveh R. Ghazi
e51712db0d Warning fixes:
* Makefile.in (sched.o): Depend on recog.h.
        * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
        (unsigned) when comparing against one.
        (find_base_value): Likewise.
        (record_base_value): Cast variable `regno' to (unsigned) when
        comparing against one.  Cast the result of REGNO() macro to
        (unsigned) when comparing against one.
        (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
        unsigned.
        (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
        variable where an unsigned index is needed.
        * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
        before comparing against one.
        * collect2.c: Add prototypes for functions `error', `fatal' and
        `fatal_perror'.  Make these functions take variable arguments
        instead of faking it with a fixed number of args.
        (write_c_file_stat): Cast the argument of ctype macro to (unsigned
        char).
        * combine.c (can_combine_p): Mark parameter `pred' with
        ATTRIBUTE_UNUSED.
        (find_split_point): Cast variable `src' to (unsigned
        HOST_WIDE_INT) when comparing against one.
        HOST_WIDE_INT) when comparing against one.
        (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
        (simplify_logical): Likewise.
        (force_to_mode): Cast result of INTVAL() macro to (unsigned
        HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
        HOST_WIDE_INT) in shift.
        (simplify_and_const_int): Cast result of INTVAL() macro to
        `unsigned HOST_WIDE_INT' when comparing against one.
        (merge_outer_ops): Cast variable const0 to `unsigned
        HOST_WIDE_INT' when comparing against the result of
        GET_MODE_MASK() macro.
        (simplify_comparison): Likewise for variable `c0'.  Cast variable
        `const_op' to `unsigned HOST_WIDE_INT' when comparing against
        one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
        result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
        against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
        result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
        comparing against one.
        (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
        config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
        macro to `unsigned HOST_WIDE_INT' when comparing against one.
        (output_block_move): Cast `sizeof' expression to (int) when
        comparing against one.
        (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
        against one.
        (save_restore_insns): Cast `base_offset' to `long' to match format
        specifier in fprintf.
        * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
        to `enum machine_mode'.
        * flow.c (life_analysis_1): Remove unused variable `insn'.
        * gcc.c (translate_options): Move variables `j' and `k' into the
        scope in which they are used.  Change their types to `size_t'.
        (set_spec): Cast the argument of ctype macro to `unsigned char'.
        (read_specs): Likewise.
        (process_command): Cast `sizeof' to (int) when comparing against one.
        (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
        (handle_braces): Cast both sides of `==' expression to `long' to
        ensure sign matching.
        (main): Cast variable `i' to `int' when comparing against one.
        * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
        int to size_t.  Cast variable `i' to size_t when comparing against
        one.
        * genattrtab.c (convert_set_attr_alternative): Remove unused
        parameter `insn_code'.  All callers changed.
        (convert_set_attr): Likewise.
        * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
        size_t when comparing against one.  Likewise for variable `len'.
        * global.c (global_alloc): Cast variable `max_regno' to size_t
        when comparing against one.  Likewise for variable `max_allocno'.
        * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
        * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
        `set' with ATTRIBUTE_UNUSED.
        (find_free_reg): Cast `sizeof' expression to (int) when comparing
        against one.
        * loop.c (count_loop_regs_set): Remove unused variable `dest'.
        (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
        (get_condition): Cast variable `const_val' to `unsigned
        HOST_WIDE_INT' when comparing against one.  Cast unsigned
        expression to HOST_WIDE_INT when comparing against one.
        (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
        (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
        `unsigned' when comparing against one.
        * protoize.c (is_id_char): Change type of parameter `ch' to
        unsigned char.
        (munge_compile_params): Cast argument of ctype macro to (const
        unsigned char).
        (process_aux_info_file): Cast variable `aux_info_size' to int when
        comparing against one.
        (forward_to_next_token_char): Cast argument of ctype macro to
        `const unsigned char'.
        (edit_formals_lists): Likewise.
        (find_rightmost_formals_list): Likewise.
        (add_local_decl): Likewise.
        (add_global_decls): Likewise.
        (edit_fn_definition): Likewise.
        (do_cleaning): Likewise.
        (scan_for_missed_items): Likewise.
        (edit_file): Cast variable `orig_size' to (int) when comparing
        against one.
        (main): Cast argument of ctype macro to `const unsigned char'.
        * recog.c (const_int_operand): Mark parameter `mode' with
        ATTRIBUTE_UNUSED.
        * regclass.c (record_reg_classes): Change type of variable `c' to
        `unsigned char'.  Cast `char' array index to `unsigned char'.
        * reload.c (push_secondary_reload): Cast argument to
        REG_CLASS_FROM_LETTER() macro to `unsigned char'.
        * reload1.c (calculate_needs): Cast `char' array index to
        `unsigned char'.
        (set_label_offsets): Change type of variable `i' to unsigned int.
        Cast result of XVECLEN() macro to unsigned when comparing against
        one.
        (mark_not_eliminable): Change type of variable `i' to unsigned.
        (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
        when comparing against one.
        (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
        comparing against one.
        (choose_reload_regs): Hide unused label `fail'.
        (reload_cse_simplify_operands): Cast `char' array index to
        `unsigned char'.
        (reload_combine_note_store): Mark parameter `set' with
        ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
        against one.
        (reload_cse_move2add): Remove unused variable `src2'.
        * sched.c: Include recog.h.
        (sched_note_set): Remove unused parameter `b'.  All callers
        changed.
        (split_hard_reg_notes): Likewise for parameter `orig_insn'.
        (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
        when comparing against one.
        * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
        ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
        comparing against one.
        * unroll.c (precondition_loop_p): Remove unused parameter
        `loop_end'.  All callers changed.

From-SVN: r23079
1998-10-14 09:02:55 +00:00
Jeffrey A Law
3663a3047f global.c (build_insn_chain): Verify no real insns exist past the end of the last basic block, then exit the loop.
* global.c (build_insn_chain): Verify no real insns exist past the
        end of the last basic block, then exit the loop.

From-SVN: r22961
1998-10-09 07:28:55 -06:00
Bernd Schmidt
a4c3ddd83a loop.c (count_one_set): New static function, broken out of count_loop_regs_set
* loop.c (count_one_set): New static function, broken out of
	count_loop_regs_set
	(count_loop_regs_set): Call it.
	* global.c (mark_reg_store): Handle clobbers here by not calling
	set_preference.
	(mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
	is in fact a clobber.
	* integrate.c (process_reg_param): New function, broken out of
	expand_inline_function.
	(expand_inline_function): Call it.

From-SVN: r22875
1998-10-06 14:38:40 -06:00
Bernd Schmidt
cad6f7d050 Makefile.in (stupid.o): Update dependencies.
* Makefile.in (stupid.o): Update dependencies.
	(global.o): Likewise.
	* global.c: Include reload.h
	(reg_becomes_live): New function.
	(reg_dies): New function.
	(build_insn_chain): New function.
	(global_alloc): Call build_insn_chain before calling reload.
	* reload.h (struct needs): New structure definition.
	(struct insn_chain): Likewise.
	(reload_insn_chain): Declare variable.
	(new_insn_chain): Declare function.
	* reload1.c (reload_startobj): New variable.
	(reload_insn_chain): New variable.
	(unused_insn_chains): New variable.
	(new_insn_chain): New function.
	(init_reload): Initialize reload_startobj, not reload_firstobj.
	(reload): Initialize reload_firstobj.
	Before returning, free everything on the reload_obstack.
	* stupid.c: Include insn-config.h, reload.h and basic-block.h.
	(reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
	current_chain): New variables.
	(reg_where_born): Delete variable.
	(REG_WHERE_BORN): New macro.
	(find_clobbered_regs): New function.
	(stupid_life_analysis): Don't allocate/free reg_where_born.
	Allocate and free reg_where_born_exact, reg_where_born_clobber,
	reg_where_dead_chain.
	Use REG_WHERE_BORN instead of reg_where_born.
	While processing the insns, build the reload_insn_chain with
	information about register lifetimes.
	(stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
	(stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
	changed.
	Compute and information about birth and death of pseudo registers in
	reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
	Delete code to set elements of reg_where_born.

From-SVN: r22862
1998-10-05 18:39:23 -06:00
Bernd Schmidt
34f89b5f68 global.c (global_alloc): Delete code to manage the scratch_list.
* 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
1998-10-02 04:21:20 -06:00
Michael Hayes
1e326708e8 regs.h (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
* regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
        * local-alloc.c (find_free_reg): Use it.
        * global.c (find_reg): Likewise.
        * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.

From-SVN: r22688
1998-09-30 12:09:47 -06:00
Bernd Schmidt
f15ebf657d global.c (reg_allocno): Now static.
* global.c (reg_allocno): Now static.
        * reload1.c (reg_allocno): Delete declaration.
        (order_regs_for_reload): Take no arguments.  Don't treat regs
        allocated by global differently than those allocated by local-alloc.

From-SVN: r22446
1998-09-15 18:31:22 -06:00
John Wehle
a300b8d994 global.c: Update comments.
* global.c: Update comments.
        (global_alloc): Assign allocation-numbers
        even for registers allocated by local_alloc in case
        they are later spilled and retry_global_alloc is called.
        (mark_reg_store, mark_reg_clobber,
        mark_reg_conflicts, mark_reg_death): Always record a
        conflict with a pseudo register even if it has been
        assigned to a hard register.
        (dump_conflicts): Don't list pseudo registers already assigned to
        a hard register as needing to be allocated, but do list their
        conflicts.
        * local-alloc.c: Update comment.

From-SVN: r22322
1998-09-07 18:29:35 -06:00
H.J. Lu
f6781658f5 global.c: Include machmode.h amd move hard-reg-set.h before rtl.h.
* global.c: Include machmode.h amd move hard-reg-set.h before
	rtl.h.

From-SVN: r20643
1998-06-21 13:54:56 -06:00
Graham Stott
2e107e9ea1 alias.c: Include toplev.h
* alias.c: Include toplev.h
        * caller-save.c: Include toplev.h
        * combine.c: Include toplev.h
        * flow.c Include toplev.h
        * global.c: Include toplev.h
        * jump.c: Include toplev.h
        * local-alloc.c: Include toplev.h
        * loop.c: Include toplev.h
        * regmove.c: Include toplev.h
        * stupid.c: Include toplev.h
        * unroll.c: Include toplev.h
        * Makefile.in: Add toplev.h dependencies.

From-SVN: r20623
1998-06-19 17:37:04 -06:00
Jeffrey A Law
ea8693a436 global.c (global_alloc): Don't pass HARD_CONST (0) to find_reg, just pass zero.
* global.c (global_alloc): Don't pass HARD_CONST (0) to find_reg,
        just pass zero.  That will work regardless of the size of HARD_REG_SET.

From-SVN: r19276
1998-04-17 19:02:04 -06:00
Bernd Schmidt
4d1d804584 basic-block.h (basic_block_computed_jump_target): Declare.
* basic-block.h (basic_block_computed_jump_target): Declare.
	* flags.h: (current_function_has_computed_jump): Declare.
	* flow.c: (basic_block_computed_jump_target): Define.
	(flow_analysis): Allocate it. Set current_function_has_computed_jump
	to 0.
	(find_basic_blocks): Set current_function_has_computed_jump and
	elements of basic_block_computed_jump_target to 1 as appropriate.
	* function.c: (current_function_has_computed_jump): Define.
	* global.c (global_conflicts): Don't allocate pseudos into stack regs
	at the start of a block that is reachable by a computed jump.
	* reg-stack.c (stack_reg_life_analysis): If must restart, do so
	immediately.
	(subst_stack_regs): Undo change from Sep 4 1997.
	(uses_reg_or_mem): Now unused, deleted.
	* stupid.c (stupid_life_analysis): Compute
	current_function_has_computed_jump.
	(stupid_find_reg): Don't allocate stack regs if the function has a
	computed goto.
        * haifa-sched.c (is_cfg_nonregular): Delete code to determine if
        the current function has a computed jump.  Use the global value
        instead.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r18860
1998-03-27 17:12:41 -07:00
Kaveh R. Ghazi
670ee92097 Major cutover to using system.h:
* Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o,
        c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o,
        caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o,
        dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o,
        expr.o, final.o, flow.o, function.o, getpwd.o, global.o,
        integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o,
        prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o,
        reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o,
        rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o,
        tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend
        on system.h.
        * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c,
        c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c,
        caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c,
        dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c,
        expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c,
        integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c,
        prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c,
        reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c,
        rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c,
        stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c,
        xcoffout.c: Include system.h.  Organize include ordering so
        that stdarg/varargs comes before other system headers.  Remove
        spurious casts of functions assured of a prototype in system.h.

From-SVN: r18726
1998-03-20 14:58:42 +00:00
Manfred Hollstein
f8344bea51 c-decl (finish_struct): Change type of min_align to unsigned.
a
gcc/ChangeLog:
	* c-decl (finish_struct): Change type of min_align to unsigned.
	* cplus-dem.c (demangle_function_name): Change type of variable i to size_t;
	remove unused variable len.
	* dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a
	comment indicating this is proper behaviour.
	(reg_loc_descriptor): Remove redundant comparison of unsigned variable
	reg >= 0.
	(based_loc_descr): Likewise.
	* enquire.c (bitpattern): Change type of variable i to unsigned.
	* final.c (output_asm_insn): Don't cast insn_noperands to unsigned.
	* flow.c (life_analysis): Change type of variable i to size_t;
	remove unused variable insn.
	* gcc.c (translate_options): Change type of variables optlen, arglen and
	complen to size_t.
	(input_filename_length): Change type to size_t.
	(do_spec_1): Change type of variable bufsize to size_t.
	(main): Change type of variables i and j to size_t;
 	remove subblock local definition of variable i.
	(lookup_compiler): Change type of second argument to size_t;
	change type of variable i to size_t.
	* genemit.c (output_init_mov_optab): Change type of variable i to size_t.
	* genopinit.c (get_insn): Change type of variable pindex to size_t.
	* genrecog.c (add_to_sequence): Change type of variable i to size_t.
	* global.c (global_alloc): Change type of variable i to size_t.
	* regclass.c (init_reg_sets): Change type of variables i and j to unsigned.
	* stmt.c (expand_end_bindings): Change type of variable i to size_t.
	(expand_end_case): Change type of variable count to size_t.
	* toplev.c (main): Change type of variable j to size_t.
	(set_target_switch): Change type of variable j to size_t.
	(print_switch_values): Change type of variable j to size_t;
	remove unused variable flags.
	* varasm.c (assemble_variable): Change type of variable align to size_t.
	(const_hash_rtx): Change type of variable i to size_t.
gcc/cp/ChangeLog:
Sun Mar  8 17:13:38 1998  Manfred Hollstein  <manfred@s-direktnet.de>
	* decl2.c (lang_decode_option): Change j's type to size_t.
	* tree.c (layout_vbasetypes): record_align and desired_align are of
	type unsigned int; const_size and nonvirtual_const_size likewise.

From-SVN: r18491
1998-03-12 00:02:52 +00:00
Robert Lipe
ccd043a956 c-common.c: Include <stdlib.h> and <string.h>/<strings.h>.
* c-common.c: Include <stdlib.h> and <string.h>/<strings.h>.
        * calls.c (expand_call): Remove unused variables funtree,
        n_regs, and tmpmode.
        * dbxout.c, except.c: Include <string.h>/<strings.h>.
        * explow.c: (plus_constant_for_output_wide) Removed unused
        variable all_constant.
        * c-decl.c, genattr.c, genattrtab.c, getconfig.c, genemit.c
        genextract.c, genflags.c, genopinit.c genoutput.c, genpeep.c,
        genrecog.c, global.c, integrate.c , stupid.c : Include
        <stdlib.h>.
        * genextract.c: (walk_rtx) Remove unused variable link.
        * genrecog.c: (concat) Remove unreferenced static function.
        * prefix.c: Include <string.h>/<strings.h>, <stdlib.h>
        * stmt.c: Include <stdlib.h>.
        (expand_asm_operands): Remove unused variable val1.
        (expand_return): Remove unused variable block.
        (pushcase): Remove unused variables l and n.
        (pushcaserange): Likewise.
        * unroll.c (unroll_loop): Remove unused variable temp.

From-SVN: r17766
1998-02-07 15:55:54 -07:00
Jeff Law
e9a25f70a0 Update mainline egcs to gcc2 snapshot 971021.
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Jeffrey A Law
8c316ae21c global.c (global_alloc): Free the conflict matrix after reload has finished.
* global.c (global_alloc): Free the conflict matrix after
        reload has finished.

From-SVN: r16249
1997-10-31 07:08:40 -07:00
Brendan Kehoe
ba3b38784c global.c (global_alloc): Use xmalloc instead of alloca for CONFLICTS...
* global.c (global_alloc): Use xmalloc instead of alloca for
	CONFLICTS, since max_allocno * allocno_row_words alone can be more
	than 2.5Mb sometimes.

From-SVN: r16223
1997-10-28 18:39:28 -05:00
Richard Kenner
1313ec9d8c (global_conflicts): Pass FIRST_PSEUDO_REGISTER to call to
EXECUTE_IF_SET_IN_REG_SET.

From-SVN: r14462
1997-07-16 14:31:36 -04:00
Michael Meissner
916b1701c2 abstract regset stuff into macros
From-SVN: r14147
1997-06-05 10:24:03 +00:00
Michael Meissner
b1f21e0aef Use accessor macros to access arrays based on regno; move many of the arrays into a single structure.
From-SVN: r14140
1997-05-30 18:19:19 +00:00
Richard Kenner
99fd40121f (prune_references): Add missing symmetic CONFLICTP call.
From-SVN: r13143
1996-11-12 16:15:19 -05:00
Richard Kenner
daa6f17d84 (allocno_compare): Use `const void *' arguments.
From-SVN: r13131
1996-11-12 14:03:37 -05:00
Richard Kenner
f7627ef46d (reg_allocno): No longer static.
From-SVN: r10931
1996-01-01 18:52:39 -05:00
Jeff Law
6cad67d2d0 hard-reg-set.h (losing_caller_save_reg_set): Declare.
* 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
1995-12-31 19:32:57 -07:00
Richard Kenner
a35311b035 Update FSF address.
From-SVN: r9961
1995-06-15 07:52:21 -04:00
Richard Kenner
0dfa4517b7 (global_alloc): Mark regs assigned to SCRATCH as used by more than
just local alloc.

From-SVN: r8091
1994-09-16 19:22:39 -04:00
Richard Kenner
d546b10a8e (find_reg) If CLASS_CANNOT_CHANGE_SIZE, avoid its registers if
reg_changes_size.

From-SVN: r7866
1994-08-07 08:52:03 -04:00
Jim Wilson
7a17c5881c (find_reg): Store divide results in temporary variables.
From-SVN: r7778
1994-07-18 19:02:32 -07:00
Richard Kenner
daf55ac69a (global_alloc): Make a more accurate attempt to see if the frame pointer will be used.
(global_alloc): Make a more accurate attempt to see if the frame pointer will
be used.
If it is, show HARD_FRAME_POINTER_REGNUM used if its not the same as
FRAME_POINTER_REGNUM.

From-SVN: r7604
1994-06-29 16:01:31 -04:00
Richard Kenner
4c9a05bc55 Cast pointer operands to bzero, bcopy, and bcmp to (char *).
From-SVN: r7472
1994-06-14 18:19:28 -04:00
Richard Kenner
17a0a76dd4 (find_reg): When looking for locally-allocated hard regs to reclaim,
use REG_ALLOC_ORDER to find least used.

From-SVN: r7210
1994-05-04 16:45:28 -04:00
Richard Kenner
82c68a7824 Add prototypes for static functions.
From-SVN: r7118
1994-04-21 15:31:56 -04:00
Richard Kenner
69887ad921 Remove previous Berg change.
From-SVN: r6998
1994-04-08 18:08:42 -04:00
Richard Kenner
22d656b074 (global_conflicts): Avoid #ifdef HARD_REG_SET.
From-SVN: r6975
1994-04-06 07:07:48 -04:00
Richard Kenner
2049526b76 (global_conflicts): Move decl of unused variable I into #if 0 block.
From-SVN: r6886
1994-03-25 14:14:10 -05:00
Richard Kenner
35b2eb0530 (allocno_compare): Give multi-word regs higher priority, as stated in
the comments.

From-SVN: r6650
1994-02-27 11:30:14 -05:00
Doug Evans
7b0957a710 global.c: (global_alloc): Make sure that it is always possible to eliminate...
* global.c: (global_alloc): Make sure that it is always possible to
eliminate FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM.

From-SVN: r5458
1993-09-24 19:45:44 +00:00
Richard Kenner
cfcf04a6ba (find_reg): Add comment about nonlocal labels.
From-SVN: r3284
1993-01-19 18:24:27 -05:00
Charles Hannum
b1ec3c9262 entered into RCS
From-SVN: r1472
1992-07-06 20:04:10 +00:00
Richard Stallman
ab40ad2b6a *** empty log message ***
From-SVN: r1231
1992-06-22 02:02:28 +00:00
Richard Stallman
6dc42e49d3 *** empty log message ***
From-SVN: r930
1992-05-07 06:41:23 +00:00
Richard Stallman
333e0f7d36 *** empty log message ***
From-SVN: r562
1992-03-22 03:36:46 +00:00
Richard Stallman
d45cf215ee *** empty log message ***
From-SVN: r472
1992-03-14 05:07:15 +00:00