OSDN Git Service

* combine.c (distribute_notes): Handle REG_ALWAYS_RETURN.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 69ec5fd..a2bca73 100644 (file)
@@ -1,3 +1,409 @@
+2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN.
+
+2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * combine.c (combine_simplify_rtx): Fix RTL sharing bug.
+
+2003-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * pretty-print.h (pp_maybe_newline_and_indent): New macro.
+       * c-pretty-print.h (c_pretty_printer): Now typedef to the
+       structure.  Be consistent with pretty-print.h abd cxx-pretty-print.h
+       (struct c_pretty_print_info): Document.  Add new fields.
+       (pp_type_specifier_seq): Rename from pp_c_type_specifier.
+       (pp_direct_abstract_declarator): New macro.
+       (pp_ptr_operator): Likewise.
+       (pp_simple_type_specifier): Likewise.
+       (pp_expression): Likewise.
+       (pp_parameter_list): Rename from pp_parameter_declaration.
+       * c-pretty-print.c (pp_c_whitespace): Now a function.
+       (pp_c_left_paren): Likewise.
+       (pp_c_right_paren): Likewise.
+       (pp_c_dot): Likewise.
+       (pp_c_ampersand): Likewise.
+       (pp_c_arrow): Likewise.
+       (pp_c_semicolon): Likewise.
+       (pp_c_type_cast): New function.
+       (pp_c_space_for_pointer_operator): Likewise.
+       (pp_c_call_argument_list): Likewise.
+       (pp_c_cv_qualifier): Adjust prototype.
+       (pp_c_type_qualifier_list): Likewise.
+       (pp_c_pointer): Likewise.  Handle REFERENCE_TYPE here.
+       (pp_c_type_specifier): Rename from pp_c_simple_type_specifier.
+       Adjust to follow standard grammar.
+       (pp_c_specifier_qualifier_list): Adjusr prototype.  Handle
+       REFERENCE_TYPE.  Tidy.
+       (pp_c_parameter_type_list): Adjust prototype.  Tidy.
+       (pp_c_parameter_declaration): Remove.
+       (pp_c_abstract_declarator): Adjust prototype.
+       (pp_c_direct_abstract_declarator): Likewise.
+       (pp_c_type_id): Likewise.
+       (pp_c_storage_class_specifier): Likewise. 
+       (pp_c_function_specifier): Likewise.
+       (pp_c_declaration_specifiers): Likewise.
+       (pp_c_direct_declarator): Likewise.
+       (pp_c_declarator): Likewise.
+       (pp_c_declarator): Likewise.
+       (pp_c_declaration): Likewise.
+       (pp_c_attributes): Likewise.  Tidy.
+       (pp_c_function_definition): Adjust prototype.
+       (pp_c_char): Likewise.
+       (pp_c_string_literal): Likewise.
+       (pp_c_integer_constant): Likewise.
+       (pp_c_character_constant): Likewise.
+       (pp_c_bool_constant): Likewise.
+       (pp_c_enumeration_constant): Likewise.
+       (pp_c_floating_constant): Likewise.
+       (pp_c_constant): Likewise.
+       (pp_c_identifier): Likewise.
+       (pp_c_primary_expression): Likewise.  Remove TARGET_EXPR case.  Tidy.
+       (pp_c_initializer): Adjust prototype.
+       (pp_c_init_declarator): Likewise.
+       (pp_c_initializer_list): Likewise.
+       (pp_c_id_expression): Likewise.
+       (pp_c_postfix_expression): Likewise.
+       (pp_c_expression_list): Likewise.
+       (pp_c_unary_expression): Likewise.
+       (pp_c_cast_expression): Likewise.
+       (pp_c_multiplicative_expression): Likewise.
+       (pp_c_additive_expression): Likewise.
+       (pp_c_shift_expression): Likewise.
+       (pp_c_relational_expression): Likewise.
+       (pp_c_equality_expression): Likewise.
+       (pp_c_and_expression): Likewise.
+       (pp_c_exclusive_or_expression): Likewise.
+       (pp_c_inclusive_or_expression): Likewise.
+       (pp_c_logical_and_expression): Likewise.
+       (pp_c_logical_or_expression): Likewise.
+       (pp_c_conditional_expression): Likewise.
+       (pp_c_assignment_expression): Likewise.
+       (pp_c_expression): Likewise.  Tidy.
+       (pp_c_statement): Likewise.  Document.
+       (pp_c_pretty_printer_init): Adjust prototype. Tidy.
+
+       * c-lang.c (c_initialize_diagnostics): Update.
+       * c-common.h (strip_pointer_operator): Declare.
+       * c-common.c (strip_pointer_operator): Define.
+
+2003-08-25  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/8795
+       * tree.h (build_method_type_directly): Declare.
+       * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs.
+       (vector_size_helper): Likewise.
+       * tree.c (build_method_type_directly): New function.
+       (build_method_type): Use it.
+
+2003-08-24  Richard Henderson  <rth@redhat.com>
+
+       * config/i386.i386.c (ix86_return_in_memory): Reformat.  Return true
+       for 16-byte vector modes if sse not enabled; warn for abi change.
+       (ix86_value_regno): Only return xmm0 for 16-byte vector types.
+
+2003-08-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * rtlanal.c (may_trap_p): Simplify an integer comparison.
+
+2003-08-24  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * fixinc/inclhack.def (AAB_svr4_replace_byteorder):  Enhance
+       comment.  Enable for DYNIX/ptx systems (when they switch to
+       regular fixincludes).
+       * fixinc/fixincl.x: Regenerate.
+
+2003-08-23  Jason Eckhardt  <jle@rice.edu>
+
+       * config/i860/t-i860: New.
+       * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file.
+
+2003-08-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-decl.c (pushdecl): Only put decls which finish_struct will do
+       something about onto incomplete chain.
+       (finish_struct): If not removing type from incomplete
+       list, update prev.
+
+Wed Aug 20 12:08:55 CEST 2003  Jan Hubicka  <jh@suse.cz>
+
+       PR target/11369
+       * i386.c (ix86_expand_carry_flag_compare): Validate operand.
+
+       PR target/11031
+       * i386.c (const_0_to_3_operand, const_0_to_7_operand,
+       const_0_to_15_operand, const_0_to_255_operand): New predicates.
+       * i386.h (PREDICATE_CODES): Add these.
+       * i386.c (pinsrw and pextrw patterns): Use them.
+
+       PR target/10984
+       * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes.
+
+       PR target/8869
+       * expr.c (convert_modes): Deal properly with integer to vector
+       constant conversion.
+
+       PR target/8871
+       * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives.
+
+2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.h (LOAD_EXTEND_OP): Remove.
+       * config/s390/s390.md ("movhi"): New expander; old insn renamed to ...
+       ("*movhi"): ... this.
+       ("movqi", "*movqi"): Likewise.
+       ("movqi_64"): Remove.
+       ("*zero_extendhisi2_31"): Change predicate to s_operand.
+
+2003-08-23  Dale Johannesen  <dalej@apple.com>
+       * calls.c (emit_library_call_value_1): Fix obvious errors in
+       arguments to emit_group_store.
+
+2003-08-23  Jason Eckhardt  <jle@rice.edu>
+
+       * calls.c (emit_library_call_value_1): Remove code related
+       to LIBGCC_NEEDS_DOUBLE.
+       * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE.
+       * doc/tm.texi: Likewise.
+       * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro.
+
+2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove.
+
+2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64
+       as well.  Put memory references in the varargs alias set.
+       (mips_expand_prologue): Remove varargs handling from here.
+
+2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
+       s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list,
+       s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax
+       for function pointer calls.
+       * config/s390/s390.md ("*negdi2_31"): Likewise.
+
+2003-08-23  Roger Sayle  <roger@eyesopen.com>
+
+       * combine.c (apply_distributive_law): Correct comment.
+
+2003-08-23  Jason Eckhardt  <jle@rice.edu>
+
+       * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE.
+
+2003-08-22  Jason Eckhardt  <jle@rice.edu>
+
+       * config/i860/i860.c (i860_build_va_list): Create the va_decl
+       declaration.  Document the va_list structure.
+       (i860_va_start): Initialize the va_list structure.
+       (i860_va_arg): Rewrite completely.
+       * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define.
+       * config/i860/varargs.asm: Do not allocate or initialize
+       a va_list.  Return the address of the register save area.
+
+2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/iq2000/iq2000.c: Fix comment typos.
+       * config/iq2000/iq2000.md: Likewise.
+
+2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/iq2000/iq2000.c: Follow spelling conventions.
+       * config/iq2000/iq2000.h: Likewise.
+       * config/mn10300/mn10300.c: Likewise.
+
+2003-08-22  Jason Eckhardt  <jle@rice.edu>
+
+       * config/i860/i860.c (output_move_double): Don't set latehalf
+       to zero for CONST_INT (since it could be, e.g., -1).
+
+       * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro...
+       (MODSI3_LIBCALL): ...with this one.
+       (UREMSI3_LIBCALL): Replace this macro...
+       (UMODSI3_LIBCALL): ...with this one.
+
+2003-08-22  Jason Eckhardt  <jle@rice.edu>
+
+       * config/i860/i860-protos.h (output_delay_insn): Remove prototype.
+       (output_delayed_branch): Remove prototype.
+       (single_insn_src_p): Remove prototype.
+       * config/i860/i860.c (single_insn_src_p): Remove function.
+       (output_delayed_branch): Remove function.
+       (output_delay_insn): Remove function.
+       (va_start): Remove unconditional test and dead code, re-format.
+       Fix coding style and spelling problems in various comments.
+       * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant...
+       (blockage pattern): ...and use it here.
+       (all define_peephole patterns related to delayed branches): Remove.
+       Fix coding style and spelling problems in various comments.
+
+2003-08-22  Jason Eckhardt  <jle@rice.edu>
+
+       * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'.
+       Remove all uses of the PARAMS macro.  Remove superflous prototypes.
+       Convert all function definitions from traditional to ISO C90 syntax.
+       * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC'
+       with 'GCC'.  Remove all uses of the PARAMS macro.
+       * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'.
+       * config/i860/i860.md: Likewise.
+       * config/i860/sysv4.h: Likewise.
+       * config/i860/varargs.asm: Likewise.
+
+2003-08-22  Jason Eckhardt  <jle@rice.edu>
+
+       * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p'
+       argument.
+       (tdesc_section): Add prototype.
+       Update copyright dates.
+       * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h.
+       (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file.
+       (TARGET_ASM_FUNCTION_EPILOGUE): Likewise.
+       (targetm): Likewise.
+       (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC
+       for '%d' where necessary.
+       (i860_va_start): Remove 'stdarg_p' argument.  Make conditional checks
+       on 'stdarg_p' unconditional.  Divide current_function_args_info.ints
+       by UNITS_PER_WORD when referencing (likewise for .floats).
+       (I860_SVR4_VARARGS): Rename...
+       (I860_SVR4_VA_LIST): ...to this.
+       Call build() with 't' rather than 'field'.
+       (i860_rtx_costs): New function.
+       (TARGET_RTX_COSTS): Define.
+       (i860_internal_label): New function.
+       (TARGET_ASM_INTERNAL_LABEL): Define.
+       (i860_file_start): New function.
+       Update copyright dates.
+       * config/i860/i860.h (CPP_PREDEFINES): Remove.
+       (TARGET_CPU_CPP_BUILTINS): Define.
+       (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument.
+       (CONST_COSTS): Remove (and move code to i860_rtx_costs).
+       (ASM_FILE_START): Remove.
+       (ASM_FILE_START_1): Remove.
+       (ASM_GLOBALIZE_LABEL): Remove.
+       (ASM_OUTPUT_INTERNAL_LABEL): Remove.
+       (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL
+       with targetm.asm_out.internal_label.
+       Update copyright dates.
+       * config/i860/sysv4.h (USER_LABEL_PREFIX): Define.
+       (CPP_PREDEFINES): Remove.
+       (TARGET_OS_CPP_BUILTINS): Define.
+       (GLOBAL_ASM_OP): Define.
+       (ASM_FILE_START): Remove.
+       (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
+       (TARGET_ASM_FILE_START): Define.
+       Update copyright dates.
+
+2003-08-22  Jason Eckhardt  <jle@rice.edu>
+
+       * gcc/config.gcc (i860-*-sysv4*): Add target.
+       * config/i860/i860-protos.h: New.
+       * config/i860/i860.c: New.
+       * config/i860/i860.h: New.
+       * config/i860/i860.md: New.
+       * config/i860/sysv4.h: New.
+       * config/i860/varargs.asm: New.
+       * config/i860/x-sysv4: New.
+
+2003-08-22  Jason Eckhardt  <jle@rice.edu>
+
+       * config/pa/pa.c: Replace 'GNU CC' with 'GCC'.
+       Remove all uses of PARAMS macro.
+       Convert all function definitions to ISO C90 syntax.
+       * config/pa/elf.h: Replace 'GNU CC' with 'GCC'.
+       * config/pa/fptr.c: Likewise.
+       * config/pa/lib2funcs.asm: Likewise.
+       * config/pa/long_double.h: Likewise.
+       * config/pa/milli64.S: Likewise.
+       * config/pa/pa-64.h: Likewise.
+       * config/pa/pa-hpux.h: Likewise.
+       * config/pa/pa-hpux10.h: Likewise.
+       * config/pa/pa-hpux11.h: Likewise.
+       * config/pa/pa-linux.h: Likewise.
+       * config/pa/pa-modes.def: Likewise.
+       * config/pa/pa-osf.h: Likewise.
+       * config/pa/pa-pro-end.h: Likewise.
+       * config/pa/pa.md: Likewise.
+       * config/pa/pa32-linux.h: Likewise.
+       * config/pa/pa64-linux.h: Likewise.
+       * config/pa/pa64-hpux.h: Likewise.
+       * config/pa/pa64-regs.h: Likewise.
+       * config/pa/quadlib.c: Likewise.
+       * config/pa/rtems.h: Likewise.
+       * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove
+       all uses of the PARAMS macro. 
+       * config/pa/pa.h: Likewise.
+       * config/pa/som.h: Likewise.
+
+        * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'.
+        Remove all uses of PARAMS macro.
+        Convert all function definitions to ISO C90 syntax.
+       * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'.
+        Remove all uses of PARAMS macro.
+       * config/iq2000.h: Remove all uses of PARAMS macro.
+        * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'.
+
+2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390-protos.h (s390_output_pool_entry): Declare.
+       * config/s390/s390.c (gen_consttable): Remove.
+       (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns.
+       (s390_output_pool_entry): New function.
+       * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI, 
+       UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI, 
+       UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ...
+       (UNSPECV_POOL_ENTRY): ... this new constant.
+       ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di",
+       "consttable_ti", "consttable_sf", "consttable_df"): Remove ...
+       ("*pool_entry"): ... and replace by this new insn.
+       ("literal_pool_31"): Do not emit anchor label if pool empty.
+
+       * config/s390/s390.c (struct machine_function): Add save_return_addr_p.
+       (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p.
+       (s390_fixup_clobbered_return_reg): Remove.
+       (s390_reorg): Don't call s390_fixup_clobbered_return_reg.
+       (s390_return_addr_rtx): Always retrieve return address from save area
+       slot.  Use save_return_addr_p to force slot to be filled.
+       (s390_emit_prologue): Remove has_hard_reg_initial_val test.
+
+2003-08-22  Chris Demetriou  <cgd@broadcom.com>
+
+       * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines.
+       (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1.
+       * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work
+       around SB-1 errata if TARGET_FIX_SB1 is set.
+       (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise.
+       * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1.
+
+2003-08-22  Roger Sayle  <roger@eyesopen.com>
+
+       * hashtable.c (ht_expand): Avoid calculating rehash for the common
+       case that the first probe hits an empty hash table slot.
+
+2003-08-22  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0.
+
+2003-08-22  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ...
+       (ptr_extend_plus_imm): ... this.
+       * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4
+       optimization in C++.
+       (ia64_output_mi_thunk): Support ILP32 mode.
+
+2003-08-22  bernardo innocenti  <bernie@develer.com>
+
+       * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused
+       function.
+       * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise.
+
+2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/i386/i386.c (const_int_1_operand): Simplify an
+       integer comparison.
+
 2003-08-22  Alan Modra  <amodra@bigpond.net.au>
 
        * config/fp-bit.c: Specify config/ dir for include of fp-bit.h.