X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=a4aced01cdd08f13b188390cf060c8fa22167602;hb=46d1d560e93eb52b85884a6c478d08933b2b010e;hp=fea868a638e6c98073b3e7880a68d3caa98e8f5c;hpb=251102fec8348b733b9f8e0b2b3e54f9b8a19f7c;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fea868a638e..a4aced01cdd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,801 @@ +2005-03-02 Devang Patel + + PR tree-optimization/18815 + * tree-if-conv.c (combine_blocks): Adjust loop header edges for + loops with zero exit edges. + +2005-03-02 Kazu Hirata + + * cfg.c (connect_src, connect_dest, disconnect_src, + disconnct_dest): New. + (unchecked_make_edge, remove_edge, redirect_edge_succ, + redirect_edge_pred): Use the new functions. + + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call + free_dominance_info only when needed. + +2005-03-02 David Edelsohn + + PR target/20276 + * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo. + (reg_or_sub_cint64_operand): Same. + +2005-03-02 Jeff Law + + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of + CFG_ALTERED in the main DOM iteration loop. + +2005-03-02 Mark Mitchell + + PR c++/19916 + * varasm.c (initializer_constant_valid_p): Allow conversions + between OFFSET_TYPEs. Tidy. + +2005-03-02 Hans-Peter Nilsson + + * config/cris/cris.md ("return"): Remove epilogue delay list + sanity check. + +2005-03-02 Daniel Jacobowitz + + * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT) + for Thumb. + * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise. + +2005-03-02 Kazu Hirata + + * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c, + loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def, + config/m68k/m68k.c, config/mips/mips.h, + config/rs6000/rs6000-protos.h, doc/contrib.texi, + doc/include/gcc-common.texi: Update copyright. + + PR middle-end/18029 and PR middle-end/18030 + * expr.c (optimize_bitfield_assignment_op): Add a special case + to handle BIT_IOR_EXPR and BIT_XOR_EXPR. + + * fold-const.c (fold_unary): New. + (fold): Call fold_unary on unary expressions. + +2005-03-02 Richard Guenther + + * cgraph.h (struct cgraph_edge): Add prev_caller and + prev_callee fields. + (cgraph_node_remove_callees): Export. + * cgraph.c (cgraph_create_edge): Initialize prev_caller + and prev_callee. + (cgraph_edge_remove_callee): New function. + (cgraph_edge_remove_caller): Likewise. + (cgraph_remove_edge): Use. + (cgraph_redirect_edge_callee): Likewise. + (cgraph_node_remove_callees): New function. + (cgraph_node_remove_callers): Likewise. + (cgraph_remove_node): Use. + * tree-optimize.c (tree_rest_of_compilation): Use + cgraph_node_remove_callees instead of manual loop. + * cgraphunit.c (cgraph_finalize_function): Likewise. + (cgraph_expand_function): Likewise. + (cgraph_remove_unreachable_nodes): Likewise. + +2005-03-02 Joseph S. Myers + + PR c/8927 + * c-tree.h (undeclared_variable, build_external_ref): Add extra + argument. + * c-decl.c (undeclared_variable): Take location as argument. + * c-typeck.c (build_external_ref): Likewise. + * c-parser.c (c_parser_postfix_expression): Pass location of + identifier to build_external_ref. + +2005-03-01 David Edelsohn + + * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not + CCEQ mode for branch_positive_comparison_operator test. + * config/rs6000/predicates (branch_comparison_operator): Revert to + define_predicate. + (scc_comparison_operator): Same. + (branch_positive_comparison_operator): Same. + +2005-03-01 Hans-Peter Nilsson + + * config/cris/cris.c (cris_eligible_for_epilogue_delay) + (cris_delay_slots_for_epilogue): Remove. + (save_last): Move into cris_target_asm_function_epilogue. + (cris_target_asm_function_epilogue): Remove tests for file being + NULL. + * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay) + (cris_delay_slots_for_epilogue): Remove prototypes. + * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE) + (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define. + +2005-03-01 David Edelsohn + + * config/rs6000/predicates.md (branch_comparison_operator): Change + to define_special_predicate. + (scc_comparison_operator): Same. + (branch_positive_comparison_operator): Same. + +2005-03-01 Daniel Berlin + + * Makefile.in (tree-ssa-sink.o): New. + (OBJS-common): Add tree-ssa-sink.o. + * common.opt: Add -ftree-sink + * opts.c (decode_options): flag_tree_sink is set at O1 or higher. + * timevar.def (TV_TREE_SINK): new timevar. + * tree-flow.h (is_hidden_global_store): Prototype. + * tree-optimize.c (init_tree_optimization_passes): Add + pass_sink_code. + * tree-pass.h (pass_sink_code): New. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking + for non-obvious global store store to is_hidden_global_store, and + call that new function. + * tree-ssa-sink.c: New file. + * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink. + * doc/passes.texi: Document forward store motion. + * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test + * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test + * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test + * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test + +2005-03-01 Per Bothner + + * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION + and we have a non-zero column-number, add it to the message. + Also factor out the diagnostic_kind_text. + +2005-03-01 Zdenek Dvorak + + * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find, + flow_loop_pre_header_scan, flow_loop_pre_header_find, + flow_loop_scan): Removed. + (flow_loop_dump): Do not dump removed fields. + (flow_loop_free): Do not free removed fields. + (flow_loops_find): Flags argument removed. Do not call flow_loop_scan. + (loop_exit_edge_p): New function. + * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges, + num_pre_header_edges, entry_edges, num_entries, exit_edges, + num_exits, exits_doms. + (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES, + LOOP_EDGES, LOOP_ALL): Removed. + (flow_loop_scan): Declaration removed. + (loop_exit_edge_p, mark_loop_exit_edges): Declare. + * cfgloopmanip.c (create_loop_notes): Do not pass flags to + flow_loops_find. + * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c. + (if_convert): Call flow_loops_find and flow_loops_free + when calling mark_loop_exit_edges. + * cfgloopanal.c (mark_loop_exit_edges): Moved from + ifcvt.c. Removed the flow_loops_find, flow_loops_free and + free_dominance_info calls. + * loop-init.c (flow_loops_find): Ditto. + * passes.c (rest_of_handle_branch_prob): Ditto. + * lambda-code.c (perfect_nestify): Do not call flow_loops_find. + * loop-unroll.c (analyze_insns_in_loop): Do not use + EDGE_LOOP_EXIT. + * predict.c (predict_loops): Do not call flow_loop_scan. + Use get_loop_exit_edges. + (tree_estimate_probability): Do not pass flags to flow_loops_find. + * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument. + Do not use EDGE_LOOP_EXIT. + (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop + to bb_with_exit_edge_p. + (if_convertible_loop_p): Do not call flow_loop_scan. Use + loop->single_exit. Do not use EDGE_LOOP_EXIT. Pass loop + to bb_with_exit_edge_p. + (combine_blocks): Pass loop to bb_with_exit_edge_p. Do not use + EDGE_LOOP_EXIT. + * tree-loop-linear.c (linear_transform_loops): Do not call + flow_loop_scan. Use loop->single_exit. + * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit. + (vect_analyze_loop_form): Do not call flow_loop_scan. + * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use + loop->single_exit. + (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and + loop->single_exit. + * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop, + slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p, + slpeel_tree_duplicate_loop_to_edge_cfg, + slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge): + Use loop_preheader_edge and loop->single_exit. Do not call + flow_loop_scan. + +2005-03-01 Nick Clifton + + * config/arm/arm.c (thumb_find_work_register): Check all of the + argument registers to see if they are free, and a couple of + special cases where the last argument register but can be proved + to be available during the function's prologue. + (print_multi_reg, arm_compute_save_reg0_reg12_mask, + output_return_instruction, emit_multi_reg_push, thumb_pushpop, + thumb_unexpanded_epilogue): Use unsigned long as the type for the + register bit-mask. + (thumb_compute_save_reg_mask): Likewise. Also use + thumb_find_work_register() to ensure that there is agreement about + which work register is going to be used in the prologue. + (thumb_output_function_prologue): Use unsigned long as the type + for the register bit-mask. Also delay pushing the link register if + other high registers are going to be pushed. + (thumb_compute_save_reg_mask, emit_multi_reg_push, + print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove + redundant prototypes. + +2005-02-28 John David Anglin + + 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 + + * 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 + Stan Shebs + + 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 + + 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 + + * config/mips/mips.h (NO_PROFILE_COUNTERS): Define. + +2005-02-28 Joseph S. Myers + + 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 + + * 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 + + * 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 + + 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 + + PR ada/15977 + * doc/contrib.texi: List contributors for Ada front end + +2005-02-28 Paolo Bonzini + + * simplify-rtx.c (simplify_unary_operation_1, + simplify_const_unary_operation): New, extracted from... + (simplify_unary_operation): ... this one. + (simplify_binary_operation_1, + simplify_const_binary_operation): New, extracted from... + (simplify_binary_operation): ... this one. + * rtl.h (simplify_const_unary_operation, + simplify_const_binary_operation): Add prototypes. + +2005-02-28 Julian Brown + + * config/elfos.h: Revert my patch from 2005-02-25 since it broke + building libjava and caused PR regression/20228. + +2005-02-28 Paolo Bonzini + + PR bootstrap/17383 + * Makefile.in (host_subdir): New. + (build_objdir): New. Replace ../$(build_subdir) with it throughout. + * configure: Regenerate. + +2005-02-27 Zack Weinberg + + * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux + * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the + installation directory first. + +2005-02-28 Hans-Peter Nilsson + + PR target/19065. + * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)), + not including (reg). Do not check for reg being CRIS_PC_REGNUM. + (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'. + * config/cris/cris.md: Tweak comments referring to Q. + ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi") + ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3") + ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3") + ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3") + ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"): + Insert spaces in constraints to align alternatives vertically for + readability. + ("cmphi"): Ditto. Add separate alternative for operand 0 "r", + operand 1: "M". + +2005-02-27 John David Anglin + + PR rtl-optimization/17728 + * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for + operand 0 from general_operand to move_dest_operand. + +2005-02-26 John David Anglin + + * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw + instead of trying to save and restore TREE_SYMBOL_REFERENCED. + * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define. + (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED. + +2005-02-26 Nathanael Nerode + + * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada. + * configure: Regenerate. + * libada-mk.in: Remove CC; rename + cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada. + +2005-02-26 Andrew Pinski + + PR tree-opt/20188 + * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST + for the lhs, also walk over the tree. Likewise for rhs. + +2005-02-26 Zdenek Dvorak + + * tree-ssa-dom.c (simple_iv_increment_p): New function. + (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations): + Do not propagate value of iv before increment over the increment. + +2005-02-25 Joseph S. Myers + + * c-parser.c: New file. + * c-parse.in: Remove. + * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y): + Remove. + (c-parser.o): Add dependencies. + (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean, + maintainer-clean, TAGS): Update. + * c-config-lang.in (gtfiles): Update. + * gengtype-lex.l: Don't handle "@@". + * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt, + objc_build_synchronized, objc_begin_try_stmt, + objc_begin_catch_clause, objc_finish_catch_clause, + objc_build_finally_clause, objc_finish_try_stmt): New. + * c-tree.h (struct c_declspecs): Add declspecs_seen_p and + type_seen_p. + (c_parse_init): Update comment. + * c-decl.c (c_init_decl_processing): Update comment. + (build_null_declspecs, declspecs_add_qual, declspecs_add_type, + declspecs_add_scspec, declspecs_add_attrs): Initialize and update + new c_declspecs members. + +2005-02-25 Julian Brown + + * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK + from being used for symbols with vague linkage when + HAVE_GAS_COMDAT_GROUP is true. + +2005-02-25 Mark Mitchell + + * doc/include/gcc-common.texi (version-GCC): Update to 4.1. + +2005-02-25 Steve Ellcey + + PR target/19930 + * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document. + (LIBGCC2_HAS_DF_MODE): New. + (LIBGCC2_HAS_XF_MODE): New. + (LIBGCC2_HAS_TF_MODE): New. + * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE. + (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE. + * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE. + (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE. + (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE. + * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat + and add _fixtfdi, _fixunstfdi, _floatditf + * lib1funcs.asm: Remove L__compat. Add L_fixtfdi, + L_fixunstfdi, L_floatditf. + * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define. + (LIBGCC2_HAS_TF_MODE): Define. + +2005-02-25 Diego Novillo + + PR tree-optimization/20204 + * tree-into-ssa.c (insert_phi_nodes_for): Do not use + REWRITE_THIS_STMT markers on PHI nodes. + (rewrite_initialize_block): Likewise. + +2005-02-25 Mark Mitchell + + * version.c (version_string): Update to 4.1. + +2005-02-25 Paolo Carlini + + * doc/extend.texi (5.24 Declaring Attributes of Functions): + Clarify that the alternative way doesn't work in GNU C++. + +2005-02-25 Zdenek Dvorak + + PR tree-optimization/19937 + * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value + to the type of the induction variable. + +2005-02-25 Kaz Kojima + + PR rtl-optimization/20117 + * bb-reorder.c (duplicate_computed_gotos): Don't duplicate + the block including noncopyable insn. + +2005-02-24 Kazu Hirata + + * cse.c (delete_trivially_dead_insns): Speed up by minimizing + calls to find_reg_note. + +2005-02-24 Richard Henderson + + PR tree-opt/20127 + * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from + the type. + +2005-02-24 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for + vector types if to use base reg for misaligned non-word ld/std. + +2005-02-24 Hans-Peter Nilsson + + PR target/14619 + * config/cris/cris.c (cris_target_asm_function_prologue): Create + dwarf2 label manually and put it after, not before the prologue. + +2005-02-24 David Edelsohn + + PR target/19019 + * reload.c (operands_match_p): Only increment register number for + SCALAR_INT_MODE_P modes in multiple hard registers. + + * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints. + Fix formatting. + +2005-02-24 Volker Reichelt + + * ChangeLog.5: Fix log message typo(s). + * ChangeLog.7: Likewise. + * ChangeLog.tree-ssa: Likewise. + * cfgexpand.c: Fix comment typo(s). + * conflict.c: Likewise. + * defaults.h: Likewise. + * dwarf2out.c: Likewise. + * gcse.c: Likewise. + * ggc-page.c: Likewise. + * tree-eh.c: Likewise. + * tree-ssa-dom.c: Likewise. + +2005-02-24 Jakub Jelinek + + PR target/19019 + * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects. + * config/rs6000/darwin-ldouble.c: Only use the .symver directives + if SHARED is defined. + + PR target/20196 + * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber, + allow splitting only if operands 0 and 3 don't overlap. + +2005-02-24 Richard Henderson + + PR middle-end/19953 + * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New. + (fold_builtin_1): Call them. + * fold-const.c (fold_complex_mult_parts): Split out from ... + (fold_complex_mult): ... here. Fix typo in both imaginary case. + (fold_complex_div_parts, fold_complex_div): New. + (fold): Use them. + * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare. + +2005-02-24 Richard Kenner + + * tree-ssa-ccp.c (visit_assignment): Verify that result of + VIEW_CONVERT_EXPR is_gimple_min_invariant. + + * print-tree.c (print_node_brief): Print LABEL_DECL_UID. + (print_node): Likewise. + Print TYPE_SIZES_GIMPLIFIED. + +2005-02-24 Hans-Peter Nilsson + + * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3") + ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input + operands as commutative in constraints. + +2005-02-24 Diego Novillo + + * tree-into-ssa.c: Re-organize internal functions. + +2005-02-24 Richard Henderson + + PR middle-end/18902 + * c-opts.c (c_common_post_options): Set flag_complex_method to 2 + for c99. + * common.opt (fcx-limited-range): New. + * opts.c (set_fast_math_flags): Set flag_cx_limited_range. + * toplev.c (flag_complex_method): Initialize to 1. + (process_options): Set flag_complex_method to 0 if + flag_cx_limited_range. + * doc/invoke.texi (-fcx-limited-range): New. + +2005-02-24 Kazu Hirata + + * cse.c (delete_trivially_dead_insns): Speed up by using + NEXT_INSN and PREV_INSN directly instead of next_real_insn and + prev_real_insn. + +2005-02-24 Andrea Tarani + + * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf + functions when -mid-shared-library is being used. + +2005-02-23 Daniel Jacobowitz + + * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove. + (LINK_LIBGCC_SPECIAL_1): Don't mention it. + * gcc.c: Don't check for LINK_LIBGCC_SPECIAL. + * system.h: Poison LINK_LIBGCC_SPECIAL. + +2005-02-23 James E Wilson + + * gengtype.c (note_insn_name): Make 1 element larger. + +2005-02-23 Roger Sayle + + PR target/20018 + PR rtl-optimization/20097 + * simplify-rtx.c (simplify_relational_operation_1): Avoid creating + BImode SUBREGs of SImode registers which confuse the ia64 backend. + +2005-02-23 David Edelsohn + + * t-aix43 (SHLIB_INSTALL): Create directory for shared library. + * t-aix52 (SHLIB_INSTALL): Same. + +2005-02-23 Kazu Hirata + + * genpreds.c: Update copyright. + +2005-02-23 Michael Beach + + PR target/20159 + * config/sparc/t-elf (startup files): Assemble with CPP. + +2005-02-23 Paolo Bonzini + + * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands. + (write_predicate_expr): Likewise. + +2005-02-22 Diego Novillo + + PR tree-optimization/20100 + PR tree-optimization/20115 + * tree-optimize.c (init_tree_optimization_passes): Remove + pass_maybe_create_global_var. + * tree-pass.h (pass_maybe_create_global_var): Remove. + * tree-ssa-alias.c (aliases_computed_p): Declare. + (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND. + (count_calls_and_maybe_create_global_var): Remove. + (pass_maybe_create_global_var): Remove. + (init_alias_info): Do not declare aliases_computed_p. + (maybe_create_global_var): If the function contains no + call-clobbered variables and a mix of pure/const and regular + function calls, create .GLOBAL_VAR. + Mark all call-clobbered variables for renaming. + (merge_pointed_to_info): Update comment. + (add_pointed_to_var): Likewise. + (is_escape_site): Likewise. + Accept struct alias_info * instead of size_t *. + Update all users. + Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND + as necessary. + * tree-ssa-operands.c (get_call_expr_operands): If + ALIASES_COMPUTED_P is false, do not add call-clobbering + operands. + * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false. + (delete_tree_ssa): Likewise. + +2005-02-22 James E Wilson + + * toplev.c (backend_init): Don't call init_adjust_machine_modes here. + (do_compile): Do call it here. + +2005-02-22 Kazu Hirata + + PR rtl-optimization/20017. + * passes.c (rest_of_handle_combine, rest_of_handle_cse, + rest_of_handle_cse2, rest_of_handle_gcse): Call + delete_dead_jumptables immediately before calling cleanup_cfg. + +2005-02-22 Devang Patel + + PR 19952 + * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip + all labels + +2005-02-22 David Edelsohn + + * config/rs6000/aix.h (WINT_TYPE): Define. + +2005-02-22 Stan Shebs + + * config/rs6000/rs6000.c (rs6000_override_options): Default to + natural alignment for 64-bit Darwin. + (rs6000_parse_alignment_option): Warn about uses of -malign-power + on 64-bit Darwin. + * doc/invoke.texi: Document this. + +2005-02-22 DJ Delorie + + * c-common.c (c_common_type_for_mode): Pass the mode's precision + to make_[un]signed_type, not the mode itself. + +2005-02-22 Kazu Hirata + + * cfg.c (cached_make_edge): Call make_edge if edge cache is + not available. Use tail calls wherever possible. + (make_edge): Call unchecked_make_edge to create an edge. + + * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove. + (coalesce_ssa_name): Don't check for + SSANORM_USE_COALESCE_LIST. + (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST. + +2005-02-22 Diego Novillo + + * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ... + (rewrite_into_ssa): ... here. + +2005-02-21 Alexandre Oliva + + PR tree-optimization/19786 + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one + tag to another's may-alias bitmap when adding to the other's list. + +2005-02-21 DJ Delorie + + * tree-ssa-loop-ivopts.c (computation_cost): Start register + numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard + registers in unsupported ways. + * expmed.c (init_expmed): Likewise. + +2005-02-21 Stan Cox + + * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31. + 2005-02-21 Kazu Hirata * tree-cfg.c (fold_cond_expr_cond): New.