Commit Graph

13338 Commits

Author SHA1 Message Date
Richard Kenner
1f027d54a1 (invariant_p, case REG): Pointers into frame are not invariants if
function has nonlocal gotos.

From-SVN: r13862
1997-04-13 08:15:13 -04:00
Doug Evans
51a96571d6 Delete some FIXMEs.
From-SVN: r13861
1997-04-11 21:14:47 +00:00
Doug Evans
efbbf34f32 Delete some FIXMEs.
From-SVN: r13860
1997-04-11 21:08:57 +00:00
Doug Evans
715af0cb5a Delete "FIXME".
From-SVN: r13859
1997-04-11 21:03:35 +00:00
Doug Evans
9fd54896c1 (REG_ALLOC_ORDER): Restore to original setting.
From-SVN: r13858
1997-04-11 20:52:56 +00:00
Doug Evans
4d6c607f2e m32r.h (UPPER16_P): Fix calculation.
* m32r/m32r.h (UPPER16_P): Fix calculation.
	* m32r/m32r.c (two_insn_const_operand): New function.
	(m32r_print_operand): Handle 'X'.
	* m32r/m32r.md (movsi): Tweak.
	(*movsi_insn): Output hex value of constants too.
	(movsi define_split): Add.
	(andsi3,orsi3,xorsi3): Output hex value of constants too.

From-SVN: r13857
1997-04-11 20:48:54 +00:00
Ian Lance Taylor
4e007b6eea Recognize OpenBSD systems correctly (from Niklas Hallqvist
<niklas@appli.se>)

From-SVN: r13849
1997-04-11 20:40:28 +00:00
Jim Wilson
8bca10f462 (sne): Modified to use negc instead of xor.
(sne+1): New define_split for new sne pattern.

From-SVN: r13848
1997-04-10 15:39:01 -07:00
Jim Wilson
f3cd53755b (output_stack_adjust): Reorganize code for readability.
If size is negative, negate and subtract it instead of adding it.

From-SVN: r13847
1997-04-09 15:44:46 -07:00
Joern Rennecke
20ec31d305 (output_stack_adjust): When splitting an adjustment into two parts,
make sure the stack is aligned at all times.

From-SVN: r13846
1997-04-09 18:50:38 +01:00
Jeff Law
74452ac323 mn10300.h (RETURN_ADDR_RTX): Define.
* mn10300.h (RETURN_ADDR_RTX): Define.

        * mn10300.c (count_tst_insns): New function.
        (expand_prologue): Load zero into data and/or address registers
        if any are free and the function has optimizable tst insns.
        (output_tst): If a suitable register is known to have the
        value zero, use it instead of searching for a suitable register.
        * mn10300.h (zero_dreg, zero_areg): Declare.
        (FRAME_POINTER_NEEDED): Frame pointers are not needed if the
        outgoing argument size is zero.
        * mn10300.md (movXX): Optimize loading zero i        register if possible.  Optimize loading a DF/DI mode value
        into an address register from a constant memory address.
        (addsi3): Provide alternative which doesn't require a matching
        inout operand.
        (return): Optimize consecutive return instructions.

From-SVN: r13845
1997-04-08 12:41:49 -06:00
Doug Evans
90e6057ba5 Add m32r support.
From-SVN: r13844
1997-04-07 22:31:52 +00:00
Joern Rennecke
c9db96cea0 (SUBTARGET_CC1_SPEC): Define.
(CC1_SPEC): Add subtarget_cc1_spec.
(EXTRA_SPECS): Add subtarget_cc1_spec.

From-SVN: r13843
1997-04-07 22:29:09 +01:00
Joern Rennecke
c0420911bd (SUBTARGET_CC1_SPEC): Define.
(STARTFILE_SPEC, LINK_SPEC): Support -static.

From-SVN: r13842
1997-04-07 22:29:09 +01:00
Joern Rennecke
13a61c299d (SUBTARGET_CC1_SPEC): Define.
(LINK_SPEC, STARTFILE_SPEC): Support -static.

