Commit Graph

28538 Commits

Author SHA1 Message Date
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
Richard Kenner
8d5e6e2527 tree.h (TREE_CODE_LENGTH): New macro.
* tree.h (TREE_CODE_LENGTH): New macro.
	* c-common.c (c_find_base_decl): Use it.
	* expr.c (safe_from_p): Likewise.
	* print-tree.c (print_node): Likewise.
	* tree.c (make_node, copy_node, get_identifier): Likewie.
	(first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
	(build, build_nt, build_parse_node, simple_cst_equal): Likewise.
	* fold-const.c (make_range): Likewise.
	(fold): Likewise; also use first_rtl_op.
	* c-iterate.c (collect_iterators): Use first_rtl_op.
	* calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
	Use IS_EXPR_CODE_CLASS.
	(preexpand_calls): Likewise.
	* ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
	and TREE_CODE_LENGTH.
	* stmt.c (warn_if_unused_value): If no operands, no unused value.
	* ch/lang.c (deep_const_expr): Use first_rtl_op.
	* ch/satisfy.c (satisfy): Use TREE_CODE_LENGTH.
	* cp/method.c (mangle_expression): Use TREE_CODE_LENGTH.
	* cp/tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
	(built_min, cp_tree_equal): Likewise.

From-SVN: r34203
2000-05-27 11:21:17 -04:00
Jeff Law
0777f60c79 Daily bump.
From-SVN: r34202
2000-05-27 01:45:07 -06:00
Geoff Keating
aee86b3881 rs6000.md (movsi_internal1): Use '%a1' rather than '%1(%*)'.
* config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
than '%1(%*)'.
(movdi_internal64): Likewise.

From-SVN: r34201
2000-05-27 07:44:25 +00:00
Geoff Keating
1d328b19d4 rs6000.md: Correct order of operands for DImode boolean patterns.
* config/rs6000/rs6000.md: Correct order of operands for DImode
boolean patterns.

* config/rs6000/rs6000.c (boolean_or_operator): New function.
* config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
* config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
* config/rs6000/rs6000.md: Use boolean_or_operator instead of
boolean_operator for the boolean patterns without NOTs.

* config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
from reg_or_u_cint_operand.  Change comment and behaviour.
(logical_operand): Clean up, add assertion.
(non_logical_cint_operand): Also check for
reg_or_logical_cint_operand.
* config/rs6000/rs6000.h (PREDICATE_CODES): Update.
* config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
in the expander.
(xorsi3): Likewise.
(iordi3): Likewise.
(xordi3): Likewise.

From-SVN: r34200
2000-05-27 02:24:32 +00:00
Mark Mitchell
defd0dea52 tree.h (struct record_layout_info): Rename to (struct record_layout_info_s).
* tree.h (struct record_layout_info): Rename to (struct
	record_layout_info_s).
	* stor-layout.c (start_record_layout): Replace
	`record_layout_info' with `record_layout_info_s'.

	* class.c (layout_nonempty_base_or_field): Replace
	`record_layout_info' with `record_layout_info_s'.

From-SVN: r34199
2000-05-26 21:40:01 +00:00
Jason Merrill
6625cdb595 Fix goto checking.
* cp-tree.h (struct language_function): x_named_labels is now
        a struct named_label_list*.
        * decl.c (struct named_label_use_list): Renamed from...
        (struct named_label_list): ...this.  New struct.
        (push_binding_level): Don't set eh_region.
        (note_level_for_eh): New fn.
        (pop_label): Take label and old value directly.
        (pop_labels): Adjust for new named_labels format.
        (lookup_label): Likewise.
        (poplevel): Note characteristics of a binding level containing a
        named label.  Mess with named label lists earlier.
        (mark_named_label_lists): New fn.
        (mark_lang_function): Call it.
        (use_label): New fn, split out from...
        (make_label_decl): ...here.  Don't call it.
        (decl_jump_unsafe, check_previous_goto, check_previous_goto_1,
        check_previous_gotos): New fns, split out from...
        (define_label): ...here.
        (check_switch_goto): New fn.
        (define_case_label): Call it.
        (check_goto): New fn.
        * semantics.c (finish_goto_stmt): Call it and use_label.
        (begin_compound_stmt): If we're a try block, call note_level_for_eh.
        (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings.

From-SVN: r34198
2000-05-26 17:05:05 -04:00
Phil Edwards
0137be2dca acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): If strtoll isn't available, force --disable.
2000-05-26  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG):  If strtoll isn't
	  available, force --disable.  Need to flesh this out; make smarter.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

	* mkcheck.in:  Minor tweaks.
	* docs/download.html:  Fix typo.

From-SVN: r34197
2000-05-26 19:59:46 +00:00
Zack Weinberg
30a3caefde parse.y (find_applicable_accessible_methods_list): Don't add an uninitialized value to the list.
2000-05-26  Zack Weinberg  <zack@wolery.cumb.org>

	* java/parse.y (find_applicable_accessible_methods_list):
	Don't add an uninitialized value to the list.

