+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
+ * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
+ ud-chains. Handle AND_EXPR.
+ (record_estimate): Record whether the estimate is realistic
+ and whether it is derived from a loop exit.
+ (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
+ infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
+ functions.
+ (compute_estimated_nb_iterations): Take only realistic bounds into
+ account. Set estimate_state. Use double_ints.
+ (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
+ and infer_loop_bounds_from_signedness. Do not consider basic blocks
+ that do not have to be always executed.
+ (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
+ to determine whether to call infer_loop_bounds_from_undefined
+ and compute_estimated_nb_iterations.
+ (n_of_executions_at_most): Use double_ints.
+ (free_numbers_of_iterations_estimates_loop): Set estimate_state.
+ (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
+ * double-int.c (double_int_to_tree): Improve comment.
+ (double_int_fits_to_tree_p): New function.
+ * double-int.h (double_int_fits_to_tree_p): Declare.
+ * tree-data-ref.c: Include langhooks.h.
+ (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
+ (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
+ (analyze_array): Do not pass estimate_only argument to
+ analyze_array_indexes.
+ (get_number_of_iters_for_loop): Build tree from the stored double_int
+ value.
+ (get_references_in_stmt, find_data_references_in_stmt): New functions.
+ (find_data_references_in_loop): Use find_data_references_in_stmt.
+ * tree-data-ref.h (struct data_ref_loc_d): New.
+ (get_references_in_stmt): Declare.
+ (estimate_iters_using_array): Declaration removed.
+ * cfgloop.h (struct nb_iter_bound): Change type of bound to
+ double_int. Improve comments. Add is_exit and realistic
+ fields.
+ (struct loop): Changed type of estimated_nb_iterations to double_int.
+ Added estimate_state field.
+ (record_estimate): Declaration removed.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * params.c (set_param_value): Initialize the "set" field.
+ * params.h (struct param_info): Add "set" field.
+ (PARAM_SET_P): New macro.
+ (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
+ L1_CACHE_LINE_SIZE): New macros.
+ * toplev.c (DEFPARAM): Initialize the "set" field.
+ * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
+ SIMULTANEOUS_PREFETCHES): Removed.
+ (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
+ (tree_ssa_prefetch_arrays): Dump the values of the parameters.
+ * config/sparc/sparc.c: Include params.h.
+ (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
+ Removed.
+ * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
+ Removed.
+ * config/i386/i386.c: Include params.h.
+ (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
+ (override_options): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
+ (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/ia64/ia64.c (ia64_optimization_options): Set
+ SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
+ * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
+ Removed.
+ * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
+ PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
+ * doc/invoke.texi: Document new params.
+
+2006-11-12 Roger Sayle <roger@eyesopen.com>
+
+ PR tree-optimization/13827
+ * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
+ as ((X^Y)&C) op 0.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
+ update_single_exit_for_duplicated_loops): New functions.
+ (duplicate_loop_to_header_edge): Use
+ update_single_exit_for_duplicated_loops.
+ * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
+ functions only with ENABLE_CHECKING.
+
+2006-11-12 Andreas Schwab <schwab@suse.de>
+
+ * except.c (sjlj_emit_function_enter): Remove unused variable.
+
+2006-11-11 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (int_binop_types_match_p): New function.
+ (size_binop): Relax constraint that both arguments must both have
+ exactly the same sizetype type. Instead use int_binop_types_match_p.
+ (size_diffop): Likewise.
+
+ (make_range): Use build_int_cst instead of fold_convert.
+ (fold_cond_expr_with_comparison): Use build_int_cst to construct
+ integer constants of the correct type.
+ (fold_div_compare): Likewise.
+ (fold_single_bit_test): Likewise.
+ (fold_binary): Likewise.
+ * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
+ has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
+
+2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-opt/28812
+ * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
+ non null value if the struct memory access is in the 0th
+ aliasing set.
+
+2006-11-12 Jie Zhang <jie.zhang@analog.com>
+
+ Revert
+ 2006-11-11 Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
+ and __BFIN__.
+
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
+ instead of builtin_define for bfin and BFIN.
+
+2006-11-11 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
+ and __BFIN__.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * extended.texi (__builtin_expect): We no longer require second argument
+ to be constant.
+ * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
+ * builtins.c (expand_builtin_expect): Simplify.
+ (expand_builtin_expect_jump): Kill.
+ * final.c (final_scan_insn): Do not skip the removed notes.
+ * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
+ EXPECTED_VALUE): Remove.
+ * dojump.c (do_jump): Do not care about __builtin_expect.
+ * predict.c (expected_value_to_br_prob): Kill.
+ * function.c (expand_function_end): Do not expand
+ NOTE_INSN_REPEATED_LINE_NUMBER.
+ * print-rtl.c (print_rtx): Do not pretty print the removed notes.
+ * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
+ * cfgexpand.c (add_reg_br_prob_note): Export.
+ * cfgcleanup.c (rest_of_handle_jump2): Do not call
+ expected_value_to_br_prob.
+ * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
+ * rtl.h (add_reg_br_prob_note): Declare.
+
+2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (predict_loops): Kill RTL variant.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
+ * modulo-sched.c (find_line_note): Remove.
+ (loop_canon_p): Do not worry about line number notes.
+ (sms_schedule): Likewise.
+ * cse.c (cse_main): Likewise.
+ * regmove.c (fixup_match_1): Likewise
+ * function.c (emit_return_info_block): Likewise.
+ (expand_function_end): Likewise.
+ (thread_prologue_an_epilogue_insns): Likewise.
+ * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
+ Likewise.
+ * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
+ emit_note_copy_after): Kill.
+ (emit_note_copy): Do not worry about line numbers.
+ * jump.c (purge_line_number_notes): Kill.
+ (pass_purge_lineno_notes): Kill.
+ * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
+ call.
+ * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
+ * passes.c (init_optimization_passes): Don't purge_lineno_notes.
+ * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
+ * tree-pass.h (pass_purge_lineno_notes): Kill.
+ * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
+ rm_redundant_line_notes.
+ * sched-rgb.c (schedule_region): Don't rm_line_notes,
+ rm_redundant_line_notes.
+ * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
+ * haifa-sched.c: Update comment about handling notes.
+ (unlink_line_notes): Kill.
+ (rm_line_notes): Kill.
+ (save_line_notes): Simplify.
+ (rm_redundant_line_notes): Kill.
+
+2006-11-11 Richard Guenther <rguenther@suse.de>
+
+ * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
+ Remove unused tree codes.
+ * tree-vrp.c (extract_range_from_unary_expr): Remove handling
+ of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
+ * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
+ * tree.c (stabilize_reference): Likewise.
+ * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
+ fold_unary): Likewise.
+ * tree-gimple.c (is_gimple_cast): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
+ * expr.c (expand_expr_real_1): Likewise.
+ * tree-eh.c (tree_could_trap_p): Likewise.
+ * gimplify.c (gimplify_expr): Likewise.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ * tree-cfg.c (verify_expr): Likewise.
+
+2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
+ * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
+ (tree_ssa_prefetch_arrays): Do not dump for removed loops.
+
+2006-11-11 Richard Sandiford <richard@codesourcery.com>
+
+ PR middle-end/27528
+ * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
+ constraints accept neither registers or memories.
+
+2006-11-11 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
+ (NO_PROFILE_COUNTERS): Define as 1.
+
+2006-11-10 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
+ Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
+
+2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
+
+ * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
+
2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
+ (fold_builtin_hypot): Likewise.
+ * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
+
* fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
2006-11-10 Roger Sayle <roger@eyesopen.com>
* local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
in REG_EQUIV notes.
* gcse.c (try_replace_reg): Copy the replacement.
- * i386.c (emit_i387_cw_initialization): Copy stored_mode
+ * i386.c (emit_i387_cw_initialization): Copy stored_mode.
(assign_386_stack_local): Always return copied memory expression
* function.c (instantiate_virtual_regs_in_insn): Copy the operand
duplicates.