From-SVN: r13841
1997-04-07 22:29:09 +01:00
Richard Earnshaw
f54fd62edc (incscc): Use a match_operand with cc_register to match the condition code register.
(incscc): Use a match_operand with cc_register to match
the condition code register.
(decscc, *condbranch, *condbranch_reversed, *mov_scc): Likewise.
(*mov_negscc, *mov_notscc, *cond_return): Likewise.
(*cond_return_inverted, *ior_scc, *cond_move): Likewise.
(insv): New expand.
(andsi_notsi_si): Renamed from *andsi_notsi_si.
(andsi_not_shiftsi_si): New insn.
(*minmax_arithsi): Don't match this insn if operand1 is an
eliminable register.
({sin,cos}*): Delete, since the ARM always emulates these its
faster to call a library function.
(movsicc, *movsicc_insn): Make operand0 an s_register_operand,
and operand3 an arm_not_operand.  Use cc_register to match the
condition code register.
(mov[sd]fcc*): Make operand[0,2] s_register_operands, and operand3
the nonmemory_operand.  Use cc_register to match the condition
code register.
(*ifcompare_plus_move): Move before *ifcompare_arith_move.  Just do
a split for the output.
(*ifcompare_move_plus): Similarly, but relative
to *ifcompare_move_arith.
(*if_plus_move, *if_move_plus): New patterns.
(*ifcompare_arith_arith): Simplify the alternatives down to just one,
and split the insn before output.
(*if_arith_arith, *if_arith_move, *if_move_arith): New patterns.
(*ifcompare_move_not, *ifcompare_not_move): Simplify and split the
insn before output.
(*if_move_not, *if_not_move): New patterns.
(*ifcompare_shift_move, *ifcompare_move_shift): Simplify and split the
insn before output.
(*if_shift_move, *if_move_shift): New patterns.
(*ifcompare_shift_shift): Simplify and split the insn before output.
(*if_shift_shift): New pattern.
(*ifcompare_not_arith, *ifcompare_arith_not): Simplify and split the
insn before output.
(*if_not_arith, *if_arith_not): New patterns.
(*ifcompare_neg_move, *ifcompare_move_neg): Simplify and split the
insn before output.
(*if_neg_move, *if_move_neg): New patterns..

From-SVN: r13840
1997-04-06 16:24:02 +00:00
Michael Meissner
1b30b9cf1d Fix adddi3 problem from wilson; make sol-ci.asm assemble with new gas
From-SVN: r13839
1997-04-06 01:51:07 +00:00
Jim Wilson
8bb196585a (no_conflict_p): Reject sequences with foreign insns.
From-SVN: r13838
1997-04-03 15:08:40 -08:00
Jeff Law
3dbc43d13a mn10300.c (can_use_return_insn): Add size of fixed stack space for function calls into the size of the frame.
* mn10300.c (can_use_return_insn): Add size of fixed stack space
        for function calls into the size of the frame.  */
        (expand_prologue, expand_epilogue): Likewise.
        (initial_offset): Corresponding changes..
        * mn10300.h (OUTGOING_REG_PARM_STACK_SPACE): No longer define.
        (STACK_POINTER_OFFSET): Define.
        * mn10300.md (call, call_value expanders): Don't adjust the stack
        pointer here anymore.

        * mn10300.md (ashlsi3): Remove some alternatives which are no longer
        needed or desired.

From-SVN: r13837
1997-04-03 15:20:18 -07:00
Jim Wilson
24e46fc402 (move_deaths): Handle partial REG_DEAD note for
multi-reg hard register.

From-SVN: r13836
1997-04-03 12:34:07 -08:00
Jim Wilson
7b05e28661 (expand_function_start): Emit queue after expanding
each dynamic parameter type.

From-SVN: r13835
1997-04-03 12:26:33 -08:00
Jim Wilson
27c38b75d3 (mips_move_2words): Add SIGN_EXTEND support for SYMBOL_REF,
LABEL_REF, and CONST operands.

From-SVN: r13834
1997-04-03 12:18:13 -08:00
Jim Wilson
714aa06f90 Delete comment referring to README.DWARF.
From-SVN: r13833
1997-04-03 12:04:23 -08:00
Michael Meissner
7093ddee37 Fixes from wilson
From-SVN: r13832
1997-04-02 22:26:01 +00:00
Mike Stump
bd6dd8453c 90th Cygnus<->FSF quick merge
From-SVN: r13831
1997-04-02 03:58:33 +00:00
Mike Stump
70e06f23df libgcc2.c (find_exception_table): Fix to logic to deal with functions that are in their own section...
* libgcc2.c (find_exception_table): Fix to logic to deal with
 	functions that are in their own section, such as template
 	instantiations, that cause overlapping EH tables.

