* alpha.md (beq): For registers and ints 0-255, use cmpeq+bne, since
that pair will dual-issue on the 21164 and plus+beq won't.
(bne): Likewise for cmpeq+beq.
H.J. Lu [Tue, 30 Sep 1997 03:36:39 +0000 (03:36 +0000)]
Makefile.in (parse.o, decl.o): Also depend on $(srcdir)/../except.h $(srcdir)/../output.h.
Mon Sep 29 19:57:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
* Makefile.in (parse.o, decl.o): Also depend on
$(srcdir)/../except.h $(srcdir)/../output.h.
(decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
$(srcdir)/../except.h $(srcdir)/../output.h.
(typeck.o, init.o): Also depend on $(srcdir)/../expr.h
../insn-codes.h.
Mark Mitchell [Sun, 28 Sep 1997 19:59:54 +0000 (19:59 +0000)]
cplus-dem.c (demangle_template): Add new parameter.
Sun Sep 28 12:00:52 1997 Mark Mitchell <mmitchell@usa.net>
* cplus-dem.c (demangle_template): Add new parameter. Handle new
template-function mangling.
(consume_count_with_underscores): New function.
(demangle_signature): Handle new name-mangling scheme.
Mark Mitchell [Sun, 28 Sep 1997 19:37:05 +0000 (19:37 +0000)]
cplus-dem.c (demangle_template): Add new parameter.
Sun Sep 28 12:00:52 1997 Mark Mitchell <mmitchell@usa.net>
* cplus-dem.c (demangle_template): Add new parameter. Handle new
template-function mangling.
(consume_count_with_underscores): New function.
(demangle_signature): Handle new name-mangling scheme.
Sat Sep 27 16:47:35 1997 Mark Mitchell <mmitchell@usa.net>
* std/complext.h: Declare templates before making them
friends. Use new friend <> syntax.
* std/complext.cc: Don't rely on guiding declarations.
* std/fcomplex.h: Use new friend <> syntax.
* std/dcomplex.h: Likewise.
* std/ldcomplex.h: Likewise.
Jason Merrill [Sun, 28 Sep 1997 19:16:59 +0000 (15:16 -0400)]
[multiple changes]
Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com>
* friend.c (do_friend): Disable injection for all template-derived
decls.
* decl2.c (lang_decode_option): Handle -fguiding-decls.
* parse.y (notype_template_declarator): New nonterminal.
(direct_notype_declarator): Use it.
(complex_direct_notype_declarator): Likewise.
(object_template_id): Accept any kind of identifier after TEMPLATE.
(notype_qualified_id): Don't add template declarators here.
Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net>
* class.c (finish_struct_methods): Add specialization pass to
determine which methods were specializing which other methods.
(instantiate_type): Handle TEMPLATE_ID_EXPR.
* lang-options.h: Add -fname-mangling-version, -fguiding-decls,
and -fno-guiding-decls.
* lex.c (identifier_type): Return PFUNCNAME for template function
names.
* method.c (build_decl_overload_real): New function.
(build_template_parm_names): New function.
(build_overload_identifier): Use it.
(build_underscore_int): New function.
(build_overload_int): Use it. Add levels for template
parameters.
(build_overload_name): Likewise. Also, handle TYPENAME_TYPEs.
(build_overload_nested_names): Handle template type parameters.
(build_template_decl_overload): New function.
* parse.y (YYSTYPE): New ntype member.
(nested_name_specifier): Use it.
(nested_name_specifier_1): Likewise.
(PFUNCNAME): New token.
(template_id, object_template_id): New non-terminals.
(template_parm_list): Note specializations.
(template_def): Likewise.
(structsp): Likewise.
(fn.def2): Handle member template specializations.
(component_decl_1): Likewise.
(direct_notype_declarator): Handle template-ids.
(component_decl_1): Likewise.
(direct_notype_declarator): Handle template-ids.
(primary): Handle TEMPLATE_ID_EXPR, and template-ids.
* pt.c (processing_specializations): New variable.
(template_header_count): Likewise.
(type_unification_real): New function.
(processing_explicit_specialization): Likewise.
(note_template_header): Likewise.
(is_member_template): Handle specializations.
(end_template_decl): Call reset_specialization.
(push_template_decl): Handle member template specializations.
(tsubst): Likewise.
(tsubst_copy): Handle TEMPLATE_ID_EXPR.
(instantiate_template): Handle specializations.
(instantiate_decl): Likewise.
(fn_type_unification): Handle explicit_targs.
(type_unification): Likewise. Allow incomplete unification
without an error message, if allow_incomplete.
(get_bindings): Use new calling sequence for fn_type_unification.
* typeck.c (build_x_function_call): Use really_overloaded_fn.
Handle TEMPLATE_ID_EXPR.
(build_x_unary_op): Likewise.
(build_unary_op): Likewise.
(mark_addressable): Templates whose address is taken are marked
as used.
Jeffrey A Law [Sun, 28 Sep 1997 07:03:02 +0000 (07:03 +0000)]
frame.c: Remove last change.
* frame.c: Remove last change.
* dwarf2.h: Remove last change.
* tree.h: Add declarations of DWARF2 unwind info support
functions.
As requested by Jason.
Andreas Schwab [Sat, 27 Sep 1997 03:58:57 +0000 (03:58 +0000)]
frame.c: Include gansidecl.h for PROTO.
* frame.c: Include gansidecl.h for PROTO.
* dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is
defined. Don't declare dwarf2out_cfi_label here.
* dwarf2.h: Add declarations of DWARF2 unwind info support
functions.
* m68k.c: Include dwarf2.h.
(output_function_prologue): Add dwarf2 support.
* m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros.
(INCOMING_FRAME_SP_OFFSET): Likewise.
Update m68k patch from Andreas.
Paul Eggert [Sat, 27 Sep 1997 03:46:35 +0000 (03:46 +0000)]
c-typeck.c (build_binary_op): Warn about comparing signed vs unsigned if...
* c-typeck.c (build_binary_op): Warn about comparing signed vs
unsigned if -W is specified and -Wno-sign-compare is not.
* c-decl.c (warn_sign_compare): Initialize to -1.
(c_decode_option): -Wall no longer implies -Wsign-compare.
Jason Merrill [Thu, 25 Sep 1997 18:56:40 +0000 (18:56 +0000)]
Handle multi-level typenames and implicit typename in base list.
* parse.y (typename_sub{,[0-2]}): New rules.
(structsp, rule TYPENAME_KEYWORD): Use typename_sub.
(nonnested_type): New rule.
(complete_type_name): Use it.
(base_class.1): Use typename_sub and nonnested_type.
(nested_name_specifier): Don't elide std:: here.
* decl.c (make_typename_type): Handle getting a type for NAME.
(lookup_name_real): Turn std:: into :: here.
Rvalue conversions were removed in London.
* call.c (is_subseq): Don't consider lvalue transformations.
(build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
(joust): Reenable ?: kludge.
sparc.c (finalize_pic): Update call to gen_get_pc_via_call.
* sparc/sparc.c (finalize_pic): Update call to gen_get_pc_via_call.
* sparc/sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals.
(sparc_align_{loops,jumps,funcs}): New globals.
(sparc_override_options): Handle -malign-loops=, -malign-jumps=,
-malign-functions=.
(move_operand): Use SPARC_SETHI_P.
(arith_double_operand): Cast to unsigned HOST_WIDE_INT first, then
perform test.
(arith11_double_operand): Likewise.
(arith10_double_operand): Likewise.
(finalize_pic): Finish sparc64 support.
(emit_move_sequence): Use SPARC_SETHI_P. Simplify low part of
64 bit constants if able.
(output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD.
(sparc_builtin_saveregs, sparc64 case): Don't save fp regs if
! TARGET_FPU.
* sparc.h (ASM_COMMENT_START): Define.
* sparc.c (output_function_prologue): Use it.
(sparc_flat_output_function_{epi,pro}logue): Likewise.
* sparc/sparc.md (*): Use GEN_INT instead of gen_rtx.
(get_pc_sp32): Use for sparc64 as well.
(lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts.
(sethi_di_sp64_const): Likewise.
(movtf_cc_sp64): Check TARGET_HARD_QUAD.
(cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast.
(ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
Jeff Law [Tue, 23 Sep 1997 18:35:51 +0000 (12:35 -0600)]
fold-const.c (make_range): Correctly handle cases of converting from unsigned to signed type.
* fold-const.c (make_range): Correctly handle cases of converting
from unsigned to signed type.
* fold-const.c (merge_ranges): Make sure that if one range is subset
of another, it will always be the second range. Correct (+,-) case to
account for this.
David S. Miller [Tue, 23 Sep 1997 07:14:07 +0000 (07:14 +0000)]
reorg.c (dbr_schedule): At end of this pass...
* reorg.c (dbr_schedule): At end of this pass, add REG_BR_PRED
note holding get_jump_flags() calculation to all JUMP_INSNs.
* rtl.h (enum reg_note): New note types REG_BR_PRED and REG_SAVE_AREA.
* rtl.c (reg_note_name): Add new note types.
Jeffrey A Law [Mon, 22 Sep 1997 03:04:36 +0000 (03:04 +0000)]
loop.c (loop_number): Delete function.
* loop.c (loop_number): Delete function. Change all references
to use uid_loop_num array.
* loop.h (loop_number): Delete declaration.
* unroll.c (unroll_loop): Change "loop_number" references to
use uid_loop_num instead.
Still cleaning up haifa.