X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=6c7d937c6f359e92264d451c3664e191354b529b;hp=2811d2e9d7104e50bf62a480408aad5f27badf94;hb=6b34676b01e8efbfbd7ee2b8d5ee01ba3775474f;hpb=effe6d52ee49509efd46ba378da82113a7825307 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2811d2e9d71..6c7d937c6f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,926 @@ +2006-02-23 Jeff Law + + * tree.h (PHI_ARG_NONZERO): Remove. + * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO. + (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old + node to the new node. + + PR tree-optimization/26425 + * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL + min/max, then assume its varying. + +2006-02-23 Zdenek Dvorak + + PR rtl-optimization/26316 + * rtlanal.c (enum may_trap_p_flags): New. + (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore + MEM_NOTRAP_P if flags & MTP_AFTER_MOVE. + (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1. + (may_trap_after_code_motion_p): New function. + * loop-invariant.c (find_identical_invariants): Fix dump formating. + (find_invariant_insn): Use may_trap_after_code_motion_p. + * rtl.h (may_trap_after_code_motion_p): Declare. + +2006-02-23 Zdenek Dvorak + + * emit-rtl.c (immed_double_const): Cleanup. + +2006-02-23 Daniel Berlin + + Fix PR tree-optimization/26376 + * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree, + remove assert. + +2006-02-23 Jakub Jelinek + + PR middle-end/26412 + * gimplify.c (omp_add_variable): Guard variable size decl test with + DECL_SIZE (decl) check. + +2006-02-23 Richard Guenther + + PR middle-end/26439 + * tree-ssa-structalias.c (find_func_aliases): Handle complex types + like aggregate types. + +2006-02-23 Jakub Jelinek + + * configure.ac: Add --with{,out}-long-double-128 configure option. + (TARGET_DEFAULT_LONG_DOUBLE_128): New test. + * configure: Rebuilt. + * config.in: Rebuilt. + * doc/install.texi (Options specification): Document + --with-long-double-128. + + * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128] + (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. + * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128] + (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. + +2006-02-23 Aldy Hernandez + + * config/s390/s390.c (override_options): Handle + TARGET_DEFAULT_LONG_DOUBLE_128. + + * config/alpha/alpha.c (override_options): Handle + TARGET_DEFAULT_LONG_DOUBLE_128. + + * config/sparc/sparc.c (sparc_override_options): Handle + TARGET_DEFAULT_LONG_DOUBLE_128. + +2006-02-22 Daniel Jacobowitz + + * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR). + (real-install-headers-tar, real-install-headers-cpio) + (real-install-headers-cp): New targets. + +2006-02-22 Richard Sandiford + + * tree.h (variable_section): Delete. + * varasm.c (variable_section): Delete. + +2006-02-22 Paolo Bonzini + + * install.texi: Add notes on install.texi2html. + (Building in parallel): Do not use footnotes. + +2006-02-21 Aldy Hernandez + + PR libgomp/26234 + * doc/install.texi (Configuration): Document --disable-libgomp. + +2006-02-21 Geoffrey Keating + + * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New. + +2006-02-21 Alexandre Oliva + + * config/i386/sse.md (vec_extractv2df_1_sse): New. + (vec_extractv2df_0_sse): New. + +2006-02-21 Alexandre Oliva + + * defaults.h (CFA_FRAME_BASE_OFFSET): Define. + * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override. + * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document. + * dwarf2out.c (build_cfa_loc): New offset parameter. Add it + to the result of the expression. + (def_cfa_1): Adjust. + (frame_pointer_cfa_offset): Rename to... + (frame_pointer_fb_offset): ... this. Adjust all uses. + (convert_cfa_to_loc_list): Rename to... + (convert_cfa_to_fb_loc_list): ... this. New offset parameter. + Pass it on to build_cfa_loc. + (compute_frame_pointer_to_cfa_displacement): Rename to... + (compute_frame_pointer_to_fb_displacement): ... this. New + offset parameter. Use it in computation. + (gen_subprogram_die): Compute cfa_fb_offset with the new + macro, and use it to compute the fb loc list and the + displacement. + +2006-02-21 Bernd Schmidt + + * config/bfin/predicates.md (cc_operand): Delete predicate. All uses + replaced with register_operand. + * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any + non-DREG is expensive. + * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed. + * config/bfin/bfin.md (movbi): Fix constraints and template for moves + involving memory. + +2006-02-21 Joseph S. Myers + + * doc/install.texi2html: Use set -e. + +2006-02-21 Richard Sandiford + + * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS) + (ASM_OUTPUT_SHARED_LOCAL): Delete. + * doc/invoke.texi (-fshared-data): Delete. + * common.opt (fshared-data): Delete. + * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling. + (assemble_static_space): Remove #if 0 code. + * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS) + (ASM_OUTPUT_SHARED_LOCAL): Poison. + * config/cris/cris.h: Remove FIXME. + +2006-02-21 Paolo Bonzini + + * doc/sourcebuild.texi (Front End Directory): No more double-colon + hooks. + +2006-02-21 Jakub Jelinek + + PR middle-end/26379 + * combine.c (simplify_shift_const_1): Disable nested shifts + optimization for vector shifts. + +2006-02-20 Roger Sayle + + PR tree-optimization/26361 + * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR + of unsigned integer types. + +2006-02-20 Sebastian Pop + + * tree-chrec.c (eq_evolutions_p): New. + * tree-chrec.h (eq_evolutions_p): Declared. + * tree-data-ref.c: Fix formatting. + (datadep_stats, dependence_stats): New. + (gcd): Moved... + (print_direction_vector): New. + (dump_data_dependence_relation): Use print_direction_vector. + (object_analysis, create_data_ref): Handle COMPONENT_REF. + (compute_subscript_distance): Static. + (initialize_data_dependence_relation): Static. Get the number + of loops surrounding the references from the callers, and initialize + DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and + base_object_differ_p analyzers. + (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, + compute_overlap_steps_for_affine_1_2, + analyze_subscript_affine_affine): Count the classified dependences. + Print a message when a test failed. + (can_use_analyze_subscript_affine_affine): New. + (analyze_siv_subscript): Compute the data dependences on symbolic + scevs that verify can_use_analyze_subscript_affine_affine. + (chrec_steps_divide_constant_p): Returns true, false, or unknown. + (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p. + Handle symbolic scevs. + (analyze_overlapping_iterations): Let symbolic affine scevs to be + analyzed. + (subscript_dependence_tester): Moved... + (build_classic_dist_vector, build_classic_dir_vector): Don't use + lambda_vector_clear on newly allocated vectors. Get nb_loops from + DDR_SIZE_VECT instead of getting it in parameter. + (subscript_dependence_tester): ... here. Take as a parameter + loop_nest_depth. Call build_classic_dist_vector and + build_classic_dir_vector. + (compute_affine_dependence): Update subscript_dependence_tester + parameters. Update datadep_stats counters. Call + compute_subscript_distance. + (compute_self_dependence): Save the dist and dir vectors. Call + compute_subscript_distance. + (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved... + (compute_all_dependences): Reorder parameters as they were before + conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call + compute_subscript_distance. Update the use of + compute_affine_dependence and initialize_data_dependence_relation. + (find_data_references_in_loop): Handle COMPONENT_REF. + (compute_data_dependences_for_loop): Initialize dependence_stats. + Don't call build_classic_dist_vector and build_classic_dir_vector. + Update the parameters of initialize_data_dependence_relation and + compute_all_dependences. Print the statistics from datadep_stats. + (analyze_all_data_dependences): Static. Not used until the pass for + checking the data dependences is contributed. + * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p), + DEF_VEC_ALLOC_P(ddr_p,heap)): ... here. + (initialize_data_dependence_relation, compute_affine_dependence, + analyze_all_data_dependences, compute_subscript_distance): Removed. + (print_direction_vector): New. + * lambda.h (gcd): ... here. + (lambda_vector_gcd): Moved here from gcd_vector. + * lambda-code.c (gcd, gcd_vector): Removed. + (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting. + * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H. + +2006-02-20 Diego Novillo + + * ipa-type-escape.c: Tidy some comments and white space. + * tree-ssa-operands.c: Likewise. + +2006-02-20 Andrew Pinski + + PR tree-opt/25879 + * tree-pretty-print.c (debug_tree_chain): Walk the chains. + (dump_decl_name): Do not walk the decl tree chains. + * tree-pass.h (TDF_CHAIN): Remove. + +2006-02-20 Rafael Ávila de Espíndola + + * Makefile.in (C): Remove + (PROTO): Remove + (.PHONY): Remove C and PROTO + +2006-02-20 Roger Sayle + + PR middle-end/26236 + * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now + deprecated CHAR_TYPE tree code. + +2006-02-20 Paolo Bonzini + + * configure.ac (target_list): Add install-info, dvi, html. + * configure: Regenerate. + + * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in, + java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in, + treelang/Make-lang.in: Do not use double-colon rules. + +2006-02-20 Daniel Berlin + + * tree.h (struct tree_memory_tag): Add is_used_alone member. + (TMT_USED_ALONE): New macro. + * tree-pass.h (PROP_tmt_usage): New property. + (TODO_update_tmt_usage): New todo. + * tree-ssa-alias.c (updating_used_alone): New variable. + (recalculate_used_alone): New function. + (compute_may_aliases): Set updating_used_alone, call + recalculate_used_alone. + * tree-sra.c (pass_sra): Note that this pass destroys + PROP_tmt_usage, and add TODO_update_tmt_usage. + * tree-ssa-forwprop.c (pass_forwprop): Ditto. + * tree-flow.h (updating_used_alone): Prototype. + (recalculate_used_alone): Ditto. + * passes.c (execute_todo): Add code to set updating_used_alone, + and call recalculate. + * tree-ssa-operands.c (add_virtual_operand): Only append bare def + for clobber if used alone, and add assert to verify used_alone + status. + +2006-02-20 Angel Nunez Mencias + + * config/s390/s390.c (legitimize_pic_address): Assertions checking + for non tls symbols added. + (legitimize_address): Do nothing for PLUS expressions if one of the + addends is a tls symbol reference. + +2006-02-20 Paolo Bonzini + + PR bootstrap/25476 + + * Makefile.in (LDFLAGS): Define from autoconf substitution. + + * Makefile.in (BOOTSTRAPPING): New. + (quickstrap): New definition if BOOTSTRAPPING=yes. + + * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages. + * configure.ac: Substitute all_selected_languages with the languages + that were configured. For all the other variables except + lang_specs_files, include all the languages in the tree. + * configure: Regenerate. + + * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory, + if there is one. Run the commands to run fixincludes in the same + subshell. + + * doc/makefile.texi: Document new makefile targets from toplevel bootstrap. + * doc/install.texi: Document exact conventions for searching target tools. + Document --with-build-time-tools. Document toplevel bootstrap. Document + something more about building an Ada cross-compiler. Don't list GNU Make + requirements which affect all platforms. + +2006-02-19 Roger Sayle + + PR middle-end/19543 + * varasm.c (compare_constant) : Integer constants are + only equivalent if the have both the same mode and precision. + +2006-02-20 Ben Elliston + + * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE. + +2006-02-19 Roger Sayle + Steven Bosscher + + * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through + constant pool references to identify stack mode constants. + * rtlanal.c (constant_pool_constant_p): New predicate to check + whether operand is a floating point constant in the pool. + * rtl.h (constant_pool_constant_p): Prototype here. + * loop.c (scan_loop): Avoid hoisting constants from the constant + pool on STACK_REGS targets. + (load_mems): Likewise. + * loop-invariant.c (get_inv_cost): Make hoisting constant pool + loads into x87 registers expensive in terms of register pressure. + +2006-02-19 Roger Sayle + + * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to + __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined. + +2006-02-19 David Edelsohn + + * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define. + * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define. + +2006-02-19 Daniel Berlin + + * doc/invoke.texi: Document -fipa-pta. + * common.opt: Add ipa-pta option. + * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed. + (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code. + (do_ds_constraint): Ditto. + (get_constraint_for): Only add to referenced_vars if + referenced_vars exists. + (insert_into_field_list): Rewrite to do this unsorted. + (insert_into_field_list_sorted): Rename old insert_into_field_list + to this. + (create_function_info_for): Use insert_into_field_list_sorted. + (create_variable_info_for): Rewrite so it uses unsorted version, + since the field list is sorted. + (intra_create_variable_infos): Only add to referenced_vars if + referenced_vars exists. + (ipa_pta_execute): Init heapvars, and delete when done. + * passes.c (init_optimization_passes): Add call to pass_ipa_pta. + +2006-02-19 John David Anglin + + * doc/install.texi: Add missing `@samp'. + +2006-02-18 Andrew Pinski + + * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): + Use the arguments. + +2006-02-18 Mark Wielaard + + * doc/contrib.texi (Contributors): Add classpath/libgcj hackers + who added new 4.1 features, bug fixes and integration support. + +2006-02-18 David Edelsohn + + PR target/26350 + * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized + MEM for ABI_V4 pic. + +2006-02-18 Richard Sandiford + + * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE. + * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx. + (copy_insn_1): Likewise. Don't copy each field individually. + Reindent. + * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead + of RTX_SIZE. + * reload1.c (eliminate_regs): Use shallow_copy_rtx. + * rtl.c (rtx_size): Rename variable to... + (rtx_code_size): ...this. + (rtx_size): New function. + (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE. + (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually. + Reindent. + (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE. + * rtl.h (rtx_code_size): New variable. + (rtx_size): Change from a variable to a function. + (RTX_SIZE): Rename to... + (RTX_CODE_SIZE): ...this. + + PR target/9703 + PR tree-optimization/17106 + * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document. + (Anchored Addresses): New section. + * doc/invoke.texi (-fsection-anchors): Document. + * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise. + (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise. + (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise. + * hooks.c (hook_bool_mode_rtx_false): New function. + * hooks.h (hook_bool_mode_rtx_false): Declare. + * gengtype.c (create_optional_field): New function. + (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when + SYMBOL_REF_IN_BLOCK_P is true. + * target.h (output_anchor, use_blocks_for_constant_p): New hooks. + (min_anchor_offset, max_anchor_offset): Likewise. + (use_anchors_for_symbol_p): New hook. + * toplev.c (compile_file): Call output_object_blocks. + (target_supports_section_anchors_p): New function. + (process_options): Check that -fsection-anchors is only used on + targets that support it and when -funit-at-a-time is in effect. + * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL + if the decl doesn't have one. + * dwarf2out.c: Remove instantiations of VEC(rtx,gc). + * expr.c (emit_move_multi_word, emit_move_insn): Pass the result + of force_const_mem through use_anchored_address. + (expand_expr_constant): New function. + (expand_expr_addr_expr_1): Call it. Use the same modifier when + calling expand_expr for INDIRECT_REF. + (expand_expr_real_1): Pass DECL_RTL through use_anchored_address + for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant. + * expr.h (use_anchored_address): Declare. + * loop-unroll.c: Don't declare rtx vectors here. + * explow.c: Include output.h. + (validize_mem): Call use_anchored_address. + (use_anchored_address): New function. + * common.opt (-fsection-anchors): New switch. + * varasm.c (object_block_htab, anchor_labelno): New variables. + (hash_section, object_block_entry_eq, object_block_entry_hash) + (use_object_blocks_p, get_block_for_section, create_block_symbol) + (use_blocks_for_decl_p, change_symbol_section): New functions. + (get_variable_section): New function, split out from assemble_variable. + (make_decl_rtl): Create a block symbol if use_object_blocks_p and + use_blocks_for_decl_p say so. Use change_symbol_section if the + symbol has already been created. + (assemble_variable_contents): New function, split out from... + (assemble_variable): ...here. Don't output any code for + block symbols; just pass them to place_block_symbol. + Use get_variable_section and assemble_variable_contents. + (get_constant_alignment, get_constant_section, get_constant_size): New + functions, split from output_constant_def_contents. + (build_constant_desc): Create a block symbol if use_object_blocks_p + says so. Or into SYMBOL_REF_FLAGS. + (assemble_constant_contents): New function, split from... + (output_constant_def_contents): ...here. Don't output any code + for block symbols; just pass them to place_section_symbol. + Use get_constant_section and get_constant_alignment. + (force_const_mem): Create a block symbol if use_object_blocks_p and + use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS. + (output_constant_pool_1): Add an explicit alignment argument. + Don't switch sections here. + (output_constant_pool): Adjust call to output_constant_pool_1. + Switch sections here instead. Don't output anything for block symbols; + just pass them to place_block_symbol. + (init_varasm_once): Initialize object_block_htab. + (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK. + (default_asm_output_anchor, default_use_aenchors_for_symbol_p) + (place_block_symbol, get_section_anchor, output_object_block) + (output_object_block_htab, output_object_blocks): New functions. + * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro. + (TARGET_ASM_OUT): Include it. + (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro. + (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros. + (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro. + (TARGET_INITIALIZER): Include them. + * rtl.c (rtl_check_failed_block_symbol): New function. + * rtl.h: Include vec.h. Declare heap and gc rtx vectors. + (block_symbol, object_block): New structures. + (rtx_def): Add a block_symbol field to the union. + (BLOCK_SYMBOL_CHECK): New macro. + (rtl_check_failed_block_symbol): Declare. + (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags. + (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates. + (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2. + (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors. + * output.h (output_section_symbols): Declare. + (object_block): Name structure. + (place_section_symbol, get_section_anchor, default_asm_output_anchor) + (default_use_anchors_for_symbol_p): Declare. + * Makefile.in (RTL_BASE_H): Add vec.h. + (explow.o): Depend on output.h. + * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default. + (TARGET_MAX_ANCHOR_OFFSET): Likewise. + (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. + (rs6000_use_blocks_for_constant_p): New function. + +2006-02-18 John David Anglin + + * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0. + +2006-02-18 Andrew Pinski + + PR tree-opt/25680 + * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and + IMAGPART_EXPR. + +2006-02-18 Diego Novillo + + * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to + is_aliased. + Update all users. + +2006-02-18 Jakub Jelinek + + PR middle-end/26334 + * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER + instead of DECL_REGISTER. + +2006-02-18 Olivier Hainque + + PR ada/13408 + * pa.h (WIDEST_HARDWARE_FP_SIZE): Define. + +2006-02-18 Joseph S. Myers + + PR target/24837 + * config.gcc: Define UCLIBC_DEFAULT to 0 or 1. + * opth-gen.awk: Handle Var and InverseMask together. + * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc). + * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT. + (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC. + (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc + used together. + (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, + LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. + * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER, + UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER): Define. + (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER. + * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to + TARGET_GLIBC. + * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option. + * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + (TARGET_C99_FUNCTIONS): Don't define. + * config/i386/linux.h (DYNAMIC_LINKER): Rename to + GLIBC_DYNAMIC_LINKER. + (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER. + * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32, + GLIBC_DYNAMIC_LINKER64): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and + LINUX_DYNAMIC_LINKER64. + * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32, + GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32, + UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64 + and LINUX_DYNAMIC_LINKER32. + * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to + TARGET_GLIBC. + * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise. + (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, + UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, + CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. + (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32. + (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64. + * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER, + UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER): Define. + (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE. + * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32, + GLIBC_DYNAMIC_LINKER64): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and + LINUX_DYNAMIC_LINKER64. + * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER, + UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. + * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32, + GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32, + UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. + (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32. + (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64. + (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. + * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * doc/invoke.texi (-muclibc): Remove caveat about supported + targets. + +2006-02-17 Grigory Zagorodnev + + * doc/cpp.texi (__TIMESTAMP__): Document. + +2006-02-17 Roger Sayle + + PR middle-end/25600 + * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when + C is one less than the width of X (and related transformations). + * simplify_rtx.c (simplify_unary_operation_1): Transform + (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C) + depending on STORE_FLAG_VALUE, were C is one less then the + width of X. + +2006-02-17 Daniel Berlin + + Fix PR tree-optimization/26341 + * tree-ssa-operands.c (add_virtual_operand): Remove assert + about NAME_MEMORY_TAG's. + +2006-02-17 John David Anglin + + PR target/26255 + * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit + with hardware float support, and software float support. Add fcpy + alternative to hardware patterns. Add alternatives to copy between + general and floating-point registers to the 32-bit pattern. + * pa.c (pa_secondary_reload): Don't abort if reload tries to find a + secondary reload to load a QI or HI mode constant into a floating + point register. + * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode. + * pa64-regs.h (VALID_FP_MODE_P): Likewise. + +2006-02-17 Andrew Pinski + + PR target/26272 + * config/rs6000/darwin.md (load_macho_picbase_si): Add + pc to the pattern. + (load_macho_picbase_di): Likewise. + +2006-02-16 Jeff Law + + * tree-vrp.c (set_value_range_to_nonnegative): New function. + (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise. + (ssa_name_nonzero_p): Likewise. + (get_value_range): Return NULL if VRP is not running. + (extract_range_from_expr): Fallback to tree_expr_XXX_p if + VRP routines do not discover a range. + (vrp_finalize): Clear VR_VALUE to indicate VRP is not running. + * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype. + * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP. + (tree_expr_nonnegative_p): Similarly. + * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove. + (restore_nonzero_vars_to_original_value): Remove. + (unsafe_associative_fp_binop): Remove. + (tree_ssa_dominator_optimize): Remove initialization and + finalization of nonzero_vars and nonzero_vars_stack. + (dom_opt_initialize_block): No longer push marker on + nonzero_vars_stack. + (dom_opt_finalize_block): No longer call + restore_nonzero_vars_to_original_value. + (record_equivalences_from_phis): No longer look for + nonzero PHI arguments. + (cprop_into_successor_phis): No longer propagate nonzero + property into PHI arguments. Lose unused argument. Caller + updated. + (record_equivalences_from_stmt): No longer record nonzero + values for SSA_NAMEs. + (lookup_avail_expr): No longer use nonzero_vars. + + * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly + for sizetype when sizetype is unsigned. + +2006-02-16 Denis Nagorny + + PR rtl-optimization/25603 + * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note. + (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case. + * reload1.c (choose_reload_regs): Added call of regno_clobbered_p + with new meaning of SETS. + +2006-02-16 Joseph S. Myers + + PR target/20353 + PR target/24578 + PR target/24837 + * config/linux.opt: New file. + * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER): Define. + (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC. + * config.gcc (*-*-linux*): Define extra_options. + (*-*-*uclibc*): Define UCLIBC_DEFAULT. + (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi. + * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to + GLIBC_DYNAMIC_LINKER. + * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise. + (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * doc/invoke.texi (GNU/Linux Options): New section. + +2006-02-16 Eric Botcazou + + * config/sparc/sparc.md (setjmp): Rewrite. + (setjmp_32): Delete. + (setjmp_64): Likewise. + +2006-02-16 Daniel Berlin + + * tree-ssa-operands.c (access_can_touch_variable): Fix typo in + previous change. + +2006-02-16 Zdenek Dvorak + + * loop-invariant.c (invariant_for_use, check_dependencies): Fail for + read-write uses. + +2006-02-16 Zdenek Dvorak + + PR rtl-optimization/26296 + * Makefile.in (loop-invariant.c): Add except.h dependency. + * loop-invariant.c: Include except.h. + (find_invariant_insn): Ignore insns satisfying can_throw_internal. + +2005-02-16 Paul Brook + + * reload1.c (emit_reload_insns): Invalidate dead input registers used + for reloads. + +2006-02-16 Bernd Schmidt + + PR rtl-optimization/25636 + * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test + when deciding whether an insn is an initializing insn. + +2006-02-15 Daniel Berlin + + * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling. + (tree_code_size): Ditto. + * tree.h (struct tree_memory_tag): Remove parent_var. + (struct tree_struct_field_tag): New. + (SFT_OFFSET): New. + (SFT_SIZE): New. + (union tree_node): Add sft member. + * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY + specially here. + (create_sft): Add size and offset argument, set SFT_OFFSET and + SFT_SIZE. + (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE. + * treestruct.def: Add TS_STRUCT_FIELD_TAG. + * tree-flow-inline.h (get_subvar_at): Update for + SFT_OFFSET/SFT_SIZE. + (var_can_have_subvars): Ditto. + (overlap_subvar): Ditto. + * print-tree.c (print_node): Print out interesting things for + SFT's. + * tree-flow.h (struct subvar): Remove offset and size members. + * tree-ssa-operands.c (get_expr_operands): Update for + get_indirect_ref_operands changes. + (get_indirect_ref_operands): Call add_virtual_operand instead of + add_stmt_operand. Only recurse on base var if requested. + (access_can_touch_variable): New function. + (add_stmt_operand): Split virtual operand handling into ... + (add_virtual_operand): Here. Add offset, size, and for_clobber + arguments. Prune alias sets. + (add_call_clobber_ops): Call add_virtual_operand. + +2006-02-15 Jakub Jelinek + + PR middle-end/26300 + * combine.c (make_extraction): Bail out if ORIG_POS is negative. + + * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather + than TREE_CODE as index into omp_clause_num_ops array. + +2006-02-15 Uttam Pawar + + PR rtl-optimization/26184 + * modulo-sched.c (generate_reg_moves): Free bitmap vector + uses_of_defs. + * modulo-sched.c (sms_schedule): Free g_arr pointer. + * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers + must_precede, must_follow and tobe_scheduled. + + PR other/26147 + * opts.c (common_handle_option): Free new_option pointer. + * df-core.c (df_analyze): Free postorder pointer. + +2006-02-15 Rafael Ávila de Espíndola + + * Makefile.in: Fix the examples about the use of stamps + +2006-02-15 Michael Matz + + PR middle-end/22275 + + * stor-layout.c (layout_decl): Zero-width bitfields aren't + influenced by maximum_field_alignment or DECL_PACKED. + (update_alignment_for_field): Ditto. + (place_field): Ditto. + * doc/extend.texi (<#pragma pack>, ): Document + this behaviour. + +2006-02-15 Paolo Bonzini + + * cfg.c (dump_flow_info): Get dump flags as an additional parameter. + (debug_flow_info): Pass it. + * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info. + * bb-reorder.c (reorder_basic_blocks): Likewise. + * cfgcleanup.c (rest_of_handle_jump2): Likewise. + * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise. + * flow.c (life_analysis, recompute_reg_usage): Likewise. + * gcse.c (gcse_main, bypass_jumps): Likewise. + * ifcvt.c (rest_of_handle_if_conversion): Likewise. + * local-alloc.c (rest_of_handle_local_alloc): Likewise. + * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise. + * profile.c (compute_branch_probabilities, branch_prob): Likewise. + * rtl.h (dump_flow_info): Adjust prototype. + * tracer.c (rest_of_handle_tracer, tracer): Likewise. + * var-tracking.c (variable_tracking_main): Likewise. + * passes.c (execute_todo): Obey TDF_BLOCKS for RTL. + * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks + options. + +2006-02-15 Marcin Dalecki + + * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression + construction. + +2006-02-14 Zdenek Dvorak + + PR tree-optimization/26209 + * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg. + * tree-cfgcleanup.c (cleanup_control_flow): Remove dead + eh edges. + * tree-cfg.c (replace_uses_by): Do not alter cfg. + +2006-02-14 Roger Sayle + + PR middle-end/23670 + * fold-const.c (fold_binary) : Optimize (X&Y)|Y into + (X,Y) and the corresponding symmetry related transformations. + (fold_binary) : Likewise, optimize (X|Y)&Y into + (X,Y) and its symmetry related transformations. + +2006-02-14 Roger Sayle + + * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU + and GEU. + +2006-02-14 Adam Nemet + + * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE. + +2006-02-14 Rainer Orth + + PR bootstrap/26053 + * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers + support COMDAT group. + * configure: Regenerate. + +2006-02-14 Roger Sayle + + PR middle-end/26279 + PR middle-end/26280 + PR middle-end/26283 + * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE. + +2006-02-14 Daniel Berlin + + Fix PR tree-optimization/26260 + + * doc/invoke.texi (max-fields-for-field-sensitive): Document + param. + * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New. + * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto. + * tree-ssa-structalias.c (create_variable_info_for): Use + MAX_FIELDS_FOR_FIELD_SENSITIVE. + +2006-02-14 Zdenek Dvorak + + * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl): + Document. + * tree-ssa-loop-niter.c (number_of_iterations_ne, + number_of_iterations_lt, number_of_iterations_cond): Remember the shape + of the ending condition. + * tree-ssa-loop-manip.c: Include params.h. + (build_if_stmt, can_unroll_loop_p, determine_exit_conditions, + tree_unroll_loop): New functions. + * tree-pass.h (pass_loop_prefetch): Declare. + * loop.c (rest_of_handle_loop_optimize): Test for + -fprefetch-loop-arrays-rtl. + * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h. + * timevar.def (TV_TREE_PREFETCH): New timevar. + * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch, + pass_loop_prefetch): New. + * tree-cfgcleanup.c: Include tree-scalar-evolution.h. + (cleanup_tree_cfg_loop): Call scev_reset. + * common.opt (fprefetch-loop-arrays-rtl): Add. + * tree-ssa-loop-prefetch.c: New file. + * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field. + (new_temp_expr_table): Initialize expr_vars. + (free_temp_expr_table): Cleanup expr_vars. + (check_replaceable, find_replaceable_in_bb): Prevent accumulating + expressions from being merged into one. + * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h. + (struct tree_niter_desc): Add control, bound and cmp fields. + (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop): + Declare. + * Makefile.in (tree-ssa-loop-prefetch.o): Add. + (tree-cfgcleanup.o): Add SCEV_H dependency. + (tree-ssa-loop-manip.o): Add PARAMS_H dependency. + * passes.c (init_optimization_passes): Add pass_loop_prefetch. + 2006-02-14 Richard Guenther PR tree-optimization/26258 @@ -3561,7 +4484,7 @@ * basic-block.h: Remove the prototype for partition_hot_cold_basic_blocks. -2006-01-16 Rafael Ãvila de Espíndola +2006-01-16 Rafael Ãvila de EspÃ�­ndola * cppspec.c (lang_specific_spec_functions): Remove. * gcc.c (lookup_spec_function): Use static_spec_functions directly.