OSDN Git Service

PR target/19819
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index b813efe..fe0ad78 100644 (file)
@@ -1,4 +1,175 @@
-2005-02-28   <bosch@gnat.com>
+2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
+
+       PR target/19819
+       * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
+       and after reload in REG+REG indexed addresses without REG_POINTER
+       set in the base and not set in the index.
+
+2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
+       Don't undefine here.
+       (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
+       (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
+       (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
+       (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
+       LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
+       Delete.
+       * config.gcc (sh*-*-linux*): Use config/linux.h.
+
+2005-02-28  Dale Johannesen  <dalej@apple.com>
+           Stan Shebs  <shebs@apple.com>
+
+       Rewrite of 64-bit Darwin structure-by-value pass/return.
+       * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
+       intoffset, use_stack, named.
+       * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
+       (rs6000_darwin64_record_arg_advance_flush):  New.
+       (rs6000_darwin64_record_arg_advance_recurse): New.
+       (rs6000_darwin64_record_arg_flush):  New.
+       (rs6000_darwin64_record_arg_recurse):  New.
+       (rs6000_darwin64_record_arg):  New.
+       (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
+       (function_arg_boundary):  Handle 128-bit aligned structs.
+       (function_arg_advance):  Rewrite darwin64 struct handling.
+       (function_arg):  Call rs6000_darwin64_record_arg.
+       (function_arg_partial_nregs):  Handle darwin64 structs.
+       (rs6000_darwin64_function_value):  Remove.
+       (rs6000_function_value):  Call rs6000_darwin64_record_arg.
+
+2005-02-28  Roger Sayle  <roger@eyesopen.com>
+
+       PR tree-optimization/20216
+       * tree-chrec.c (tree_fold_factorial): Delete.
+       (tree_fold_binomial): Change argument list to take a return type
+       and change the type of K to unsigned int.  Rewrite to avoid explicit
+       evaluation of factorials, and (recursively) calling fold to perform
+       compile-time arithmetic.  Return NULL on (internal) overflow.
+       (chrec_evaluate): Change type of K to an unsigned int.  Avoid
+       calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
+       if any intermediate calculation overflows.
+       (chrec_apply): Update call to chrec_evaluate.
+
+2005-02-28  James E Wilson  <wilson@specifixinc.com>
+
+       * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
+
+2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/20245
+       * c-parser.c (c_parser_compound_statement): Return error_mark_node
+       instead of NULL_TREE on error.
+
+2005-02-28  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
+       (EASY_VECTOR_15_ADD_SELF): Remove.
+       (num_insns_constant_wide): Not static.
+       (validate_condition_mode): Not static.
+       (toc_relative_expr_p): Not static.
+       (legitimate_indirect_address_p): Not static.
+       (macho_lo_sum_memory_operand): Not static.
+       (invalid_e500_subreg): Not static.
+       (easy_vector_same): Not static.
+       (easy_vector_splat_const): Not static.
+       (RS6000_SYMBOL_REF_TLS_P): Remove.
+       (any_operand): Delete.
+       (any_parallel_operand): Delete.
+       (count_register_operand): Delete.
+       (altivec_register_operand): Delete.
+       (xer_operand): Delete.
+       (s8bit_cint_operand): Delete.
+       (short_cint_operand): Delete.
+       (u_short_cint_operand): Delete.
+       (non_short_cint_operand): Delete.
+       (exact_log2_cint_operand): Delete.
+       (gpc_reg_operand): Delete.
+       (cc_reg_operand): Delete.
+       (cc_reg_not_cr0_operand): Delete.
+       (reg_or_short_operand): Delete.
+       (reg_or_neg_short_operand): Delete.
+       (reg_or_aligned_short_operand): Delete.
+       (reg_or_u_short_operand): Delete.
+       (reg_or_cint_operand): Delete.
+       (reg_or_arith_cint_operand): Delete.
+       (reg_or_add_cint64_operand): Delete.
+       (reg_or_sub_cint64_operand): Delete.
+       (reg_or_logical_cint_operand): Delete.
+       (got_operand): Delete.
+       (got_no_const_operand): Delete.
+       (easy_fp_constant): Delete.
+       (easy_vector_constant): Delete.
+       (easy_vector_constant_add_self): Delete.
+       (zero_constant): Delete.
+       (zero_fp_constant): Delete.
+       (volatile_mem_operand): Delete.
+       (offsettable_mem_operand): Delete.
+       (mem_or_easy_const_operand): Delete.
+       (add_operand): Delete.
+       (non_add_cint_operand): Delete.
+       (logical_operand): Delete.
+       (non_logical_cint_operand): Delete.
+       (mask_operand): Delete.
+       (mask_operand_wrap): Delete.
+       (mask64_operand): Delete.
+       (mask64_2_operand): Delete.
+       (and64_operand): Delete.
+       (and64_2_operand): Delete.
+       (and_operand): Delete.
+       (reg_or_mem_operand): Delete.
+       (lwa_operand): Delete.
+       (symbol_ref_operand): Delete.
+       (call_operand): Delete.
+       (current_file_function_operand): Delete.
+       (input_operand): Delete.
+       (rs6000_nonimmediate_operand): Delete.
+       (rs6000_tls_symbol_ref): Delete.
+       (save_world_operation): Delete.
+       (restore_world_operation): Delete.
+       (load_multiple_operation): Delete.
+       (store_multiple_operation): Delete.
+       (vrsave_operation): Delete.
+       (mfcr_operation): Delete.
+       (mtcrf_operation): Delete.
+       (lmw_operation): Delete.
+       (stmw_operation): Delete.
+       (branch_comparison_operator): Delete.
+       (branch_positive_comparison_operator): Delete.
+       (scc_comparison_operator): Delete.
+       (trap_comparison_operator): Delete.
+       (boolean_operator): Delete.
+       (boolean_or_operator): Delete.
+       (min_max_operator): Delete.
+       * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
+       (EASY_VECTOR_15): Moved to here.
+       (EASY_VECTOR_15_ADD_SELF): Move to here.
+       (PREDICATE_CODES): Delete.
+       * config/rs6000/rs6000-protos.h: Delete predicate functions.
+       Declare functions no longer static.
+       * config/rs6000/predicates.md: New.
+       * config/rs6000/rs6000.md: Include predicates.md
+
+2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
+       (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
+       REG_ALWAYS_RETURN.
+       * cfgrtl.c (need_fake_edge_p): Likewise.
+       * combine.c (distribute_notes): Likewise.
+       * emit-rtl.c (try_split): Likewise.
+       * recog.c (peephole2_opimize): Likewise.
+       * reg-notes.def (ALWAYS_RETURN): Remove.
+       * rtl.h (LCT_ALWAYS_RETURN): Remove.
+       * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
+       * tree.h (ECF_ALWAYS_RETURN): Remove.
+
+2005-02-28  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/19874
+       * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
+       between different machine modes is never a "useless" conversion.
+
+2005-02-28  Geert Bosch  <bosch@gnat.com>
 
        PR ada/15977
        * doc/contrib.texi: List contributors for Ada front end