OSDN Git Service

007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 2f0b439..2137c70 100644 (file)
@@ -1,3 +1,231 @@
+007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * c-decl.c (pop_scope): Replace warnings with call to
+       warn_for_unused_label.
+       * c-common.h (warn_for_unused_label): Declare.
+       * c-common.c (warn_for_unused_label): Define.
+
+2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * tree-optimize.c (update_inlined_to_pointers): Delete unused
+       function.
+
+2007-01-29  Janis Johnson  <janis187@us.ibm.com>
+
+       * Makefile.in (USER_H): Remove decfloat.h.
+       * ginclude/decfloat.h: Delete, moving contents to ...
+       * ginclude/float.h: Add support for decimal floating point,
+       guarded by __STDC_WANT_DEC_FP__.
+
+2007-01-29  Mike Stump  <mrs@apple.com>
+
+       * doc/gccint.texi (Top): Rename Loop Representation to Loop
+       Analysis and Representation to resolve case insensitive conflict.
+       * doc/loop.texi (Loop Analysis and Representation): Likewise.
+
+2007-01-28  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree.h (struct tree_memory_tag): Add aliases member.
+       (MTAG_ALIASES): New macro.
+       * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
+       (add_may_alias): Remove pointer-set. Update for may_aliases being
+       a bitmap. 
+       (mark_aliases_call_clobbered): Update for may_aliases being a
+       bitmap.
+       (compute_tag_properties): Ditto.
+       (create_partition_for): Ditto.
+       (compute_memory_partitions): Ditto.
+       (dump_may_aliases_for): Ditto.
+       (is_aliased_with): Ditto.
+       (add_may_alias_for_new_tag): Ditto.
+       (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
+       (compute_is_aliased): New function.
+       (compute_may_aliases): Call compute_is_aliased).
+       (init_alias_info): Initialize alias_bitmap_obstack.
+       (union_alias_set_into): New function.
+       (compute_flow_sensitive_aliasing): Use union_aliases_into.
+       (have_common_aliases_p): Rewrite to take two bitmaps and use
+       intersection.
+       (compute_flow_insensitive_aliasing): Stop using pointer-sets.
+       Update for bitmaps.
+       (finalize_ref_all_pointers): Update for add_may_alias changes.
+       (new_type_alias): Ditto.
+       * tree-flow-inline.h (may_aliases): Return a bitmap.
+       * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
+       * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
+       may_aliases being a bitmap.
+       * tree-flow.h (struct var_ann_d): Remove may_aliases member.
+       may_aliases now returns a bitmap.
+       * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
+       being a bitmap.
+       * tree-ssa-operands.c (add_virtual_operand): Update for
+       may_aliases being a bitmap.
+       
+2007-01-29  Daniel Berlin  <dberlin@dberlin.org>
+
+       PR tree-optimization/30630
+       * tree-ssa-structalias.c (do_complex_constraint): Mark correct
+       variable as changed.
+
+2007-01-29  Simon Martin  <simartin@users.sourceforge.net>
+
+       PR c++/28266
+       * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
+       expanded only once even if an error occurs.
+
+2007-01-29  Ben Elliston  <bje@au.ibm.com>
+
+       * gcov-io.h (__gcov_indirect_call_profiler): Declare.
+       (__gcov_average_profiler): Likewise.
+       (__gcov_ior_profiler): Likewise.
+       (__gcov_merge_ior): Likewise.
+
+2007-01-28  Jan Hubicka  <jh@suse.cz>
+
+       * builtins.c (expand_builtin_memset): Fix typo in my last patch.
+       * value-prof.c (stringop_block_profile): Likewise.
+
+2007-01-28  Jan Hubicka  <jh@suse.cz>
+
+       * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
+       variant handling histograms; add wrapper.
+       (clear_storage_via_libcall): Export.
+       (emit_block_move_hints): Break out from ...; add histograms.
+       (emit_block_move): ... this one.
+       (clear_storage_hints): Break out from ...; add histograms.
+       (clear_storage): ... this one.
+       (set_storage_via_memset): Handle histogram.
+       * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
+       (clear_storage_hints, clear_storage_via_libcall): Declare.
+       (set_storage_via_setmem): Update prototype.
+       * doc/md.texi (movmem, setmem): Document new arguments.
+
+       * value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
+       new histograms.
+       (stringop_block_profile): New global function.
+       (tree_stringops_values_to_profile): Profile block size and alignment.
+       * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
+       HIST_TYPE_IOR.
+       (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
+       (stringop_block_profile): Declare.
+       * builtins.c: Include value-prof.h.
+       (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
+       * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
+       (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
+       (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
+       * profile.c (instrument_values): Add new counters.
+       * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
+       calls.
+       * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
+       (tree_init_edge_profiler): Build new profilers.
+       (tree_gen_average_profiler, tree_gen_ior_profiler): New.
+       (pass_tree_profile): Add dump.
+       (tree_profile_hooks): Update.
+       * Makefile.in (LIBGCOV): Add new constants.
+       * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
+       __gcov_ior_profiler): New.
+       * i386.md (movmem/setmem expanders): Add new optional arguments.
+
+2007-01-28  David Edelsohn  <edelsohn@gnu.org>
+
+       * doc/md.texi (Standard Pattern Names): Document blockage pattern.
+
+2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-ssa-loop-unswitch.c: Include tree-inline.h.
+       (tree_unswitch_single_loop): Pass eni_size_weights to
+       tree_num_loop_insns.
+       * tree-ssa-loop-manip.c: Include tree-inline.h.
+       (can_unroll_loop_p): Pass eni_size_weights to
+       tree_num_loop_insns.
+       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
+       Pass eni_size_weights to estimate_num_insns.
+       * tree.h (init_inline_once): Export.
+       * toplev.c (backend_init): Call init_inline_once.
+       * cgraphunit.c (cgraph_process_new_functions,
+       cgraph_analyze_function): Pass eni_inlining_weights to
+       estimate_num_insns.
+       * ipa-inline.c (compute_inline_parameters): Ditto.
+       * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
+       to estimate_num_insns.
+       (try_unroll_loop_completely): Pass eni_size_weights to
+       tree_num_loop_insns.
+       * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
+       ot estimate_num_insns.
+       * tree-ssa-loop-prefetch.c: Include tree-inline.h.
+       (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
+       * tree-inline.c (eni_inlining_weights, eni_size_weights,
+       eni_time_weights): New variables.
+       (init_inline_once): Initialize them.
+       (struct eni_data): Mew.
+       (estimate_num_insns_1, estimate_num_insns): Use weights.
+       * tree-inline.h (struct eni_weights_d): New.
+       (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
+       (estimate_num_insns): Declaration changed.
+       * cfgloop.h (tree_num_loop_insns): Declaration changed.
+       * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
+       tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
+
+2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-data-ref.c (conflict_fn): Assert that the number of affine
+       relations in the conflict function is valid.
+
+2007-01-27  Ian Lance Taylor  <iant@google.com>
+
+       * common.opt: Add fstrict-overflow.
+       * opts.c (decode_options): Set flag_strict_overflow if -O2.
+       * flags.h (TYPE_OVERFLOW_WRAPS): Define.
+       (TYPE_OVERFLOW_UNDEFINED): Define.
+       (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
+       Replace all uses.
+       * tree.h (TYPE_TRAP_SIGNED): Don't define.
+       * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
+       (fold_negate_expr): Likewise.
+       (make_range): Likewise.
+       (extract_muldiv_1): Likewise.
+       (maybe_canonicalize_comparison): Likewise.
+       (fold_comparison): Likewise.
+       (fold_binary): Likewise.
+       (tree_expr_nonnegative_p): Likewise.
+       (tree_expr_nonzero_p): Likewise.
+       * tree-vrp.c (compare_values): Likewise.
+       (extract_range_from_binary_expr): Likewise.
+       (extract_range_from_unary_expr): Likewise.
+       * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
+       Likewise.
+       (nowrap_type_p): Likewise.
+       * tree-scalar-evolution.c (simple_iv): Likewise.
+       * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
+       (build_range_check): Likewise.
+       (extract_muldiv_1): Likewise.
+       (fold_comparison): Likewise.
+       * tree-vrp.c (vrp_int_const_binop): Likewise.
+       (extract_range_from_unary_expr): Likewise.
+       * convert.c (convert_to_integer): Likewise.
+       * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
+       (fold_comparison): Likewise.
+       (fold_binary): Likewise.
+       * optabs.c (optab_for_tree_code): Likewise.
+       * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
+       * simplify-rtx.c (simplify_const_relational_operation): Check
+       flag_strict_overflow and flag_trapv.
+       (simplify_const_relational_operation): Likewise.
+       * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
+       (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
+       -fstrict-overflow.
+
+2007-01-27  Roger Sayle  <roger@eyesopen.com>
+
+       * tree.c (tree_fold_gcd): Delete.
+       * tree.h (tree_fold_gcd): Remove prototype.
+       * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
+       test whether one constant integer is a multiple of another.  Instead
+       call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
+       * fold-const.c (multiple_of_p):  We've determined both TOP and
+       BOTTOM are integer constants so we can call int_const_binop directly
+       instead of the more generic const_binop.
+
 2007-01-27  Roger Sayle  <roger@eyesopen.com>
 
        * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and