From-SVN: r34196
2000-05-26 18:57:28 +00:00
Mark Mitchell
344e498c7c class.c (build_vtable_entry_ref): Correct usage of get_vtbl_decl_for_binfo.
* class.c (build_vtable_entry_ref): Correct usage of
	get_vtbl_decl_for_binfo.

From-SVN: r34195
2000-05-26 17:47:25 +00:00
Mark Mitchell
cab8bde98e decl2.c (grokclassfn): Set DECL_LANGUAGE here.
* decl2.c (grokclassfn): Set DECL_LANGUAGE here.
	* method.c (implicitly_declare_fn): Not here.

From-SVN: r34194
2000-05-26 16:54:18 +00:00
Richard Earnshaw
1bc48f824a flow.c (find_label_refs): New function.
* flow.c (find_label_refs): New function.
(find_basic_blocks_1): Call it for each alternative of a call
placeholder.

From-SVN: r34193
2000-05-26 10:30:47 +00:00
Richard Earnshaw
5f361012f7 ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC of get_pc.
* ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
of get_pc.

From-SVN: r34192
2000-05-26 09:51:00 +00:00
Nathan Sidwell
387769edff cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
* cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
	(CPTI_PTMD_DESC_TYPE): ... here.
	(ptmd_desc_type_node): Rename to ...
	(ptm_desc_type_node): ... here.
	* decl.c: Likewise.
	* rtti.c (ptmd_initializer): Rename to ...
	(ptm_initializer): ... here.
	(sythesize_tinfo_var): Adjust. Deal with pointer to member
	function.
	(create_tinfo_types): Adjust.