From-SVN: r13830
1997-04-02 03:31:36 +00:00
Jeff Law
ebf0d02544 * Makefile.in (USER_H): Add va-mn10300.h
From-SVN: r13829
1997-04-01 20:07:22 -07:00
Jeff Law
4bc0cb117e Initial revision
From-SVN: r13828
1997-04-01 18:34:17 -07:00
Jeff Law
22ef4e9b59 stdarg.h: Include va-mn10300.h.
* ginclude/stdarg.h: Include va-mn10300.h.
        * ginclude/varargs.h: Likewise.
        * ginclude/va-mn10300.h: New file.
        * mn10300/mn10300.c (expand_prologue): If current_function_varargs is
        nonzero, then flush d0/d1 back into the stack.
        (mn10300_builtin_saveregs): New function.
        (function_arg, function_arg_partial_nregs): New functions.
        (initial_offset): Tweak now that the RP save area is allocated
        and deallocated around each call again.
        * mn10300/mn10300.h (FIRST_PARM_OFFSET): Now 4.
        (FRAME_POINTER_REQUIRED): Require a frame pointer for all non-leaf
        functions.
        (REG_PARM_STACK_SPACE): Now 8 bytes.
        (FUNCTION_ARG_REGNO_P): Update for new parameter passing conventions.
        (CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Likewise.
        (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise.
        (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
        (TRAMPOLINE_TEMPLATE): Don't clobber d0 anymore.
        (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
        (EXPAND_BUILTIN_SAVEREGS): Define.
        * mn10300/mn10300.md (call, call_value patterns): Allocate and
        deallocate a stack slot for the return pointer around each call.

        * mn10300/mn10300.h (RTX_COSTS): Refine.
        (CASE_VALUES_THRESHHOLD, NO_FUNCTION_CSE): Likewise.
        * mn10300/mn10300.c (output_tst): New function.
        * mn10300/mn10300.md (movdi, movdf): Improve code to load constants
        into registers.
        (tst insns): Use output_tst to optimize some cases.  Add versions to
        encourage more zero extensions instead of sign extensions of HImode
        and QImode values.
        (divsi3, udivsi3): Remove patterns.  Replaced by...
        (divmodsi4, udivmodsi4): New expanders/patterns.
        (andsi3): Optimize "and" operations with certain constants.

From-SVN: r13827
1997-04-01 18:33:45 -07:00
Jeff Law
e8adce1747 Remove some out of date comments.
From-SVN: r13826
1997-04-01 10:00:31 -07:00
Joern Rennecke
a62de84f08 (ADJUST_COSTS): Define.
From-SVN: r13825
1997-04-01 15:13:57 +01:00
Doug Evans
86144b75fe Initial revision
From-SVN: r13824
1997-03-28 22:43:13 +00:00
Doug Evans
0d332addc1 toplev.c (branch_prob_dump, [...]): New variables.
* toplev.c (branch_prob_dump, profile_arc_flag, flag_test_coverage,
	flag_branch_probabilities, branch_prob_dump_file, branch_prob_time):
	New variables.
	(f_options): Add profile-arcs, test-coverage, and
	branch-probabilities.
	(compile_file): Set branch_prob_time.  Pass flag_test_coverage to
	init_emit_once.  Handle branch_prob_dump.  Call init_branch_prob.
	Call end_branch_prob. Call output_func_start_profiler.
	(rest_of_compilation): Handle branch_prob_dump.  Call new
	branch_prob pass.
	(main): Set branch_prob_dump.

From-SVN: r13823
1997-03-28 22:40:07 +00:00
Doug Evans
740a5d9232 sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB notes.
* sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB
	notes.

From-SVN: r13822
1997-03-28 22:39:39 +00:00
Doug Evans
f6e3c1bb7e rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER.
* rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER.
	(reg_note_name): Add REG_BR_PROB and REG_EXEC_COUNT.

From-SVN: r13821
1997-03-28 22:39:20 +00:00
Doug Evans
7ae21caf59 rtl.h (enum reg_note): Add REG_BR_PROB and REG_EXEC_COUNT.
* rtl.h (enum reg_note): Add REG_BR_PROB and REG_EXEC_COUNT.
	(REG_BR_PROB_BASE): Define.
	(NOTE_REPEATED_LINE_NUMBER): Define.

From-SVN: r13820
1997-03-28 22:39:00 +00:00
Doug Evans
a6c383b0d8 reorg.c (mostly_true_jump): Use REG_BR_PROB notes when flag_branch_probabilities.
* reorg.c (mostly_true_jump): Use REG_BR_PROB notes when
	flag_branch_probabilities.

From-SVN: r13819
1997-03-28 22:38:24 +00:00
Doug Evans
65f7a65344 * libgcc2.c (__bb_exit_func): Support gcov style output.
From-SVN: r13818
1997-03-28 22:38:07 +00:00
Doug Evans
f6a6a1b37d jump.c (jump_optimize, [...]): Disable some optimizations when flag_test_coverage and there is a line number...
* jump.c (jump_optimize, follow_jumps, mark_jump_label): Disable some
 	optimizations when flag_test_coverage and there is a line number note
 	in the way.
	(invert_jump): Add REG_BR_PROB when flag_branch_probabililties.

From-SVN: r13817
1997-03-28 22:37:37 +00:00
Doug Evans
9b53bc830d integrate.c (expand_inline_function): Output NOTE_REPEATED_LINE_NUMBER after inlined call.
* integrate.c (expand_inline_function): Output
	NOTE_REPEATED_LINE_NUMBER after inlined call.

From-SVN: r13816
1997-03-28 22:36:53 +00:00
Doug Evans
82e415a358 function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER for last line of function.
* function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER
	for last line of function.

From-SVN: r13815
1997-03-28 22:36:31 +00:00
Doug Evans
a7dbb8b439 flags.h (profile_arc_flag, [...]): Declare.
* flags.h (profile_arc_flag, flag_test_coverage,
	flag_branch_probabilities): Declare.

From-SVN: r13814
1997-03-28 22:36:13 +00:00
Doug Evans
9e2f9a7f6a final.c (LONG_TYPE_SIZE): Define.
* final.c (LONG_TYPE_SIZE): Define.
	(count_instrumented_arcs): New variable.
	(end_final, profile_after_prologue, leaf_function_p): Add support
	for profile_arc_flag.
	(add_bb): Only call CC_STATUS_INIT if HAVE_cc0.

From-SVN: r13813
1997-03-28 22:35:56 +00:00
Doug Evans
3a95cde868 * sparc.h (OVERRIDE_OPTIONS): Check profile_arc_flag.
From-SVN: r13812
1997-03-28 22:35:28 +00:00
Doug Evans
c9903b4462 combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT REG_NOTES.
* combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT
	REG_NOTES.

From-SVN: r13811
1997-03-28 22:34:53 +00:00
Doug Evans
59a64126f8 Makefile.in (LANGUAGES): Add gcov.
* Makefile.in (LANGUAGES): Add gcov.
	(OBJS): Add profile.o.
	(STAGESTUFF): Add gcov.
	(profile.o, gcov.o, gcov): Add rules to build them.
	(cpp.info, gcc.info, gcc.dvi): Add gcov.texi.
	(install-common): Install gcov.

From-SVN: r13810
1997-03-28 22:34:21 +00:00
Doug Evans
2be7973ec1 entered into RCS
From-SVN: r13809
1997-03-28 22:32:02 +00:00
Stan Cox
3bc97c5616 (zero_extendhisi2+[12]): use true_regnum instead of REGN
From-SVN: r13808
1997-03-27 22:23:58 +00:00
Stan Cox
d5c65c96b8 (CPP_CPU_DEFAULT): Define if TARGET_CPU_DEFAULT is not set.
From-SVN: r13807
1997-03-27 22:17:33 +00:00
Paul Eggert
6e2724034c Formerly cpp.texi.~29~
From-SVN: r13806
1997-03-26 20:35:20 +00:00