+2004-02-07 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
+ config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
+ Use the top level mkinstalldirs, not the one in the gcc subdir.
+ * mkinstalldirs: Remove (from the gcc subdir).
+
+2004-02-07 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/13696
+ * fold-const.c (fold_convert): New function to provide type
+ conversion to the middle-end without using convert.
+ (negate_expr, associate_trees, size_diffop, omit_one_operand,
+ operand_equal_for_comparison_p, pedantic_omit_one_operand,
+ invert_truthvalue, optimize_bit_field_compare, range_binop,
+ decode_field_reference, make_range, build_range_check, unextend,
+ fold_truthop, extract_muldiv_1, fold_mathfn_compare,
+ fold_binary_op_with_conditional_arg, fold_inf_compare,
+ fold_single_bit_test, fold, multiple_of_p): Replace all calls to
+ convert with calls to fold_convert.
+
+2004-02-07 Jan Hubicka <jh@suse.cz>
+
+ * genrecog.c (find_operand): add extra argument stop.
+ (validate_pattern): Verify that mach_dup is duplicating operand
+ defined lexically earlier.
+
+2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
+ * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
+ MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
+ * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
+ config/ia64/ia64.h, config/ip2k/ip2k.h,
+ config/iq2000/iq2000.h, config/mips/iris5.h,
+ config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
+ config/rs6000/aix51.h, config/rs6000/aix52.h,
+ config/rs6000/darwin.h, config/rs6000/rs6000.h,
+ config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
+ config/sparc/linux.h, config/sparc/linux64.h,
+ config/sparc/netbsd-elf.h, config/sparc/sparc.h,
+ config/xtensa/xtensa.h: Remove the definitions of
+ MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
+ MAX_WCHAR_TYPE_SIZE.
+ * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
+ MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
+
+2004-02-07 Stephane Carrez <stcarrez@nerim.fr>
+
+ PR bootstrap/13990
+ * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
+ gen_rtx_NE.
+
+2004-02-07 Josef Zlomek <zlomekj@suse.cz>
+
+ * var-tracking.c (vt_add_function_parameters): Surround checkings by
+ #ifdef ENABLE_CHECKING and #endif.
+
+2004-02-07 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
+ either (-A)-B or (-B)-A, if A or B is easily negated respectively.
+ (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
+ integer types and floating point with unsafe_math_optimizations.
+ Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
+ Optimize A - B as A + (-B), if B is easily negated.
+
+2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
+
+ * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
+ config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
+ config/m32r/linux.h, config/rs6000/ppc64-fp.c,
+ config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
+ Update copyright.
+
+2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
+
+ * c-ppoutput.c, var-tracking.c: Fix comment typos.
+
+2004-02-06 James E Wilson <wilson@specifixinc.com>
+
+ * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
+ glibc 2.3 or better.
+
+2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
+ to FLOAT_LIB_COMPARE_RETURNS_BOOL.
+
+2004-02-07 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
+ (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
+ (SHLIB_MKMAP_OPTS): Delete.
+ (TARGET_LIBGCC2_CFLAGS): Add -specs.
+ (bispecs): Add rule.
+ * config/rs6000/libgcc-ppc64.ver: New file.
+ * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
+ (__floatdidf, __floatdisf): Optimize multiply.
+ (__fixunstfdi): New function.
+ * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
+ real and imag parts larger than one register.
+ (function_arg): Correct type of reg used when fp arg split partially
+ to stack.
+ * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
+ and __MACH__ or __powerpc64__.
+
+2004-02-06 Roger Sayle <roger@eyesopen.com>
+ Ulrich Weigand <uweigand@de.ibm.com>
+
+ * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
+ of gen_highpart or gen_lowpart when the floating point format is
+ wider than the result mode.
+
+2004-02-06 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * dwarf2out.c (loclabel_num): Move into #ifdef
+ DWARF2_DEBUGGING_INFO.
+
+2004-02-06 Ziemowit Laski <zlaski@apple.com>
+
+ * objc/objc-act.c (build_super_template) the 'class' field of
+ 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
+ (get_super_receiver): Likewise.
+
+2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * reload1.c (check_eliminable_occurrences): Optimize the reset
+ of can_eliminate.
+ (eliminate_regs_in_insn): Likewise.
+
+2004-02-06 Daniel Berlin <dberlin@dberlin.org>
+ Josef Zlomek <zlomekj@suse.cz>
+
+ * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
+ at the beginning of function, call dwarf2out_var_location for
+ NOTE_INSN_VAR_LOCATION note.
+ (struct var_loc_node, struct var_loc_list_def, loclabel_num,
+ decl_loc_table): New.
+ (lookup_decl_loc): New function.
+ (add_var_loc_to_decl): New function.
+ (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
+ only if can_use_fbreg.
+ (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
+ functions.
+ (loc_descriptor): Likewise. Process VAR_LOCATION.
+ (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
+ (loc_descriptor_from_tree): Call mem_loc_descriptor with
+ can_use_fbreg == true.
+ (add_location_or_const_value_attribute): Added parameter enum
+ dwarf_attribute attr, generate attribute ATTR. Create the location list.
+ (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
+ (gen_formal_parameter_die): Call add_location_or_const_value_attribute
+ with attr == DW_AT_location.
+ (gen_subprogram_die): Generate the location list for DW_AT_frame_base
+ if frame_base_decl is defined and has a location list.
+ (gen_variable_die): Call add_location_or_const_value_attribute with
+ attr == DW_AT_location.
+ (dwarf2out_var_location): New function.
+ (dwarf2out_begin_function): New function.
+ (dwarf2out_init): Create decl_loc_table.
+
+2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * loop.c (force_movables): Transitively increase the priorities of
+ all insns forces by an insn, not just the first one.
+
+2004-02-06 Josef Zlomek <zlomekj@suse.cz>
+ Daniel Berlin <dberlin@dberlin.org>
+
+ Josef Zlomek <zlomekj@suse.cz>
+ * Makefile.in (var-tracking.o): New.
+ * common.opt (fvar-tracking): New.
+ * flags.h (flag_var_tracking): New.
+ * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
+ * opts.c (common_handle_option): Add OPT_fvar_tracking.
+ * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
+ * rtl.c (note_insn_name): Likewise.
+ * rtl.def (VAR_LOCATION): New.
+ * rtl.h (NOTE_VAR_LOCATION): New.
+ (NOTE_VAR_LOCATION_DECL): New.
+ (NOTE_VAR_LOCATION_LOC): New.
+ (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
+ (variable_tracking_main): New exported function.
+ * timevar.def (TV_VAR_TRACKING): New.
+ * toplev.c (enum dump_file_index): Added DFI_vartrack.
+ (dump_file): "vartrack" was added (-dV).
+ (flag_var_tracking): New.
+ (f_options): "var-tracking" was added.
+ (rest_of_handle_variable_tracking): New function.
+ (rest_of_compilation): Run variable tracking.
+ (process_options): If user has not specified flag_var_tracking set it
+ according to optimize, debug_info_level and debug_hooks.
+ * tree.h (frame_base_decl): New.
+ * var-tracking.c: New file.
+ * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
+ (ia64_override_options): Set flags to run variable tracking in machine
+ dependent reorg instead of toplev.c.
+ (ia64_reorg): Run variable tracking if wanted.
+ * doc/invoke.texi: Mention variable tracking in -dV,
+ add and -fvar-tracking.
+ * doc/passes.texi: Added variable tracking pass.
+
+ Daniel Berlin <dberlin@dberlin.org>
+ * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
+ * dbxout.c (dbx_debug_hooks): Likewise.
+ (xcoff_debug): Likewise.
+ * debug.c (do_nothing_debug_hooks): Likewise.
+ * dwarf2out.c (dwarf2_debug_hooks): Likewise.
+ * dwarfout.c (dwarf_debug_hooks): Likewise.
+ * sdbout.c (sdb_debug_hooks): Likewise.
+ * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
+ * final.c (final_scan_insn): Call var_location debug hook for each
+ NOTE_INSN_VAR_LOCATION.
+
+2004-02-06 Jan Hubicka <jh@suse.cz>
+
+ * flow.c (update_life_info): Allocate reg_deaths when called from
+ scheudler.
+ (attempt_auto_inc): Update life ranges accordingly.
+
+2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR debug/11816
+ * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
+
+2004-02-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * cfganal.c (flow_call_edges_add): Never split a libcall block.
+
2004-02-06 Daniel Berlin <dberlin@dberlin.org>
* dwarf2out.c (output_loc_list): Don't use deltas if we have