From-SVN: r34190
2000-05-26 08:50:47 +00:00
Jeff Law
4d3ff8d823 Daily bump.
From-SVN: r34189
2000-05-26 01:45:07 -06:00
Richard Henderson
a0e5a544ae alpha.c (alpha_comparison_operator): Don't be so strict about DImode.
* config/alpha/alpha.c (alpha_comparison_operator): Don't be
        so strict about DImode.
        (alpha_swapped_comparison_operator): Likewise.
        * config/alpha/alpha.md (*setne_internal): Name it.  Allow
        any integer output mode.
        (*setcc_internal): Likewise.
        (*setcc_swapped_internal): Likewise.
        (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
        (*mov[qhs]icc_internal): New.
        (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.

From-SVN: r34188
2000-05-26 00:04:21 -07:00
J. David Anglin
b49425e47c vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>

	* vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.

From-SVN: r34187
2000-05-26 03:36:25 +00:00
Richard Henderson
f008a564f9 bb-reorder.c (reorder_block_def): Reorder elements for size.
* bb-reorder.c (reorder_block_def): Reorder elements for size.
        Remove add_jump; add next; replace flags with visited.
        (rbd_init): Remove.
        (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
        (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
        (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
        (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
        (RBI): New.
        (reorder_index, reorder_last_visited): Remove.
        (skip_insns_after_block): Rewrite to use a switch.
        (get_common_dest): Remove.
        (chain_reorder_blocks): Remove.
        (record_effective_endpoints): Split out from reorder_basic_blocks.
        (make_reorder_chain): Likewise.  Loop until all blocks are placed.
        (make_reorder_chain_1): Renamed from old make_reorder_chain.
        Only construct the reorder chain, do not move insns.  Try harder
        to tail recurse.
        (label_for_bb, emit_jump_to_block_after): New.
        (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
        and adjust the jump insns appropriately.  Fixup basic_block_info.
        (verify_insn_chain): Always define.
        (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
        in allocation size.
        (make_new_scope): Don't write zeros to calloc'd space.
        (build_scope_forest): Rely on xrealloc to DTRT.
        (reorder_basic_blocks): Don't build loop nest.  Don't fail if
        profile_arc_flag.  Streamline EH test.

	* flow.c (redirect_edge_succ, redirect_edge_pred): New.
	* basic-block.h: Declare them.

From-SVN: r34186
2000-05-25 20:34:33 -07:00
Alexandre Oliva
49080ead6d * gcc.c-torture/compile/20000523-1.c: New test.
From-SVN: r34185
2000-05-26 02:15:55 +00:00
Alexandre Oliva
2d4aecb33a emit-rtl.c (reset_used_decls): New function.
* emit-rtl.c (reset_used_decls): New function.
(unshare_all_rtl_again): Call it.

From-SVN: r34184
2000-05-26 01:49:38 +00:00
Zack Weinberg
476f28692a cpplex.c (maybe_macroexpand): Warn about function-like macros used in non-function context, if -Wtraditional.
* cpplex.c (maybe_macroexpand): Warn about function-like
	macros used in non-function context, if -Wtraditional.

From-SVN: r34183
2000-05-26 01:29:35 +00:00
Tom Tromey
40aaba2b81 re GNATS gcj/162 (gcj does not initialize interfaces according to spec)
* parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
	when trying to see if field's class should be initialized.  Always
	initialize field's declaring class, not qualified class.
	For PR gcj/162.

From-SVN: r34182
2000-05-26 01:16:20 +00:00
Tom Tromey
b8c5b1c6d5 re GNATS gcj/235 (source parser dies when Primitive.TYPE is used in an array declaration)
* parse.y (array_constructor_check_entry): Pass `wfl_value', not
	`wfl_operator', to maybe_build_primttype_type_ref.
	Fixes PR gcj/235.

From-SVN: r34181
2000-05-26 01:12:37 +00:00
Mark Mitchell
887418182a * recog.c (peephole2_optimize): Use INSN_P.
From-SVN: r34180
2000-05-25 23:59:45 +00:00
Richard Henderson
4e4017cbe5 ifcvt.c (seq_contains_jump): New.
* ifcvt.c (seq_contains_jump): New.
        (noce_try_store_flag_constants): Use it to fail conversion.
        (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.

From-SVN: r34179
2000-05-25 16:53:23 -07:00
Mark Mitchell
0519ce3019 except.h (can_throw): Declare it.
* except.h (can_throw): Declare it.
	* except.c (can_throw): Give it external linkage.
	* resource.c (find_dead_or_set_registers): Use can_throw.

From-SVN: r34178
2000-05-25 23:43:43 +00:00
Mark Mitchell
3ec6bad360 Finish implementation of VTTs.
* cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and
	CPTI_VTT_PARM_IDENTIFIER.
	(vtt_parm_identifier): New macro.
	(vtt_parm_type): Likewise.
	(BINFO_SUBVTT_INDEX): Likewise.
	(BINFO_VPTR_INDEX): Likewise.
	(struct lang_decl): Add vtt_parm.
	(DECL_VTT_PARM): New macro.
	(DECL_USE_VTT_PARM): Likewise.
	(DECL_NEEDS_VTT_PARM_P): Likewise.
	(get_vtt_name): Declare.
	(build_artifical_parm): Likewise.
	(fixup_all_virtual_upcast_offsets): Likewise.
	(expand_indirect_vtbls_init): Remove.
	* call.c (build_new_method_call): Pass the vtt to subobject
	constructors and destructors.
	* class.c (get_vtt_name): Give it external linkage.
	(build_clone): Handle the magic VTT parameters for clones.
	(clone_function_decl): Fix typo in comment.
	(build_vtt): Keep track of the indices in the VTTs where various
	entities are stored.
	(build_vtt_inits): Likewise.
	(dfs_build_vtt_inits): Likewise.
	(build_ctor_vtbl_group): Tweak type of construction vtables.
	(dfs_accumulate_vtbl_inits): Build vtables for all bases, even
	primary bases, when building construction vtables.
	* decl.c (duplicate_decls): Handle DECL_VTT_PARM.
	(initialize_predefined_identifiers): Add vtt_parm_identifier.
	(init_decl_processing): Initialize vtt_parm_type.
	(grokfndecl): Use DECL_OVERLOADED_OPERATOR_P.
	(lang_mark_tree): Make vtt_parm.
	* decl2.c (build_artificial_parm): New function.
	(maybe_retrofit_in_chrg): Use it.  Add VTT parameters.
	(grokclassfn): Use build_artificial_parm.
	* init.c (initialize_vtbl_ptrs): Call
	fixup_all_virtual_upcast_offsets directly.
	(perform_member_init): Use the complete subobject destructor for
	member cleanups.
	(build_vtbl_address): New function.
	(expand_virtual_init): Handle VTTs.
	* optimize (maybe_clone_body): Likewise.
	* search.c (fixup_all_virtual_upcast_offsets): Give it external
	linkage.
	(expand_indirect_vtbls_init): Remove.
	* semantics.c (setup_vtbl_ptr): Fix typos in comment.
	* tree.c (make_binfo): Make them bigger.

From-SVN: r34177
2000-05-25 23:27:18 +00:00
Richard Henderson
a0ee3b8335 * flow.c (mark_set_1): Don't record conditionally dead memory.
From-SVN: r34176
2000-05-25 16:19:35 -07:00
Jan Hubicka
7f1c097d36 combine.c (try_combine): Use any_condjump_p...
* combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
        and pc_set at the place of simplejump_p and condjump_p.
        * cse.c (record_jump_equiv): Likewise.
        * emit-rtl.c (emit): Likewise.
        * explow.c (find_next_ref): Likewise.
        * flow.c (tidy_fallthru_edge): Likewise.
        (init_propagate_block_info): Likewise.
        * gcse.c (delete_null_pointer_checks): Likewise.
        * ifcvt.c (cond_exec_get_condition, noce_get_condition,
        dead_or_predicable): Likewise.
        * integrate.c (copy_insn_list): Likewise.
        * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
        for_each_insn_in_loop, check_dbra_loop, get_condition,
        insert_bct, load_mems): Likewise.
        * resource.c (find_dead_or_set_registers): Likewise.
        * sibcalls.c (simplejump_p): Likewise.
        * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.

From-SVN: r34175
2000-05-25 14:38:49 -07:00