OSDN Git Service

* Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f2ea897..ef2a3f5 100644 (file)
@@ -1,3 +1,233 @@
+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