i386.md: Simplify certain comparisons of const_int.
[gcc.git] / gcc / ChangeLog
index 3b53c621c38885b7317b4ceaef134310f0abd19e..80af02b0ee4c68e37eec8e8817bad3f65f5c080a 100644 (file)
@@ -1,8 +1,308 @@
+2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/i386/i386.md: Simplify certain comparisons of
+       const_int.
+
+2004-01-21  Andrew Pinski  <apinski@apple.com>
+
+       PR target/13785
+       * config/rs6000/rs6000.md (call_value): Force operand 
+       1 not operand 0 into a register.
+
+2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
+       unwind-dw2-fde.h: Update copyright.
+
+2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa-protos.h: Update copyright.
+       * pa.h: Likewise.
+       * pa.md: Likewise.
+
+2004-01-21  Caroline Tice <ctice@apple.com>
+
+       PR target/12308
+       * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber 
+       flags register.
+       (fix_truncdfdi2): Likewise.
+       (fix_truncsfdi2): Likewise.
+       (*fix_truncdi_1): Likewise.
+       (fix_truncxfsi2): Likewise.
+       (fix_truncdfsi2): Likewise.
+       (fix_truncsfsi2): Likewise.
+       (*fix_truncsi_1): Likewise.
+       (fix_truncxfhi2): Likewise.
+       (fix_truncdfhi2): Likewise.
+       (fix_truncsfhi2): Likewise.
+       (*fix_trunchi_1): Likewise.
+       
+2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * alias.c, basic-block.h, c-common.c, c-common.h,
+       c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
+       calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
+       combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
+       cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
+       defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
+       expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
+       genautomata.c, genconditions.c, genemit.c, genflags.c,
+       gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
+       ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
+       langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
+       line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
+       ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
+       rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
+       target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
+       unwind.h, varray.c, varray.h: Update copyright.
+
+2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/coff.h: Update copyright.
+       * config/h8300/elf.h: Likewise.
+       * config/h8300/h8300-protos.h: Likewise.
+       * config/h8300/h8300.c: Likewise.
+       * config/h8300/h8300.h: Likewise.
+       * config/h8300/h8300.md: Likewise.
+
+2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
+       ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
+       ultrix_unistd): New hacks.
+       * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
+       ULTRIX_CONST2_CHECK): Add checks.
+       * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
+       * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
+       * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
+       * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
+       * fixinc/tests/base/locale.h: New file.
+       * fixinc/fixincl.x: Rebuilt.
+
+2004-01-21  Andreas Jaeger  <aj@suse.de>
+           Michael Matz  <matz@suse.de>
+
+       * doc/extend.texi (Extended Asm): Clarify memory clobber.
+
+2004-01-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
+       _Jv_RegisterClasses through a function pointer.
+
+2004-01-21  Falk Hueffner  <falk@debian.org>
+
+       PR target/12898
+       * config/alpha/alpha.c (alpha_emit_set_const_1): If
+       no_new_pseudos, use gen_rtx_SET directly for SImode constants
+       which need multiple instructions to emit.
+
+2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
+
+       * config/m32r/m32r.h (CPP_SPEC): Define.
+
+2004-01-21  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-decl.c (merge_decls): Kill different_binding_level and
+       different_tu arguments; simplify throughout.
+       (duplicate_decls): Likewise.
+       (pushdecl, merge_translation_unit_decls): Update calls to
+       duplicate_decls.
+
+2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
+       $(SYSTEM_H).
+       (print-rtl1.o): Depend on $(SYSTEM_H).
+
+2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
+
+       PR bootstrap/12730
+       * configure.ac: Delete definition and subsitution of docdir.
+       Add info, man, srcman and srcinfo to target hooks. Create doc/
+       directory.
+       * configure: Regenerate.
+       * Makefile.in: Don't substitute docdir and delete all references
+       throughout.
+       (MAKEINFOFLAGS): Define.
+       (stmp-docobjdir): Delete.
+       (INFOFILES, MANFILES): Define.
+       (info): Call lang.info, srcinfo and lang.srcinfo.
+       (generated-manpages): Call lang.man, srcman and lang.srcman.
+       (srcinfo, srcman): New rules to copy back files to source directory.
+       (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
+       (install-man): Revamp rule.
+       (clean): Update dvi directory.
+       (distclean): Delete TAGS from front end directorys.
+       (maintainer-clean): Delete all document files in source directory.
+
+       objc/Make-lang.in (objc.man, objc.info): Dummy entries.
+       (objc.srcman, objc.srcinfo): Likewise.
+
+2004-01-20  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/inclhack.def(math_exception): bypass only for glibc.
+       (matherr_decl): rename & relocate as exception_structure.
+       This fix must precede the math_exception fix.
+
+2004-01-20  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_convert): Rename to fold_convert_const.
+       (fold_convert_const): Change arguments to take a tree_code,
+       a type and the operand/expression to be converted.  Return
+       NULL_TREE if no simplification is possible.  Add support for
+       FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
+       (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
+       Adjust call to fold_convert to match new fold_convert_const.
+       Avoid modifying the tree passed to fold in-place.
+
+2004-01-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
+       * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
+       * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
+
+2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
+       * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
+       Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
+       (emit_move_sequence): Check scratch_reg first in various if statements.
+       Extend source simplification to handle all 64-bit CONST_INTs.
+       (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
+       frame size.
+       (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
+       frame offset calculations.
+       * pa.h (NEW_HP_ASSEMBLER): Add comment.
+       (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
+       LEGITIMATE_64BIT_CONST_INT_P): Define.
+       (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
+       any CONST_INT as legitimate during and after reload.
+       (VAL_32_BITS_P, INT_32_BITS): Define.
+       (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
+
+2004-01-20  Jan Hubicka  <jh@suse.cz>
+
+       * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
+       emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
+       containing hard regs are shared.
+       (gen_hard_reg_clobber): New function.
+       (hard_reg_clobbers): New array.
+       * genemit.c (gen_exp): Use gen_hard_reg_clobber.
+       (copy_rtx): Do not copy clobbers containing hard regs.
+       * rtl.h (gen_hard_reg_clobber): Declare.
+
+2004-01-20  Jan Hubicka  <jh@suse.cz>
+
+       * varray.c:  Include hashtab.h
+       (varray_descriptor): New structure.
+       (hash_descriptor, eq_descriptor, varray_descriptor,
+       print_statistics): New static functions
+       (varray_init, varray_grow): Update statistics
+       (dump_varray_statistics): New function.
+       * varray.h (dump_varray_statistics): Declare.
+       * toplev.c (finalize): Call it.
+       * Makefile.in (varray.o): Add dependency.
+
+2004-01-20  Jan Hubicka  <jh@suse.cz>
+
+       * cselib.c: Include alloc-pool.h
+       (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
+       (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
+       (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
+       unchain_one_elt_loc_list_pool, unchain_one_value,
+       new_cselib_val): Simplify using allocpool.
+       (cselib_init): Initialize allocpools.
+       (cselib_finish): Finish allocpools.
+       * Makefile.in (cselib.o): Depend on alloc-pool.h
+
+2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_load_call_address): Make the call insn
+       use $gp if it could be calling a lazy binding stub.
+
+2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
+       (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
+       (TARGET_STRUCT_VALUE_RTX): Likewise.
+       * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
+       (PROMOTE_FUNCTION_RETURN): Remove.
+       (STRUCT_VALUE): Remove.
+
+2004-01-20  Denis Chertykov  <denisc@overta.ru>
+
+       PR bootstrap/13735
+       * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
+       register as pointer after reload.
+
+2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR optimization/12440
+       * loop.c: Include ggc.h.
+       (loop_optimize): Run garbage collector between optimization of loops.
+       * Makefile.in (loop.o): Add GGC_H dependency.
+
+2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
+
+       * gcc/config/rs6000/rs6000.c (function_arg) Handle
+       vector register special in function without prototype.
+       (function_arg_advance): Vector parameters get always
+       GPRs allocated for the linux64 target.
+
+2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
+       not TARGET_M32RX_MASK.
+
+2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR target/13557
+       * config/sparc/sparc.c (function_arg): Reorder the cases.
+
+2004-01-19  Per Bothner  <per@bothner.com>
+
+       Move cpp_reader's line_maps field to a shared global.
+       * cpphash.h (cpp_reader):  Rename line_maps field to line_table
+       and change the type to a pointer rather than a struct.
+       * cppinit.c (cpp_push_main_field):  Adjust accordingly.
+       * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
+       Likewise.
+       * cppfiles.c (validate_pch):  Likewise.
+       * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
+       Likewise.
+       * cpperror.c (print_location):  Likewise.
+       * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
+       * cppinit.c (cpp_create_reader):  Handle new parameter.
+       (cpp_destroy):  Don't free line_maps - that's no longer our job.
+       * input.h (line_table):  New variable.
+       * toplev.c (line_table):  Declare variable.
+       (general_init):  Initialize line_table.
+       * c-opts.c (c_common_init_options):  Pass line_table to
+       cpp_create_reader.
+       * fix-header.c (read_scan_file):  New local variable line_table.
+       Initialize, and pass it to cpp_create_reader.
+       * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
+       (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
+
+2004-01-19  Per Bothner  <per@bothner.com>
+
+       Implement a cache for linemap_lookup.
+       * line-map.h (struct_line_maps):  Add cache field.
+       * line-map.c (linemap_init):  Zero cache field.
+       (linemap_add):  Set cache field to offset of newly allocated map.
+       (linemap_lookup):  Use and set cache field.
+
+2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR optimization/13567
+       * cse.c (cse_basic_block): Call cse_insn with a non-null
+       libcall_insn for the last SET insn of a no-confilict block.
+
 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
 
-       * Makefile.in (target_noncanonical, program_transform_name): Use 
+       * Makefile.in (target_noncanonical, program_transform_name): Use
        immediate define instead of deferred.
-       (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME, 
+       (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
        PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
        GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
        deferred backquote.
 
 2004-01-19  Richard Henderson  <rth@redhat.com>
 
-        * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
-        don't check memory mode.
-        (unaligned_memory_operand): Likewise.
-        (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
-        abort for op0 not MEM.
+       * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
+       don't check memory mode.
+       (unaligned_memory_operand): Likewise.
+       (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
+       abort for op0 not MEM.
 
-        * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
-        is not a reg, copy to a scratch first.
-        (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
-        unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
-        unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
-        (reload_inqi, reload_inhi): Fix mode of op0.
-        (reload_inqi_help, reload_inhi_help, reload_outqi_help,
-        reload_outhi_help): Likewise.  Use define_insn_and_split.
+       * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
+       is not a reg, copy to a scratch first.
+       (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
+       unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
+       unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
+       (reload_inqi, reload_inhi): Fix mode of op0.
+       (reload_inqi_help, reload_inhi_help, reload_outqi_help,
+       reload_outhi_help): Likewise.  Use define_insn_and_split.
 
-        * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
-        as well as $29 dead.
+       * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
+       as well as $29 dead.
 
 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
 
        * contrib.texi: Update Paolo Carlini's entry.  New entries for
        Jerry Quinn and Petur Runolfsson.
+
 2004-01-19  Roger Sayle  <roger@eyesopen.com>
 
        * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
 
        * objc/objc-act.c (build_objc_method_call): Use target
-       hooks instead of macros to determine if ..._stret 
+       hooks instead of macros to determine if ..._stret
        dispatchers should be used (NeXT runtime only).
 
 2004-01-17  Roger Sayle  <roger@eyesopen.com>
        * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
        (STRUCT_VALUE): Remove.
 
-2003-01-14  Steven Bosscher  <stevenb@suse.de>
+2004-01-14  Steven Bosscher  <stevenb@suse.de>
 
        * system.h: Poison PROMOTED_MODE
        * integrate.c (expand_inline_function): Don't mention the