Commit Graph

28416 Commits

Author SHA1 Message Date
Zack Weinberg ea4a453b89 cpplib.h (cpp_reader): Remove if_stack.
* cpplib.h (cpp_reader): Remove if_stack.  Change
	potential_control_macro to a cpp_hashnode *.  Add skipping flag.
	* cpphash.h (struct ihash): Change control_macro to a
	cpp_hashnode * and shorten name to cmacro.
	Add NEVER_REINCLUDE constant.

	* cppfiles.c (redundant_include_p): Drop cpp_reader argument.
	Examine the cmacro node directly, no need to call cpp_defined.
	(_cpp_execute_include, read_include_file): Set cmacro to
	NEVER_REINCLUDE, not U"".
	* cpplex.c (cpp_push_buffer): Don't set new->if_stack.
	(cpp_get_token): If pfile->skipping is true, discard text and
	keep scanning until we hit a directive; don't expand macros.

	* cpplib.c (struct if_stack): Remove if_succeeded, add
	was_skipping. Change control_macro to a cpp_hashnode * and
	shorten name to cmacro.  Remove typedef IF_STACK.
	(parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
	(conditional_skip, skip_if_group,
	consider_directive_while_skipping): Delete.
	(push_conditional): New.
	(_cpp_handle_directive): Don't process directives other than
	conditionals if we are skipping.

	(do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
	Update to new scheme.
	(validate_else): Skip rest of line here, unconditionally.
	(_cpp_unwind_if_stack): The stack is per-buffer.  Force
	pfile->skipping off.

	(all): Remove `scare quotes' from error messages.

	* gcc.dg/cpp-mi.c: Add another case, cpp-mix.h, where the
	guard macro is already defined when the header is first
	included.
	* gcc.dg/cpp-mix.h: New file.
	* gcc.dg/endif-label.c: Update patterns to match compiler.

	* g++.brendan/complex1.C: Declare abort.
	* g++.law/refs4.C: Remove XFAIL.
	* g++.oliva/expr2.C: Declare abort and exit.

From-SVN: r34253
2000-05-29 16:19:32 +00:00
Mark Mitchell 1b50716d21 cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
* cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro.
	* class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not
	CLASSTYPE_ALIGN.

From-SVN: r34252
2000-05-29 15:35:06 +00:00
Richard Henderson 86c8265412 function.c (emit_return_into_block): New line_note arg; emit it.
* function.c (emit_return_into_block): New line_note arg; emit it.
        (thread_prologue_and_epilogue_insns): Attempt to locate a line note
        for the close brace to accompany HAVE_return.  Move all line notes
        following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.

From-SVN: r34251
2000-05-29 01:18:30 -07:00
Richard Henderson 8f4773eae7 longlong.h [__alpha] (count_leading_zeros): New.
* longlong.h [__alpha] (count_leading_zeros): New.
        (count_trailing_zeros): New.
        (COUNT_LEADING_ZEROS_0): New.

        * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
        (alpha_split_conditional_move): New.
        * config/alpha/alpha-protos.h: Prototype them.
        * config/alpha/alpha.h (PREDICATE_CODES): Update.
        (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
        * config/alpha/alpha.md: Update ffs cix commentary.
        (*ze_and_ne): New.
        (*nabssf2, *nabsdf2): New.
        (*mov[qhsd]icc_internal): Use add_operand.
        (if_then_else constant splitters): New.
        (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
        (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.

From-SVN: r34250
2000-05-29 00:52:26 -07:00
Jeff Law e2c7a29e97 Daily bump.
From-SVN: r34249
2000-05-29 01:45:08 -06:00
Richard Henderson d41638e4c5 combine.c (force_to_mode): Convert subtraction from a constant to NEG or NOT when conditions allow.
* combine.c (force_to_mode) [MINUS]: Convert subtraction from
        a constant to NEG or NOT when conditions allow.

From-SVN: r34248
2000-05-29 00:40:51 -07:00
Richard Henderson 085f17143f combine.c (combine_simplify_rtx): Don't create an if_then_else unless both args are general_operand.
* combine.c (combine_simplify_rtx): Don't create an if_then_else
        unless both args are general_operand.  Don't canonicalize plus
        to ior unless it helps.

From-SVN: r34247
2000-05-29 00:29:13 -07:00
Richard Henderson 7b40bc6bda toplev.c (rest_of_compilation): Set no_new_pseudos after flow1; instead track register_life_up_to_date.
* toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
        instead track register_life_up_to_date.  Toggle no_new_pseudos
        around if_convert.

From-SVN: r34246
2000-05-29 00:09:53 -07:00
Bryce McKinlay f192590a79 re GNATS gcj/242 (Compiler generates call to wrong method from inner class)
2000-05-29  Bryce McKinlay  <bryce@albatross.co.nz>

	* libjava.lang/PR242.java: New file. PR gcj/242.

From-SVN: r34245
2000-05-29 06:26:14 +01:00
Geoff Keating 37c67319e1 rs6000.c (output_cbranch): Escape '%' characters so output_operand doesn't see them.
* config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
so output_operand doesn't see them.

From-SVN: r34244
2000-05-29 05:18:03 +00:00
Clinton Popetz 1270c25504 lcm.c (make_preds_opaque): Fix comment.
* lcm.c (make_preds_opaque): Fix comment.
	(optimize_mode_switching): Use NORMAL_MODE instead of
	MODE_USES_IN_EXIT_BLOCK.  Change leftover instance of
	FP_MODE_NONE to no_mode.  Rename MODE_AT_ENTRY to NORMAL_MODE.
	Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
	* tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
	(MODE_USES_IN_EXIT_BLOCK): Delete.
	(MODE_AT_ENTRY) Rename to NORMAL_MODE.
	* sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
	(MODE_AT_ENTRY): Rename to NORMAL_MODE.
	(MODE_NEEDED): Don't look for USE.
	(EPILOGUE_USES): Define.

From-SVN: r34243
2000-05-28 19:40:20 -04:00
Alexandre Oliva bb078eb403 * gcc.c-torture/execute/20000528-1.c: New test.
From-SVN: r34242
2000-05-28 23:31:55 +00:00
Philippe De Muyter d7bfe26780 * mklibgcc.in (all): Variable initialised to `libgcc'.
From-SVN: r34241
2000-05-28 21:52:37 +00:00
Gabriel Dos Reis 6f5ef761df toplev.h (skip_leading_substring): New macro.
2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>

        * toplev.h (skip_leading_substring): New macro.
        * toplev.c (decode_f_option): Use skip_leading_substring instead
        of strncmp.
        (decode_W_option): Likewise.

cp/

2000-05-28  Gabriel Dos Reis  <gdr@codesourcery.com>

        * decl2.c (lang_decode_option): Use skip_leading_substring instead
        of plain strncmp.

From-SVN: r34240
2000-05-28 21:22:12 +00:00
Nick Clifton 055177dc83 Docuement that CONSITIONAL_REGISTER_USAGE can modify reg_names.
From-SVN: r34239
2000-05-28 21:08:51 +00:00
Richard Henderson 9ef07cf1d4 regclass.c (record_operand_costs): Protect reg_changes_size with CLASS_CANNOT_CHANGE_SIZE.
* regclass.c (record_operand_costs): Protect reg_changes_size
        with CLASS_CANNOT_CHANGE_SIZE.

From-SVN: r34238
2000-05-28 13:39:51 -07:00
Richard Henderson f83ed23817 * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
From-SVN: r34237
2000-05-28 13:01:28 -07:00
Alexandre Oliva 97b0694adc Remove duplicate name and extraneous blank line
From-SVN: r34236
2000-05-28 17:36:14 +00:00
Alexandre Oliva 5ac707b8d5 refs4.C: Mark as XFAIL.
* g++.old-deja/g++.law/refs4.C: Mark as XFAIL.
* g++.old-deja/g++.law/temps4.C: Likewise.

From-SVN: r34235
2000-05-28 17:35:16 +00:00
Alexandre Oliva 7fcc15aa32 * expr2.C: New test.
From-SVN: r34234
2000-05-28 14:20:27 +00:00
Alexandre Oliva e801c5c267 code-gen4.C: Include stdio.h and stdlib.h.
* g++.old-deja/g++.brendan/code-gen4.C: Include stdio.h and
stdlib.h.  Call abort() on failure.
* g++.old-deja/g++.law/refs4.C: Likewise.
* g++.old-deja/g++.law/temps4.C: Likewise.
* g++.old-deja/g++.brendan/complex1.C: Don't assume argc is 1.
* gcc.c-torture/execute/20000112-1.c: Include string.h.

From-SVN: r34233
2000-05-28 13:42:47 +00:00
Alexandre Oliva 9193780a0e operators.def (<?): Duplicated, should have been...
* operators.def (<?): Duplicated, should have been...
(>?): this.  Fixed.

From-SVN: r34232
2000-05-28 13:24:58 +00:00
Toon Moene 6c2a6a8514 bugs.texi: Note that debugging information for common block items is emitted now.
2000-05-28  Toon Moene  <toon@moene.indiv.nluug.nl>

	* bugs.texi: Note that debugging information for
	common block items is emitted now.
	* news.texi: Ditto.

From-SVN: r34231
2000-05-28 12:34:53 +00:00
Richard Henderson 5828d72574 function.c (diddle_return_value): A pcc-style struct return returns a pointer.
* function.c (diddle_return_value): A pcc-style struct return
        returns a pointer.

From-SVN: r34230
2000-05-28 05:31:40 -07:00
Jeff Law 6745c1b9dd Daily bump.
From-SVN: r34229
2000-05-28 01:45:07 -06:00
Zack Weinberg f8f769ea4e cppfiles.c: Read files in, using mmap if possible, then prescan them separately.
* cppfiles.c: Read files in, using mmap if possible, then
	prescan them separately.
	(read_file, read_with_read): New functions.
	* cpplex.c: Don't define UCHAR_MAX.
	(_cpp_read_and_prescan): Rename to _cpp_prescan.  Don't read
	the file here.

	* cppinit.c (handle_option): Automatically define __cplusplus,
	__OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
	the respective -lang switch.

	* cpphash.h (enum node_type, struct hashnode, _cpp_lookup
	prototype): Move to...
	* cpplib.h: ... here.  Rename struct hashnode to struct
	cpp_hashnode and give it a typedef.  Rename _cpp_lookup to
	cpp_lookup.  Add 'fe_value' slot, a union tree_node *.

From-SVN: r34228
2000-05-28 05:56:38 +00:00
Geoff Keating e79f71f73d rs6000.md (movsi): Constify 'name'.
* config/rs6000/rs6000.md (movsi): Constify 'name'.

* regclass.c [CLASS_CANNOT_CHANGE_SIZE]
(class_can_change_size): New variable.
(reg_changes_size): New variable.
(init_reg_sets_1): Initialise class_can_change_size.
(record_operand_costs): Remove subreg_changes_size.
Don't pass it around.  Instead update reg_changes_size.
(regclass): Initialise and free reg_changes_size.  If a register
changes size, don't preference it to a class that contains
registers that can't change size.
(record_reg_classes): Don't look at subreg_changes_size.

From-SVN: r34227
2000-05-28 05:51:16 +00:00
Zack Weinberg d2b51b106a Relative to g++.dg/special:
* conpr-1.C, conpr-2.C, conpr-3.C: Include stdlib.h.

	Relative to g++.old-deja:
	* g++.brendan/complex1.C, g++.jason/optimize2.C,
	g++.mike/p9732b.C, g++.other/addrof1.C, g++.other/dyncast5.C,
	g++.other/init5.C, g++.other/init7.C, g++.other/union2.C,
	g++.pt/vbase1.C, g++.robertl/eb14.C, g++.robertl/eh990323-1.C,
	g++.robertl/eh990323-2.C, g++.robertl/eh990323-3.C,
	g++.robertl/eh990323-4.C, g++.robertl/eh990323-5.C,
	g++.robertl/ice990323-2.C: Prototype exit and/or abort.

	* g++.brendan/nest21.C, g++.eh/rethrow3.C, g++.jason/init3.C,
	g++.law/arm15.C, g++.law/cvt2.C, g++.law/visibility17.C,
	g++.mike/eh23.C, g++.mike/eh25.C, g++.mike/eh34.C,
	g++.mike/eh48.C, g++.mike/eh55.C, g++.mike/p2736.C,
	g++.oliva/new1.C, g++.other/align.C, g++.robertl/eb39.C,
	g++.robertl/eb54.C, g++.robertl/eb63.C: Include stdlib.h
	and/or string.h.

	* g++.other/goto1.C: Update expectations for error messages.

From-SVN: r34226
2000-05-28 05:38:02 +00:00
Richard Henderson e087aeb2b9 print-rtl.c (reg_names): Remove const.
* print-rtl.c (reg_names): Remove const.
        * regclass.c (reg_names): Likewise.
        * regs.h (reg_names): Likewise.
        * hard-reg-set.h (reg_names): Likewise.

From-SVN: r34225
2000-05-27 20:24:57 -07:00
Richard Henderson 7d70b8b2f7 * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
From-SVN: r34224
2000-05-27 19:59:35 -07:00
Alex Samuel 596ea4e574 cp-tree.h (ansi_opname): Make it a macro.
2000-05-27  Alex Samuel    <samuel@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (ansi_opname): Make it a macro.
	(ansi_assopname): Likewise.
	(struct lang_decl_flags): Add assignment_operator_p.
	(struct lang_decl): Add operator_code.
	(DECL_VTT_PARM): Adjust.
	(DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an
	overloaded operator.
	(SET_OVERLOADED_OPERATOR_CODE): New macro.
	(DECL_ASSIGNMENT_OPERATOR_P): New macro.
	(DECL_ARRAY_DELETE_OPERATOR_P): Adjust.
	(opname_tab): Remove.
	(assignop_tab): Likewise.
	(operator_name_info_t): New type.
	(operator_name_info): New variable.
	(assignment_operator_name_info): Likewise.
	(build_cp_library_fn): Remove declaration.
	(push_cp_library_fn): Likewise.
	(operator_name_string): Likewise.
	(build_decl_overload): Likewise.
	* call.c (print_z_candidates): Simplify.
	(build_object_call): Adjust usage of ansi_opname.  Use
	DECL_OVERLOADED_OPERATOR_P.
	(op_error): Adjust operator name lookup.
	(build_conditional_expr): Adjust usage of ansi_opname.
	(build_new_op): Likewise.
	(build_op_delete_call): Likewise.
	(build_over_call): Likewise.
	(joust): Use DECL_OVERLOADED_OPERATOR_P.
	* decl.c (duplicate_decls): Copy operator_code.
	(init_decl_processing): Adjust parameters to push_cp_library_fn.
	(builtin_function): Adjust parameters to build_library_fn_1.
	(build_library_fn_1): Accept an overloaded operator code.
	(build_library_fn): Pass ERROR_MARK.
	(build_cp_library_fn): Accept an overloaded operator code.
	(push_cp_library_fn): Likewise.
	(grokfndecl): Tweak.
	(grokdeclarator): Simplify code to compute names of overloaded
	operators.  Adjust use of ansi_opname.
	(ambi_op_p): Work on tree_codes, not identifiers.
	(unary_op_p): Likewise.
	(grok_op_properties): Likewise.
	(start_function): Use DECL_OVERLOADED_OPERATOR_P.
	(lang_mark_tree): Don't try to mark the operator_code.
	* decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P.
	* error.c (dump_decl): Remove special handling for operator
	names.
	(dump_function_name): Likewise.
	(dump_expr): Adjust name lookup of operators.
	(op_to_string): Simplify.
	(assop_to_string): Likewise.
	* init.c (build_new_1): Adjust use of ansi_opname.
	* lex.c (opname_tab): Remove.
	(assignop_tab): Likewise.
	(ansi_opname): Likewise.
	(ansi_assopname): Likewise.
	(operator_name_string): Likewise.
	(reinit_lang_specific): Likewise.
	(operator_name_info): New variable.
	(assignment_operator_name_info): Likewise.
	(init_operators): New function.
	(init_parse): Use it.
	(do_identifier): Adjust use of ansi_opname.
	* method.c (mangle_expression): Don't use ansi_opname for
	mangling.
	(build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P.
	(build_decl_overload): Remove.
	(build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly.
	(do_build_assign_ref): Adjust use of ansi_opname.
	(synthesize_method): Likewise.
	(implicitly_declare_fn): Likewise.
	* operators.def: New file.
	* parse.y (operator): Adjust use of ansi_opname.
	* pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P.
	(set_mangled_name_for_template_decl): Don't play games with
	current_namespace.
	(special_function_p): Adjust use of ansi_opname.
	* typeck.c (check_return_expr): Likewise.
	* Make-lang.in (cc1plus): Depend on operators.def.
	* Makefile.in (lex.o): Likewise.
	(decl.o): Likewise.

Co-Authored-By: Mark Mitchell <mark@codesourcery.com>

From-SVN: r34223
2000-05-28 02:58:19 +00:00
Richard Henderson 4f1c5cce90 alpha.c (alpha_does_function_need_gp): Test TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
* config/alpha/alpha.c (alpha_does_function_need_gp): Test
        TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
        (alpha_expand_prologue): Emit prologue_mcount if needed.
        * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
        * config/alpha/alpha.md (prologue_mcount): New.
        * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
        (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
        * config/alpha/netbsd.h: Likewise.

From-SVN: r34222
2000-05-27 19:25:46 -07:00
Richard Henderson a1920fc3d7 elf.h (SELECT_SECTION): Mirror Kenner's May 19 change to config/elfos.h.
* config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
        change to config/elfos.h.

From-SVN: r34221
2000-05-27 19:21:54 -07:00
Richard Henderson a82c7f05c4 alpha-protos.h (alpha_arg_info_reg_val): Protect with RTX_CODE.
* config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
        with RTX_CODE.
        (alpha_write_linkage): Protect with BUFSIZ.
        (alpha_need_linkage): Update prototype.
        * config/alpha/alpha.c (function_arg): Move VMS code here.
        (alpha_links_base): Remove.
        (alpha_links): New.
        (mark_alpha_links_node, mark_alpha_links): New.
        (alpha_write_one_linkage): New.
        (alpha_need_linkage): Use a splay tree.  Build the linkage symbol.
        (alpha_write_linkage): Use splay_tree_foreach.
        * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
        to get the linkage symbol.
        (call_value_vms): Likewise.
        * config/alpha/elf.h (output_file_directive): Remove decl.
        (ctors_section, dtors_section): Prototype.
        (sbss_section, sdata_section): Prototype.
        * config/alpha/vms.h (FUNCTION_ARG): Remove.
        (readonly_section, link_section, literals_section): Prototype.
        (ctors_section, dtors_section): Prototype.
        (vms_valid_decl_attribute_p): Remove decl.
        (alpha_arg_type, alpha_arg_info_reg_val): Likewise.

From-SVN: r34220
2000-05-27 19:18:27 -07:00
Richard Henderson d80eb1e167 Makefile.in (resource.o): Depend on except.h.
* Makefile.in (resource.o): Depend on except.h.
        * except.h (output_exception_table_data): Prototype.
        * genconfig.c (gen_peephole2): Prototype.
        * genemit.c (main): Include ggc.h.
        * genoutput.c: Revert parts of last change: include errors.h
        (main): Set progname.
        * recog.c: Include hard-reg-set.h before recog.h.
        * resource.c: Include except.h.

From-SVN: r34219
2000-05-27 19:17:59 -07:00
Geoff Keating 4f9e07666b * reload.c (get_secondary_mem): Don't widen floating-point modes.
From-SVN: r34218
2000-05-28 01:07:18 +00:00
Geoff Keating ed8afe3ab0 combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when substituting the REG in a (subreg:X (reg:Y...
* combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
substituting the REG in a (subreg:X (reg:Y ...)).

From-SVN: r34217
2000-05-28 01:06:11 +00:00
Neil Booth f624ffa71f cpplex.c (_cpp_lex_line): Merge vertical space.
* cpplex.c (_cpp_lex_line): Merge vertical space.  Flag
	first token of a line BOL.  Update EOF code for this.
	Remove illegal directive check - it appears in the (not
	yet committed) caller.
	* cpplib.h (BOL): New flag.

From-SVN: r34216
2000-05-28 01:03:16 +00:00
Neil Booth ad265aa4d6 cpplex.c (_cpp_init_toklist): No comment space to initialise.
* cpplex.c (_cpp_init_toklist): No comment space to initialise.
	(_cpp_free_toklist): No comment space to free.
	(expand_comment_space): Remove.
        (save_comment_space): Place the comment in the current token and
        not in a separate comment space.
        (_cpp_lex_line): Save comments during plain code and #define
        directives only.
        * cpplib.h (struct _cpp_toklist): Remove comment space.

From-SVN: r34215
2000-05-27 23:27:36 +00:00
Neil Booth d1d9a6bd66 cppexp.c (parse_assertion): Supply extra argument to _cpp_init_toklist.
* cppexp.c (parse_assertion): Supply extra argument to
	_cpp_init_toklist.
	* cpplib.c (do_assert, do_unassert): Similarly.
	* cpphash.h (_cpp_init_toklist) Update.
	(_cpp_expand_token_space): New.
	(DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
	* cpplex.c (_cpp_init_toklist): New argument.
	(parse_string2): New argument multiline_ok.
	(spell_token): Take a const cpp_token *.
	(INIT_NAME): Replace with INIT_TOKEN_NAME.  Update tokens_used.
	(SPELL_ macros): Replace with enum.
	(expand_token_space): Replace with _cpp_expand_token_space.
	Take COUNT argument.
	(IS_DIRECTIVE): Update.
	(_cpp_lex_line): Update token structure before parsing number.
	Don't assume start at beginning of token list.
	(save_comment): Use INIT_TOKEN_NAME.

From-SVN: r34214
2000-05-27 23:19:56 +00:00
Zack Weinberg f45c9d956f configure.in (stage1_warn_cflags): Add -Wstrict-prototypes -Wmissing-prototypes.
* configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
	-Wmissing-prototypes.
	* configure: Regenerate.
	* gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.

	* builtins.c, calls.c: Change all instances of gen_call_* or
	gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
	* calls.c (struct_value_size_rtx): Separate definition from
	initialization to avoid unused variable warning.

	* genflags.c (gen_macro): New function.
	(gen_proto): Call it for gen_call_* and gen_sibcall_*.
	(gen_nonproto): Delete.
	(gen_insn): Put all insns on the same obstack.
	(main): Generate prototypes for everything unconditionally.

From-SVN: r34213
2000-05-27 22:34:05 +00:00
Zack Weinberg f12bc141e1 configure.in: Add AC_CHECK_TYPE(ssize_t).
* configure.in: Add AC_CHECK_TYPE(ssize_t).  Remove commented
	out check for wchar_t.
	* acconfig.h: Add template for ssize_t.  Remove @TOP@.
	* system.h: Add infrastructure for defining missing
	TYPE_MAX/TYPE_MIN macros.  Use it to provide fallback
	definitions of UCHAR_MAX and SSIZE_MAX.
	* configure: Regenerate.
	* config.in: Regenerate.

From-SVN: r34212
2000-05-27 22:05:01 +00:00
Zack Weinberg c190ed67f7 Makefile.in (libgcc2.ready): Rename to libgcc.ready.
* Makefile.in (libgcc2.ready): Rename to libgcc.ready.
        Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
        headers.
        (clean): No need to delete libgcc1.a, libgcc1-asm.a,
        libgcc2.a, or libgcc1.null.

From-SVN: r34211
2000-05-27 14:37:17 -07:00
Zack Weinberg 0e7f0e650e * Make-lang.in (cplib2.ready): Eradicate.
From-SVN: r34210
2000-05-27 14:36:52 -07:00
Richard Henderson d2c6a1b628 alpha.c (hard_fp_register_operand): Mind the mode.
* config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
        (hard_int_register_operand): New.
        * config/alpha/alpha-protos.h: Declare it.
        * config/alpha/alpha.h (PREDICATE_CODES): Update.
        * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
        as needed; use peep2_reg_dead_p instead of dead_or_set_p.

From-SVN: r34209
2000-05-27 13:34:12 -07:00
Richard Henderson 2328013936 Makefile.in (recog.o): Don't depend on resource.h.
* Makefile.in (recog.o): Don't depend on resource.h.
	* recog.c: Don't include resource.h.
	(recog_last_allowed_insn): Remove.
	(recog_next_insn): Remove.
	(struct peep2_insn_data): New.
	(peep2_insn_data, peep2_current): New.
	(peep2_next_insn): New.
	(peep2_regno_dead_p, peep2_reg_dead_p): New.
	(peep2_find_free_register): New.
	(peephole2_optimize): Track life information by insn as we go.
	* recog.h: Update declarations.
	* resource.c (find_free_register, reg_dead_p): Remove.
	* resource.h: Remove their declarations.
	* toplev.c: Include hard-reg-set.h before recog.h.

	* genconfig.c (max_insns_per_peep2): New.
	(gen_peephole2): New.
	(main): Call it.
	* genemit.c (output_peephole2_scratches): Generate calls to
	peep2_find_free_register; adjust surrounding code.
	(main): Have insn-emit.c include hard-reg-set.h before recog.h.
	* genrecog.c (change_state): Don't track last_insn.
	(write_action): Write into *_pmatch_len before accepting.
	(write_tree): Adjust peephole2_insns and subroutines to match.

	* config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.

From-SVN: r34208
2000-05-27 13:23:15 -07:00
Richard Henderson 30196c1ff4 function.c (thread_prologue_epilogue_insns): Don't move the line note at the head of the chain.
* function.c (thread_prologue_epilogue_insns): Don't move the
        line note at the head of the chain.  Only force a lineno note
        before the end of block 0.

From-SVN: r34207
2000-05-27 13:10:38 -07:00
Richard Henderson 892ecf921f gensupport.c (collect_insn_data): Record the maximum number of alternatives, not the last seen.
* gensupport.c (collect_insn_data): Record the maximum number
        of alternatives, not the last seen.

From-SVN: r34206
2000-05-27 13:03:31 -07:00
Richard Henderson d96a2fcdf0 genoutput.c: Don't include errors.h.
* genoutput.c: Don't include errors.h.
        (struct data): Add lineno member.
        (have_error): New.
        (scan_operands): Use message_with_line instead of error.
        (validate_insn_alternatives): Likewise.
        (gen_insn): Accept and store the pattern's line number.
        (gen_peephole, gen_expand, gen_split): Likewise.
        (main): Don't set progname.  Pass line_no to gen_foo.

From-SVN: r34205
2000-05-27 13:01:10 -07:00
Richard Henderson 5401747e62 d30v.c (d30v_print_operand): Handle ':'.
* config/d30v/d30v.c (d30v_print_operand): Handle ':'.
        * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
        * config/d30v/d30v.md (attr predicable): New.
        (all insn patterns): Mark non-predicable patterns; use %: on the rest.
        (andsi3*): Unify into one pattern.
        (iorsi3*, xorsi3*): Likewise.
        (peephole2 patterns): Use peep2_reg_dead_p; verify not a
        conditional return.
        (old cond_exec patterns): Remove.
        (define_cond_exec): New.

From-SVN: r34204
2000-05-27 12:53:21 -07:00