+2000-09-11 Matthew Hiller <hiller@redhat.com>
+
+ * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
+ on operand 0 to '+'.
+ (movstricthi): Likewise.
+
+2000-09-12 Michael Hayes <mhayes@cygnus.com>
+
+ * loop.h (LOOP_IVS): New macro.
+ (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
+ (struct loop_ivs): New.
+ (struct loop_info): Add ivs field.
+ (reg_iv_type, reg_iv_info): Delete prototype.
+ (reg_biv_class, loop_iv_list): Likewise.
+ * loop.c (record_biv, find_life_end): Pass loop argument.
+ (reg_iv_type): Remove global array and use
+ field in loop_regs structure within loop_ivs structure.
+ (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
+ (first_increment_giv, last_increment_giv): Use entry in
+ loop_ivs structure.
+ (record_initial): Pass ivs pointer.
+ * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
+
+2000-09-12 Michael Hayes <mhayes@cygnus.com>
+
+ * loop.h (LOOP_REGS): New macro.
+ (struct loop_regs): New.
+ (struct loop_info): Add regs field.
+ * loop.c (set_in_loop): Remove global array and store
+ in loop_regs structure as part of loop_info structure.
+ (n_times_set, may_not_optimize): Likewise.
+ (reg_single_usage, moved_once): Likewise.
+ (count_one_set): Add regs argument.
+ (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
+ (set_pseudo_multiple_uses): Pass regs pointer.
+
+2000-09-12 Michael Hayes <mhayes@cygnus.com>
+
+ * unroll.c (iteration_info): Subsume into loop_iterations.
+ * loop.h (loop_info): New field iv.
+
+2000-09-12 Michael Hayes <mhayes@cygnus.com>
+
+ * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
+ (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
+ (flow_loops_update): New prototype.
+ (flow_loops_find): Add flags to prototype.
+ (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
+ * flow.c (flow_loop_pre_header_scan): New.
+ (flow_loop_dump): Dump pre-header root and trace and exit dominators.
+ (flow_loop_free): Free pre-header root and trace and exit dominators.
+ (flow_loops_find): New argument flags.
+ (flow_loops_update): New function.
+ * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
+
+2000-09-12 Michael Hayes <mhayes@cygnus.com>
+
+ * basic-block.h (split_block, update_bb_for_insn): New prototypes.
+ * flow.c (split_block, update_bb_for_insn): New functions.
+
+2000-09-11 Richard Henderson <rth@cygnus.com>
+
+ * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
+
+2000-09-11 Richard Henderson <rth@cygnus.com>
+
+ * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
+ * config/ia64/ia64.c (fr_nonimmediate_operand): New.
+ (ia64_override_options): Prevent optimizing division for both
+ latency and throughput.
+ (rtx_needs_barrier): Handle frcpa.
+ * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
+ (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
+ (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
+ (TARGET_SWITCHES): Add -minline-divide-min-latency and
+ -minline-divide-max-throughput.
+ (PREDICATE_CODES): Update.
+ * config/ia64/ia64.md (extendsidi2): Remove * from f case.
+ (zero_extendsidi2): Likewise. Fix typo in f case insn.
+ (extendsfdf2): Add cases for gr<->fr and fr<->mem.
+ (extendsftf2): Likewise.
+ (extenddftf2): Likewise.
+ (fix_trunctfdi2_alts): New.
+ (fixuns_trunctfdi2_alts): New.
+ (madd*4): Rename from madd*3.
+ (divsi3, modsi3, udivsi3, umodsi3): New.
+ (divsi3_internal): New.
+ (divdi3, moddi3, udivdi3, umoddi3): New.
+ (divdi3_internal_lat, divdi3_internal_thr): New.
+ (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
+ (recip_approx): New.
+
+2000-09-11 Alexandre Oliva <aoliva@redhat.com>
+
+ * print-rtl.c (debug_call_placeholder_verbose): New variable.
+ (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
+ set.
+ * integrate.c (copy_rtx_and_substitute): Don't share
+ LEAF_REG_REMAPpable registers with the inlined function. Don't
+ share the function value with calling sequences.
+
+2000-09-11 Jakub Jelinek <jakub@redhat.com>
+
+ * c-decl.c (do_case): Fix a typo.
+
+ * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
+ to a if the comparison is floating mode and not -ffast-math.
+ * simplify-rtx.c (simplify_ternary_operation): Likewise.
+
+Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
+
+ * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
+ gen_ic_invalidate_line.
+
+2000-09-11 Philip Blundell <pb@futuretv.com>
+
+ * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
+
+Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
+
+ * install.texi (LANGUAGES): Update to include new languages.
+ * INSTALL: Rebuilt.
+
+2000-09-11 DJ Delorie <dj@redhat.com>
+
+ * gcc.c (main): Don't warn about unused -B prefixes
+ (unused_prefix_warnings): remove
+
+2000-09-11 Kazu Hirata <kazu@hxi.com>
+
+ * integrate.c: Fix formatting.
+
+2000-09-11 Geoff Keating <geoffk@cygnus.com>
+
+ * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
+
+2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
+
+ * reload.c (regno_clobbered_p): Fix thinko in previous change.
+
+2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * gcc.1: Document 68hc11 specific options.
+
+2000-09-10 Geoff Keating <geoffk@cygnus.com>
+
+ * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
+ (TARGET_LONG_DOUBLE_128): Define.
+ (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
+ (LONG_DOUBLE_TYPE_SIZE): Redefine.
+ (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
+ (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
+ of __LONG_DOUBLE_128__.
+ (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
+ passed.
+ (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
+ (CPP_SYSV_DEFAULT_SPEC): Define.
+ (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
+ (INIT_TARGET_OPTABS): Define.
+
+ * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
+ (RS6000_UITRUNC): Likewise.
+ (INIT_TARGET_OPTABS): New macro.
+ * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
+ (trunc_defined): Delete.
+ (output_prolog): Don't output .extern definitions for fp->int
+ conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
+ * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
+ (trunc_defined): Delete.
+ (RS6000_ITRUNC): Moved to aix.h.
+ (RS6000_UITRUNC): Likewise.
+ * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
+ only emit a libcall.
+ (fixuns_truncdfsi2): Delete.
+ (trunc_call): Delete.
+ (trunc_call_rtl): Delete.
+
+2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
+
+ * varasm.c (make_decl_rtl): Restore leading star on
+ DECL_ASSEMBLER_NAME set for decls with an asmspec.
+
+2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
+
+ * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
+ won't give a spurious error for '#pragma pack()'. Simplify
+ control flow for readability. 'reset' action is not necessary.
+
+2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
+
+ * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
+ SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
+ LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
+ DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
+
+ * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
+ profile.c, sdbout.c, tradcif.y, tree.c:
+ Include defaults.h if not already included.
+ Don't define the above macros.
+
+ * Makefile.in: Update dependencies.
+
+2000-09-10 Mark Mitchell <mark@codesourcery.com>
+
+ * c-common.h (add_stmt): Change prototype.
+ (RECHAIN_STMTS): New macro.
+ (CASE_LABEL_DECL): Likewise.
+ (genrtl_case_label): Change prototype.
+ (c_expand_start_case): Remove prototype.
+ (build_case_label): Change prototype.
+ (decl_constant_value): Declare.
+ * c-common.c (check_case_value): Handle C++'s extensions to C
+ semantics.
+ * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
+ field.
+ * c-parse.in (stmt): Adjust handling of return statements and case
+ laels.
+ * c-semantics.c (add_stmt): Return the new statement.
+ (genrtl_return_stmt): Take the RETURN_STMT as input, not the
+ returned expression. Directly generate RTL, rather than calling
+ c_expand_return.
+ (genrtl_switch_stmt): Don't call c_expand_start_case.
+ (build_case_label): Take the LABEL_DECL as input, too.
+ (genrtl_case_label): Just call add_case_node.
+ (expand_stmt): Adjust calls to genrtl_return_stmt and
+ genrtl_case_label.
+ * c-tree.h (c_expand_start_case): Declare.
+ * c-typeck.c (decl_constant_value): Give it external linkage.
+ (c_expand_return): Don't call expand_return or expand_null_return;
+ use genrtl_return_stmt instead.
+ * stmt.c (struct nesting): Remove num_ranges field.
+ (add_case_node): Give it external linkage.
+ (expand_start_case): Don't set num_ranges.
+ (expand_start_case_dummy): Don't clear it.
+ (pushcase): Rely on add_case_node to handle `default' labels.
+ (add_case_node): Handle `default' labels.
+ * tree.c (tree_int_cst_compare): New function.
+ * tree.h (tree_int_cst_compare): Declare.
+ (add_case_node): Likewise.
+
+2000-09-10 Richard Henderson <rth@cygnus.com>
+
+ * c-parse.in: Revert last change.
+ (init_reswords): Do not enter disabled keywords into the ridpointers
+ table, modulo objc weirdness.
+ (_yylex): Return the canonical spelling for a keyword.
+
+2000-09-10 Philip Blundell <philb@gnu.org>
+
+ * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
+ * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
+
+Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
+
+ * alias.c (find_base_term): Handle ADDRESSOF.
+ (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
+
+2000-09-10 Denis Chertykov <denisc@overta.ru>
+
+ * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
+ outputting templates with many lines.
+
+2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
+ to decide whether 64-bit support must be generated.
+
+2000-09-10 Richard Henderson <rth@cygnus.com>
+
+ * c-parse.in (asm patterns): Fix volatile check.
+
+2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cppmacro.c (check_trad_stringification): New function.
+ (save_expansion): If -Wtraditional, warn about stringification of
+ macro arguments.
+
+2000-09-11 Michael Hayes <mhayes@cygnus.com>
+
+ * loop.h (struct loop_mem_info): Move from loop.c
+ (struct loop_info): Add fields store_mems, mems, mems_idx,
+ mems_allocated, unknown_address_altered,
+ unknown_constant_address_altered, num_mem_sets, and
+ first_loop_store_insn.
+
+ * loop.c (loop_store_mems): Replace with field in loop_info struct.
+ (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
+ (unknown_address_altered, unknown_constant_address_altered): Likewise.
+ (num_mem_sets): Likewise.
+ (replace_loop_mems, replace_loop_regs): New.
+ (struct loop_replace_args): New.
+ (load_mems): Use replace_loop_mems.
+ (try_copy_prop): Use replace_loop_regs.
+ (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
+
+2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * configure.in: Recognize m6811-elf and m6812-elf.
+ * configure: Regenerate.
+
+2000-09-09 Geoff Keating <geoffk@cygnus.com>
+
+ * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
+ to operand_subword.
+
+2000-09-10 Michael Hayes <mhayes@cygnus.com>
+
+ * loop.c (struct movables): New.
+ (num_movables): Move into struct movables.
+ (the_movables): Change type to struct movables.
+ (ignore_some_movables): Change struct movable arg to struct movables.
+ (force_movables, combine_movables, regs_match_p): Likewise.
+ (rtx_equal_for_loop_p, move_movables): Likewise.
+ (scan_loop): Change movables to be of type struct movables.
+ Replace last_movable with field in movables structure.
+
+2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
+
+ * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
+ (init_pragma): Avoid warning if pfile happens to be unused.
+ * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
+ define init_pragma to nothing. Always prototype
+ init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
+
+ * c-lex.c (process_directive): Always call dispatch_pragma.
+ Initialize entering_c_header to 0.
+
+2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * config/m68hc11/m68hc11.md: New file, machine description for
+ 68HC11 & 68HC12.
+ * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
+ * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
+ * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
+ * config/m68hc11/m68hc11-protos.h: New file.
+ * config/m68hc11/m68hc11-crt0.S: New file, startup code.
+ * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
+ * config/m68hc11/xm-m68hc11.h: New file, target defs.
+ * config/m68hc11/larith.asm: New file, libgcc routines.
+
+2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
+ (FPBIT_FUNCS): Add _usi_to_sf.
+ * config/fp-bit.c (usi_to_float): New function.
+ * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
+ (usi_to_float): Add appropriate #define.
+
+2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
+
+ * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
+ new functions.
+ * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
+ * i386.md (attr "type"): Add sse and mmx types.
+ (attr "memory"): Handle them without a crash.
+ (movsi_1, movdi_2): Allow MMX regs.
+ (movdi splits): Don't split moves involving MMX regs.
+ (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
+ (movv4sf_internal, movv4si_internal, movv8qi_internal,
+ movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
+ movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
+ sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
+ sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
+ sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
+ addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
+ divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
+ sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
+ sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
+ vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
+ smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
+ cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
+ addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
+ subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
+ mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
+ mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
+ mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
+ eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
+ smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
+ lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
+ mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
+ mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
+ mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
+ mmx_clrdi): New patterns.
+
+2000-09-08 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c: Don't include tm.h directly.
+
+Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
+
+ * recog.c (validate_replace_rtx_1): Fix confusion about equality
+ testing; simplify subregs of constants and nested subregs.
+
+2000-09-08 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
+
+2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
+
+ * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
+ VEC_CONCAT.
+ * rtl.texi (description of USE): Add note about possible pitfalls
+ with this rtx.
+ From Richard Henderson:
+ * reload1.c (choose_reload_regs): Compute need_mode properly.
+
+2000-09-07 Richard Henderson <rth@cygnus.com>
+
+ * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
+ (__modsi3, __umodsi3): Likewise.
+ (__udivsi3): Likewise. Normalize the TFmode values.
+
+2000-09-07 Geoff Keating <geoffk@cygnus.com>
+
+ * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
+ with a prototype.
+ * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
+ warning.
+
+Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
+
+ * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
+ (cmpeqdi_t): Add output pattern.
+ (cmpeqdi_t+1): Don't split when not optimizing.
+ Restore proper splitting operation.
+
+2000-09-07 Richard Henderson <rth@cygnus.com>
+
+ * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
+ do not call dispatch_pragma.
+
+2000-09-07 Jim Wilson <wilson@cygnus.com>
+
+ * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
+ to CLASS_CANNOT_CHANGE_MODE.
+ * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
+ mode classes are different.
+
+2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
+
+ * cpplib.h (struct cpp_options): Add user_label_prefix member,
+ left out of commit which removed cppulp.c.
+
+2000-09-07 Richard Henderson <rth@cygnus.com>
+
+ * bb-reorder.c (fixup_reorder_chain): Add jump in new block
+ after switch for CASE_DROPS_THROUGH.
+
+2000-09-07 Richard Henderson <rth@cygnus.com>
+
+ * loop.c (strength_reduce): Call check_ext_dependant_givs.
+ Properly extend the biv initial value for the giv.
+ (record_biv): Zero ext_dependant.
+ (record_giv): New argument ext_val. Update all callers.
+ (general_induction_var): Likewise.
+ (consec_sets_giv): Likewise.
+ (simplify_giv_expr): Likewise. Fill in ext_val if we find
+ a sign-extend, zero-extend, or truncate.
+ (combine_givs_p): Make sure modes are compatible.
+ (check_ext_dependant_givs): New.
+ (extend_value_for_giv): New.
+ * loop.h (struct induction): Add ext_dependant.
+ * unroll.c (iteration_info): Extend the biv initial value for the giv.
+ (find_splittable_givs): Likewise.
+ (final_giv_value): Likewise.
+
+2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
+
+ * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
+ REGISTER_TARGET_PRAGMAS is defined. Duplicate some
+ definitions from cpplib.h.
+ * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
+ already done it.
+ * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
+ documentation for REGISTER_TARGET_PRAGMAS.
+
+ * c-lex.c: Include cpplib.h before c-pragma.h. Define a
+ default-pragma callback to implement -Wunknown-pragmas if
+ USE_CPPLIB.
+ * c-parse.in: Move all includes to top of file.
+ * c-pragma.c: Include cpplib.h before c-pragma.h. Include
+ tm_p.h.
+ (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
+ warning.
+ (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
+
+ * arm.h, arm-protos.h, arm.c,
+ c4x.h, c4x-protos.h, c4x.c,
+ h8300.h, h8300-protos.h, h8300.c,
+ i370.h, i370-protos.h, i370.c,
+ i960.h, i960-protos.h, i960.c,
+ sh.h, sh-protos.h, sh.c,
+ v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
+ pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
+
+ * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
+ multiple include guard.
+ * i370.md (untyped_call): Use GEN_CALL.
+ (umodsi3): Remove unused variable.
+ * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
+ * v850.c (output_move_single, output_move_double): Constify
+ return value.
+ (print_operand): Constify a char *.
+ * v850.h (struct small_memory_info): Constify name member.
+
+2000-09-07 Kazu Hirata <kazu@hxi.com>
+
+ * config/h8300.h: Fix comment typos.
+ * config/h8300/h8300.md: Likewise.
+ * config/h8300/lib1funcs.asm: Likewise.
+
+Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
+
+ * Makefile.in: Remove references to cppulp.{c,o}.
+ * cppinit.c (initialize_builtins, cpp_start_read,
+ cpp_handle_option): Update to use cpp_options structure.
+ * cppulp.c: Remove.
+
+2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * c-common.c (time_char_table): Allow %#b and %#h.
+
+2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+ * reorg.c (find_end_label): If the basic block reorder pass moves the
+ return insn to some other place try to locate it again and put our
+ end_of_function_label there.
+ * reorg.c (relax_delay_slots): Check if find_end_label created a
+ new label that invalidates the current optimazation.
+
+2000-09-07 Catherine Moore <clm@redhat.com>
+
+ * unroll.c (unroll_loop): Check for unconditional jumps
+ to loop continuation. Delete if n_iterations is 1.
+ (ujump_to_loop_cont): New routine.
+
+2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
+
+ * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
+ MODE_VECTOR_FLOAT.
+ * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
+ to handle multiword modes correctly. All callers and the declaration
+ changed.
+
+2000-09-06 Mark Mitchell <mark@codesourcery.com>
+
+ * c-common.h (prep_stmt): Declare.
+ (lang_expand_stmt): Likewise.
+ * c-decl.c (lang_expand_stmt): Remove.
+ * c-semantics.c (lang_expand_stmt): Define.
+ (prep_stmt): New function.
+ (expand_stmt): Handle common statement types here.
+
+2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (sh-*-linux*): Added.
+ * configure: Rebuilt.
+ * config/sh/t-linux: New file.
+ * config/sh/sh.h (USERMODE_BIT): Define.
+ (TARGET_USERMODE): Likewise.
+ (TARGET_SWITCHES): New switches for the bits above.
+ (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
+ * config/sh/linux.h: New file.
+ * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
+ underscore on linux.
+ (L_sdivsi3, L_udivsi3): Define for linux.
+ (L_ic_invalidate): Define.
+ * invoke.texi (SH Options): Document -musermode.
+
+2000-09-07 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
+ CSE unless generating PIC.
+
+ * config/sh/sh.md (symPLT_label2reg): Force the initialization of
+ the PIC register.
+
+2000-09-06 H.J. Lu (hjl@gnu.org)
+
+ * Makefile.in (clean_s1): Depend on stage_b.
+ (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
+ stage2. They are used for "make compare".
+
+2000-09-06 Mark Mitchell <mark@codesourcery.com>
+
+ Move statement-tree facilities from C++ to C front-end.
+ * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
+ (void_zero_node): New macro.
+ (struct stmt_tree_s): New type.
+ (stmt_tree): New typedef.
+ (struct language_function): New type.
+ (last_tree): New macro.
+ (last_expr_type): Likewise.
+ (walk_tree_fn): New typedef.
+ (current_stmt_tree): New function.
+ (begin_stmt_tree): Likewise.
+ (add_stmt): Likewise.
+ (finish_stmt_tree): Likewise.
+ (statement_code_p): Likewise.
+ (lang_statement_code_p): New variable.
+ (walk_stmt_tree): New function.
+ (STMT_IS_FULL_EXPR_P): New macro.
+ * c-common.c (lang_statement_code_p): New variable.
+ (c_common_nodes_and_builtins): Initialize void_zero_node.
+ (statement_code_p): New function.
+ (walk_stmt_tree): Likewise.
+ * c-decl.c (language_function): Rename to ...
+ (c_language_function): ... this. Include language_function.
+ (push_c_function_context): Adjust accordingly.
+ (pop_c_function_context): Likewise.
+ (mark_c_function_context): Likewise.
+ (current_stmt_tree): Define.
+ * c-semantics.c (begin_stmt_tree): New function.
+ (add_stmt): Likewise.
+ (prune_unused_decls): Likewise.
+ (finish_stmt_tree): Likewise.
+
+2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
+
+ * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
+
+2000-09-06 Kazu Hirata <kazu@hxi.com>
+
+ * calls.c: Fix formatting.
+
+2000-09-06 Graham Stott <grahams@cygnus.co.uk>
+
+ * config/i386/i386.h (ADDRESS_COST): Fix typo.
+
+2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
+
+ Integrated preprocessor.
+
+ * Makefile.in: Remove all references to c-parse.gperf,
+ c-gperf.h, and c-parse.h. Remove -d from yacc command line
+ generating c-parse.c. Update dependencies.
+ * c-parse.gperf, c-gperf.h: Delete.
+
+ * c-common.c: Don't define parse_options, cpp_token, yy_cur,
+ yy_lim, or yy_get_token. Don't define get_directive_line if
+ USE_CPPLIB.
+ * c-common.h: Add multiple include guard. Define RID values
+ for every keyword in C, C++, and Objective C. Put all the
+ modifiers first.
+ (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
+ * c-decl.c (c_decode_option): Handle -lang-objc here.
+ (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
+ (grokdeclarator): Adjust for new RID scheme.
+ (extract_interface_info): New stub.
+ * c-lang.c: Don't declare yy_cur or parse_options.
+ (lang_init_options): Call cpp_init. Don't call
+ cpp_options_init.
+ (lang_init): Don't call check_newline if USE_CPPLIB.
+
+ * c-lex.c: Don't include c-parse.h. Do include timevar.h.
+ Elide lots of unnecessary code if USE_CPPLIB. Delete code
+ rendered unnecessary by new architecture. Move routines not
+ shared with C++ to c-parse.in. Maintain a local idea of the
+ line number. Handle C++ as well as C.
+ [USE_CPPLIB]: Declare and register callbacks for #ident and
+ for entering/leaving files.
+ (init_c_lex, c_lex): Are now the entry points to this file.
+ (check_newline): Break out directive handling to
+ process_directive.
+ (read_ucs, is_extended_char, utf8_extend_token): Moved here
+ from C++ front end.
+ (readescape, parse_float): Overhaul.
+ (lex_number, lex_string, lex_charconst): Break out of c_lex
+ (n'ee yylex).
+ (get_fileinfo, update_header_times, dump_one_header,
+ dump_time_statistics): New and/or moved here from C++.
+ Support per-file data needed by C++ and per-header timing
+ statistics (C++ only, at the moment).
+ * c-lex.h: Update prototypes. Add multiple include guard.
+ * c-tree.h (struct lang_identifier): Add rid_code field.
+ (C_IS_RESERVED_WORD, C_RID_CODE): New.
+
+ * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
+ reinit_parse_for_function and/or position_after_white_space.
+ (save_filename, save_lineno): Look ahead before saving.
+ (label -> identifier ':'): Save file and line before shifting ':'.
+ (reservedwords): No need to call get_identifier.
+ (init_parse, finish_parse, yyerror, yylex, yyprint,
+ make_pointer_declarator): Are now here for C/ObjC.
+ (rid_to_yy): Conversion table from RID constants to Yacc codes.
+
+ * c-pragma.c: Rewrite parsing logic to fit with cpplib's
+ #pragma registry. Provide dummy implementation of that
+ interface if !USE_CPPLIB.
+ * c-pragma.h: Update to match.
+
+ * flags.h: Add multiple include guard.
+ (flag_detailed_statistics): Moved here from C++.
+ * toplev.c: Define flag_detailed_statistics.
+
+ * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
+ #if USE_CPPLIB.
+ * timevar.def (TV_CPP, TV_LEX): New.
+ * timevar.h: Add multiple include guard.
+
+ * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
+ #if USE_CPPLIB.
+ * objc/objc-act.c: Don't mention yy_cur or parse_options.
+ Initialize cpplib properly. Force lineno to 0 after first
+ call to check_newline. Don't handle -lang-objc here.
+ Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
+
+2000-09-06 David Edelsohn <edelsohn@gnu.org>
+
+ * rs6000.md: Correct function unit definitions for cr_logical and
+ mtjmpr.
+ (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
+ and use portable method for >=0 and floating point >=. Remove
+ associated matchers.
+
2000-09-06 Mark Mitchell <mark@codesourcery.com>
* extend.texi: Mark named return value extension as deprecated.
2000-09-05 Bruce Korb <bkorb@gnu.org>
- * fixinc/fixincl.c (load_file): always read header files
- with sizes that are a multiple of the page size.
+ * fixinc/fixincl.c (load_file): always read header files
+ with sizes that are a multiple of the page size.
& use libiberty's getpagesize for determining that.
2000-09-05 Alexandre Oliva <aoliva@redhat.com>
Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
- * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
+ * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
Add '*' to insn pattern name.
2000-09-03 Richard Earnshaw <rearnsha@arm.com>
- * arm.c (final_prescan_insn): If the form of a jump insn isn't
+ * arm.c (final_prescan_insn): If the form of a jump insn isn't
recognized, don't try to conditionally execute it.
Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
(prepare_move_operands): Call emit_pic_move or
emit_pic_const_move if appropriate.
(output_far_jump): For PIC, use braf and output long offset.
- (machine_dependent_reorg):
+ (machine_dependent_reorg):
(sh_expand_prologue): Save and initialize the PIC register.
(sh_expand_epilogue): Restore it.
(initial_elimination_offset): Account for it.
* fix-header.c (write_rbrac): Add putc and getc to list of
functions to protect against prior definition as a macro.
-
+
2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
* c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
2000-09-01 Andrew Haley <aph@redhat.com>
- * dwarf2out.c (stack_adjust_offset): New function.
- (dwarf2out_stack_adjust): Break out stack adjust logic into
- new stack_adjust_offset function. Look inside parallels and
- sequences for stack adjustments.
+ * dwarf2out.c (stack_adjust_offset): New function.
+ (dwarf2out_stack_adjust): Break out stack adjust logic into
+ new stack_adjust_offset function. Look inside parallels and
+ sequences for stack adjustments.
2000-08-31 Jeff Law <law@cygnus.com>
* arm.md: Use no_new_pseudos to determine when it is safe
to create new pseudo registers.
- * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
- when we can safely allocate new registers.
+ * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
+ when we can safely allocate new registers.
2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
* toplev.c (rest_of_compilation): No CONCATs after RTL generation.
2000-08-22 Philipp Thomas <pthomas@suse.de>
- Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
+ Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
* gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
for translation.
* c-common.c (declare_function_name): Use func_id_node,
function_id_node, and pretty_function_id_node. Do not make
- __func__ visible at file scope.
+ __func__ visible at file scope.
* c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
(function_id_node, pretty_function_id_node, func_id_node): New
* c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
* c-pragma.h (struct weak_syms): Constify name and value members.
- (add_weak): Constify arguments.
+ (add_weak): Constify arguments.
* calls.c (special_function_p): Constify a char *.
(expand_call): Remove variable which is initialized and then
(output_movqi): New prototype.
(output_movhi): New prototype.
(call_insn_operand): Likewise.
- (final_prescan_insn): Likewise.
+ (final_prescan_insn): Likewise.
(avr_simplify_comparision_p): Likewise.
(avr_normalize_condition): Likewise.
(compare_eq_p): Likewise.
(gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
(output_die): Call output_die_symbol and AT_ref_external.
(output_comdat_comp_unit): New fn, split out from...
- (dwarf2out_finish): ...here. Also call add_sibling_attributes for
+ (dwarf2out_finish): ...here. Also call add_sibling_attributes for
secondary CUs.
(output_pubnames, output_aranges): Abort if we see entries from
secondary CUs.
(flow_loops_find): Call flow_loop_entry_edges_find.
(flow_loop_dump): Dump entry_edges list.
(flow_loops_free): Free entry_edges.
-
+
2000-08-26 Michael Hayes <mhayes@cygnus.com>
-
+
* loop.c (loop_dump_aux, debug_loop): New functions.
(LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
* toplev.c (rest_of_compilation): Add NULL callback function pointer
to call to flow_loops_dump.
-
+
2000-08-26 Michael Hayes <mhayes@cygnus.com>
* loop.c (count_loop_regs_set): Replace start and end arguments
with loop argument. All callers udated.
-
+
2000-08-26 Michael Hayes <mhayes@cygnus.com>
-
+
* loop.c (constant_high_bytes): Delete.
2000-08-26 Michael Hayes <mhayes@cygnus.com>
* gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
(readonly_warning): Likewise.
* gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
-
+
2000-08-24 Jim Wilson <wilson@cygnus.com>
* c-common.c (decl_attributes, case A_ALIGN): Revert last change.
2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
- * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
+ * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
asked for one page, allocate GGC_QUIRE_SIZE of them and put
the extras on the free list.
(release_pages): Clean up.
(fr_register_operand, grfr_register_operand): New.
(gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
(grfr_reg_or_8bit_operand): New.
- (gr_reg_or_0_operand): Rename from reg_or_0_operand and
+ (gr_reg_or_0_operand): Rename from reg_or_0_operand and
use gr_register_operand.
(gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
(gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
* config/ia64/ia64.md (*): Use gr_register_operand and co.
(mf): Indicate that we set memory as well as use it.
(fetchadd_acq_si): Show memory being modified as well.
- (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
+ (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
(val_compare_and_swap_si, val_compare_and_swap_di): Remove.
(lock_test_and_set_si, lock_test_and_set_di): Remove.
(fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
* dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
- (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
+ (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
2000-08-24 Greg McGary <greg@mcgary.org>
(THUMB_FUNCTION_START): New macro: Common code at the start of
Thumb functions.
(__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
-
+
Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
* Makefile.in (OBJS): Add dependence.o.
* dependence.c: New file.
-
+
2000-08-22 Alexandre Oliva <aoliva@redhat.com>, John David Anglin <dave.anglin@nrc.ca>
* calls.c (check_sibcall_argument_overlap_1): Adjust for
* mips/linux.h (LINK_SPEC): Use %(endian_spec).
* mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
- and linker_endian_spec to endian_spec.
+ and linker_endian_spec to endian_spec.
(ENDIAN_SPEC): Add %{EB} and %{EL}.
(LINK_SPEC): Remove %{EB} and %{EL}.
- (ASM_SPEC): Likewise. Use %(endian_spec).
+ (ASM_SPEC): Likewise. Use %(endian_spec).
2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
(fixup_match_1): Likewise.
(fixup_match_1, combine_stack_adjustments_for_block): Add casts to
avoid signed/unsigned warnings.
-
+
* function.c (fixup_var_refs_1, case MEM): Update CODE after
updating X.
expands.
(arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
patterns.
-
+
Tue Aug 15 00:36:36 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
* gthr-posix.h: Conditionally include <sched.h>; include
2000-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* cse.c (fold_rtx): Avoid empty body in an if-statement.
-
+
* doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
`U' integer constant suffix.
* configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
* fixinc/inclhack.def: Likewise.
- * fixinc/mkfixinc.sh: Likewise.
+ * fixinc/mkfixinc.sh: Likewise.
* configure: Regenerate.
* fixinc/fixincl.x: Regenerate.
* install.texi: Document equivalence of linux and linux-gnu.
(do_restore): Likewise.
(gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
(ia64_expand_prologue, ia64_expand_epilogue): Use them.
- (rtx_needs_barrier): Track actual bit manipulation for
+ (rtx_needs_barrier): Track actual bit manipulation for
ar.unat moves, gr_spill, and gr_restore.
(emit_insn_group_barriers): Special case gr_spill/gr_restore.
(process_set): Don't handle varargs spills.
* config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
2000-08-11 Mark Elbrecht <snowball3@bigfoot.com>
-
+
* gcc.texi (The Configuration File): Document
COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
UPDATE_PATH_HOST_CANONICALIZATION.
2000-08-08 David Edelsohn <edelsohn@gnu.org>
* rs6000.c (optimization_options): Decorate 'level' as
- ATTRIBUTE_UNUSED.
+ ATTRIBUTE_UNUSED.
(mask64_operand): Remove sign-extend thinko.
(rldic_operand): New function.
(load_multiple_operation): regno's are unsigned ints.
(ia64_encode_section_info): Silence signed/unsigned warnings.
(spill_offset, sp_offset, spill_offset_emitted): Remove.
(tmp_reg, tmp_saved): Remove.
- (process_set): Rewrite to expect complicated bits via
+ (process_set): Rewrite to expect complicated bits via
REG_FRAME_RELATED_EXPR.
(ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
in the use of ar.ccv; never set RTX_UNCHANGING_P.
* mn10300.md: Use nonimmediate_operand instead of general_operand
on output operands.
-
+
* mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
2000-08-07 Alexandre Oliva <aoliva@redhat.com>
* tree.c (tree_expr_nonnegative_p): Move to...
* fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR.
- (rtl_expr_nonnegative_p): New.
+ (rtl_expr_nonnegative_p): New.
* tree.h: Add prototype for rtl_expr_nonnegative_p.
* real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com>
- * (mips_legitimate_address_p): Don't allow register+offset
- if the offset is large and negative, and we are compiling
- for 64 bit registers.
+ * (mips_legitimate_address_p): Don't allow register+offset
+ if the offset is large and negative, and we are compiling
+ for 64 bit registers.
2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>