+2001-12-14 Zack Weinberg <zack@codesourcery.com>
+
+ * combine.c (record_dead_and_set_regs): Use
+ regs_invalidated_by_call. Don't note stores for CALL_INSNs.
+
+2001-12-14 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.def: Rename BUILT_IN_FSQRT to BUILT_IN_SQRT and
+ __builtin_fsqrt to __builtin_sqrt.
+
+ * builtins.c (expand_builtin_mathfn,expand_builtin): Same.
+ * doc/extend.texi: Simplify documentation to match patch.
+
+Fri Dec 14 21:23:54 CET 2001 Jan Hubicka <jh@suse.cz>
+
+ * config.gcc: Revamp target_cpu_default2 to strings;
+ support new x86 variants.
+ * i386.c (override_options): Default x86_cpu_string and x86_arch_string
+ properly; set prefetch_sse.
+ * i386.h (x86_prefetch_sse): Declare.
+ (TARGET_PREFETCH_SSE): New.
+ (CPP_CPU_DEFAULT_SPEC): Define according to the new macros.
+ (TARGET_CPU_DEFAULT_*): New.
+
+Thu Dec 13 21:57:13 CET 2001 Janis Johnson <janis187@us.ibm.com>
+ Jan Hubicka <jh@suse.cz>
+
+ * config/i386/i386.h (struct processor_costs): Add new members
+ prefetch_block and simultaneous_prefetches.
+ (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): New.
+ * config/i386/i386.c (processor_costs structs): Add values for
+ prefetch_block and simultaneous_prefetches.
+ * config/i386/i386.md (unspec values): Remove values for prefetch
+ operations, which now use the PREFETCH rtx code.
+ (prefetch_sse, prefetch_3dnow, prefetchw): Combine to use new
+ unified prefetch support.
+
+2001-12-14 Jason Merrill <jason@redhat.com>
+
+ * diagnostic.c (sorry): Increment sorrycount before saving the
+ buffer state.
+
+Fri Dec 14 19:53:23 CET 2001 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (sqrt?f): Fix conditionals.
+
+Fri Dec 14 07:29:52 2001 Douglas B. Rupp <rupp@gnat.com>
+
+ * config.gcc (alpha64-dec-*vms*): New case.
+ * config/alpha/t-vms64, config/alpha/vms-crt0-64.c: New files.
+ * config/alpha/vms-psxcrt0-64.c, config/alpha/vms64.h: Likewise.
+ * config/alpha/xm-vms64.h: Likewise.
+
+ * config/alpha/alpha.c (vms_attribute_table): Add new attributes.
+ (alpha_write_linkage): Test for null alpha_links.
+ (SECTION_VMS_GLOBAL, SECTION_VMS_INITIALIZE): New section attributes.
+ (vms_section_type_flags, vms_asm_named_section): Handle them.
+
+Fri Dec 14 12:05:14 CET 2001 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_fpmath, ix86_fpmath_string): New.
+ (override_option): Set ix86_fpmath.
+ * i386.h (MASK_MIX_SSE_I387): Remove.
+ (TARGET_SSE_MATH): New.
+ (TARGET_MIX_SSE_I387): Use ix86_fpmath.
+ (TARGET_SWITCHES): Remove "mix-sse-i387".
+ (fpmath_unit): New enum.
+ (ix86_fpmath, ix86_fpmath_string): Declare.
+ * i386.md (swapsf): Fix condition.
+ (add?f, sub?f, mul?f, div?f, sqrt?f, min?f): Use TARGET_SSE_MATH.
+ (fp_?f_*_nosse): New.
+ (fp_*): Use TARGET_SSE_MATH.
+ * invoke.texi (-mfpmath): Document.
+ (-msse2): Add.
+
+2001-12-14 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (output_die): Print the string in the comment for
+ a DW_FORM_strp.
+
+2001-12-14 Richard Earnshaw <rearnsha@arm.com>
+
+ * netbsd.h (COLLECT_SHARED_INIT_FUNC)
+ (COLLECT_SHARD_FINI_FUNC): Remove redundant semicolon.
+ * doc/tm.texi (COLLECT_SHARED_INIT_FUNC)
+ (COLLECT_SHARD_FINI_FUNC): Use @code where appropriate.
+
+2001-12-13 Richard Henderson <rth@redhat.com>
+
+ * regrename.c (kill_value_regno): Simplify chain removal.
+ (kill_value): Kill all of HARD_REGNO_NREGS.
+ (kill_set_value): Use kill_value not kill_value_regno.
+ (kill_autoinc_value): Likewise.
+ (copyprop_hardreg_forward): Don't collect refresh_blocks.
+ Call delete_noop_moves.
+
+2001-12-13 Aldy Hernandez <aldyh@redhat.com>
+
+ * attribs.c (c_common_attribute_table): Swap decl_req and type_req
+ for the mode attribute.
+ (handle_mode_attribute): Handle types, not decls.
+
+2001-12-13 Jason Merrill <jason@redhat.com>
+
+ * c-common.h (COMPOUND_STMT_BODY_BLOCK): New macro.
+
+2001-12-13 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.md (eh_set_lr_di): Change scratch
+ constraint to base register.
+ (eh_set_lr_si): Same.
+
+2001-12-13 Hans-Peter Nilsson <hp@axis.com>
+
+ * expr.c (expand_expr, case ADDR_EXPR): Don't honor
+ flag_force_addr for modifier != EXPAND_CONST_ADDRESS,
+ modifier != EXPAND_INITIALIZER and modifier != EXPAND_SUM.
+
+Thu Dec 13 20:30:08 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * expr.c (copy_blkmode_from_reg): Add missing braces to eliminate
+ warning and reformat comments.
+ (expand_assignment): Don't pass EXPAND_WRITE if LHS is component.
+ (highest_pow2_factor, case INTEGER_CST): Return BIGGEST_ALIGNMENT
+ if overflow.
+
+2001-12-12 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_override_options): Add
+ SUBSUBTARGET_OVERRIDE_OPTIONS.
+
+ * config/rs6000/eabialtivec.h: New file.
+
+ * config/rs6000/linuxaltivec.h: New file.
+
+ * config.gcc: Add powerpc-*-eabialtivec and
+ powerpc-*-linux-gnualtivec.
+
+2001-12-13 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * toplev.c (process_options, parse_options_and_default_flags):
+ Set flag_no_inline before the post_options hook.
+
+2001-12-13 Richard Henderson <rth@redhat.com>
+
+ * emit-rtl.c (adjust_address_1): Don't adjust address if adjust
+ is false.
+
+2001-12-13 Richard Earnshaw <rearnsha@arm.com>
+
+ * collect2.c (COLLECT_SHARED_INIT_FUNC)
+ (COLLECT_SHARD_FINI_FUNC): Define default values.
+ (write_c_file_stat): Use them to call construtor and destructor
+ functions in shared libraries.
+ * doc/tm.texi (COLLECT_SHARED_INIT_FUNC)
+ (COLLECT_SHARD_FINI_FUNC): Document them.
+ * config/netbsd.h (COLLECT_SHARED_INIT_FUNC)
+ (COLLECT_SHARD_FINI_FUNC): Define.
+
+ * config/netbsd.h (LINK_SPEC): Don't pull in estart if creating a
+ shared library. Pass -shared through to the linker.
+ * config/arm/netbsd.h (LINK_SPEC): Likewise.
+
+ * config/arm/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -fpic.
+ (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME, SHLIB_OBJS, SHLIB_LINK)
+ (SHLIB_INSTALL): Define.
+
+2001-12-13 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c (legitimize_pic_address): Handle LABEL_REFs in substantially
+ the same way as we handle SYMBOL_REFS.
+
+Thu Dec 13 07:47:24 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * loop.c (remove_constant_addition): Fix prototype and whitespace.
+ (emit_prefetch_instructions): Remove warnings and whitespace
+ changes.
+
+Thu Dec 13 06:48:38 2001 Douglas B. Rupp <rupp@gnat.com>
+
+ * config/alpha/vms-cc.c (preprocess_args): Fix forward
+ declaration.
+
+Thu Dec 13 12:31:07 CET 2001 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (estimate_probability): Reorganize opcode heuristics.
+ * predict.def (PRED_OPCODE_POSITIVE, PRED_OPCODE_NONEQUAL,
+ PRED_FPOPCODE): New.
+
+ * i386.c (override_options): Recognize various CPU variants and set
+ SSE/MMX/3dNOW flags accordingly.
+ * i386.h (MASK_MMX_SET, MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET,
+ MASK_3DNOW_A_SET): New.
+ (MASK_ACCUMULATE_OUTGOING_ARGS_SET): New.
+ (MASK_NO_ACCUMULATE_OUTGOING_ARGS): Delete.
+ (MASK_*): Renumber.
+ (TARGET_FLAGS): Use new masks.
+ (CPP_CPU_SPECS): Recognize new CPU variants.
+ * invoke.texi (-mcpu): Update documentation.
+
+ * flags.h (flag_prefetch_loop_arrays): Declare.
+ * loop.h (LOOP_PREFETCH): Define new constant.
+ * loop.c (strength_reduce): Call emit_prefetch_instructions.
+ (MAX_PREFETCHES, PREFETCH_BLOCKS_BEFORE_LOOP_MAX,
+ PREFETCH_BLOCKS_BEFORE_LOOP_MIN, PREFETCH_BLOCKS_IN_LOOP_MIN): New
+ constants.
+ (check_store_data): New structure.
+ (check_store, emit_prefetch_instructions, rtx_equal_for_prefetch_p):
+ New functions.
+ * toplev.c: Include insn-flags.h.
+ (flag_prefetch_loop_arrays): New global variable.
+ (lang_independent_option): Add -fprefetch-loop-arrays.
+ (rest_of_compilation) Pass LOOP_PREFETCH when flag_prefetch_loop_arrays
+ is set.
+ * Makefile.in (toplev.c): Depend on insn-flags.h.
+ * invoke.texi (-fprefetch-loop-arrays): Document.
+
+ * predict.c (estimate_probability): Distribute the loop exit
+ probability according to number of exit edges.
+
+ * cfgcleanup.c (insns_match_p): Break out from ...;
+ (flow_find_cross_jump): ... here;
+ (outgoing_edges_match): Add parameter MODE; attempt to match everything
+ except for tablejumps.
+ (try_crossjump_to_edge): Accept complex edges.
+ (try_crossjump_bb): Likewise.
+
+2001-11-29 Corey Minyard <minyard@acm.org>
+
+ * recog.c (validate_replace_rtx_1): Use simplify_gen_binary
+ instead of plus_constant.
+ * simplify-rtx.c (neg_const_int): New.
+ (simplify_gen_binary, simplify_plus_minus): Use it.
+
+2001-12-12 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.c (expand_builtin_memset, expand_builtin_memcpy,
+ expand_builtin_strcpy): Additional arguments TARGET and MODE.
+ (expand_builtin_bzero, expand_builtin_strcpy,
+ expand_builtin_strncpy, expand_builtin_bzero): Pass additional
+ TARGET and MODE parameters to the above functions.
+ (expand_builtin_memset, expand_builtin_memcpy): Optimize the
+ case where the LEN parameter is constant zero.
+ (expand_builtin_memcmp): No longer conditional on
+ HAVE_cmpstrsi. Take an additional mode parameter. Optimize
+ the cases where len is either constant zero or one.
+ Optimize to call to memcpy, even if the memcpy isn't inlined.
+ (expand_builtin_strncpy): Optimize to call memcpy, even if the
+ memcpy isn't inlined.
+ (expand_builtin_strcmp, expand_builtin_strncmp): Always attempt
+ to optimize to a call to memcmp.
+ (expand_builtin): expand_builtin_memcmp can always be called,
+ and pass the required parameters to expand_builtin_memcmp,
+ expand_builtin_memset, expand_builtin_memcpy and
+ expand_builtin_strcpy.
+
+2001-12-12 David O'Brien <obrien@FreeBSD.org>
+
+ * config.gcc (arm-*-freebsd*): Add target.
+ * config/arm/freebsd.h: New file.
+ * config/arm/arm.h (CPP_PREDEFINES): Do not define.
+ (CPP_SPEC): #undef before defining.
+ (CPP_CPU_ARCH_SPEC): Add -Acpu=arm -Amachine=arm.
+ * config/arm/conix-elf.h (CPP_PREDEFINES): Remove -Acpu=arm
+ -Amachine=arm.
+ * config/arm/linux-elf.h: Likewise.
+ * config/arm/netbsd.h: Likewise.
+ * config/arm/riscix.h: Likewise.
+ * config/arm/riscix1-1.h: Likewise.
+ * config/arm/semiaof.h: Likewise.
+
+2001-12-12 Richard Henderson <rth@redhat.com>
+
+ * regrename.c (copyprop_hardreg_forward): New optimization.
+ (kill_value_regno, kill_value, init_value_data, kill_clobbered_value,
+ kill_set_value, kill_autoinc_value, copy_value, find_oldest_value_reg,
+ replace_oldest_value_reg, replace_oldest_value_addr,
+ replace_oldest_value_mem, copyprop_hardreg_forward_1,
+ debug_value_data, validate_value_data): New.
+ * rtl.h (copyprop_hardreg_forward): Declare.
+ * toplev.c (flag_cprop_registers): New.
+ (f_options): Add -fcprop-registers
+ (rest_of_compilation): Invoke it.
+ (parse_options_and_default_flags): Set it at -O1.
+ * doc/invoke.texi: Document it.
+
+2001-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (dw_val_class): Add dw_val_class_range_list.
+ (DEBUG_RANGES_SECTION_LABEL): Define.
+ (ranges_section_label): Add.
+ (add_AT_range_list): New.
+ (print_die, sizeof_die, value_format): Handle dw_val_class_range_list.
+ (output_loc_list): Location expression length is always 2-byte.
+ (output_die): Handle dw_val_class_range_list.
+ (gen_lexical_block_die): Call add_AT_range_list.
+ (dwarf2out_init): Initialize ranges_section_label.
+ (dwarf2out_finish): Emit ranges_section_label.
+
+2001-12-12 Jakub Jelinek <jakub@redhat.com>
+
+ * c-typeck.c (digest_init): Allow initializing
+ static storage duration objects with compound literals.
+ * doc/extend.texi (Compound literals): Document the extension.
+
+2001-12-12 Richard Henderson <rth@redhat.com>
+
+ * emit-rtl.c (adjust_address_1): Always copy address to avoid
+ shared rtl.
+
+Wed Dec 12 07:37:52 2001 Olivier Hainque <hainque@act-europe.fr>
+
+ * stmt.c (expand_end_case): Do subtraction of lower bound as trees
+ to avoid overflow.
+
+Wed Dec 12 07:35:24 2001 Douglas B. Rupp <rupp@gnat.com>
+
+ * cppfiles.c (read_include_file): Set buffer size properly when
+ file is shorter than expected.
+
+Wed Dec 12 08:35:33 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * objc/objc-act.c (encode_complete_bitfield): Fixed encoding
+ enumeral types - encode them using 'i'.
+
+2001-12-12 Nathan Sidwell <nathan@codesourcery.com>
+
+ * doc/extend.texi (Deprecated Features): Deprecate implicit
+ typename. Document that named return and initializer lists are now
+ removed.
+
2001-12-11 Roger Sayle <roger@eyesopen.com>
* except.c (reachable_next_level): Handle ERT_UNKNOWN to avoid