+2007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * doc/md.texi (Blackfin family constraints): Document PA and PB.
+ * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
+ (MACFLAGS_MATCH_P): New macro.
+ * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
+ (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
+ * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
+ the other MACFLAG constants.
+ (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
+ (flag_machi): Tighten constraints. Renumber some of the operands.
+ (flag_machi_acconly): Tighten constraints. Correct operand numbers in
+ output template.
+ (flag_machi_parts_acconly): New pattern.
+ (flag_macinithi): Tighten constraints. Allow any accumulator to be
+ used.
+ (flag_macinit1hi): Tighten constraints.
+ (flag_mul_macv2hi_parts_acconly): New pattern.
+
+ * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
+ Use a more efficient implementation.
+ * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
+ inline sequences when not optimizing for size.
+
+ 2007-02-11 Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/bfin.opt (msim): New option.
+ (mcpu=): New option.
+ * config/bfin/bfin-protos.h (enum bfin_cpu): New.
+ (bfin_cpu_t): Typedef of enum bfin_cpu.
+ (bfin_cpu_type): New declaration.
+ * config/bfin/elf.h (STARTFILE_SPEC): Add support for
+ -msim and -mcpu= options.
+ (LIB_SPEC): Likewise.
+ * config/bfin/bfin.c (bfin_cpu_type): Define.
+ (bfin_handle_option): Handle -mcpu= option.
+ * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
+ (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
+ __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
+ (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
+ (powerpc-wrs-vxworksae): Use ${tm_file}.
+ (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
+ after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
+ * config/i386/vx-common.h: New file.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
+ of crt0.o%s.
+
+2007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
+ ldxtr.
+
+2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/31078
+ PR c++/31103
+ * c-common.c (c_build_qualified_type): Set canonical type
+ appropriately.
+
+2007-04-12 Richard Guenther <rguenther@suse.de>
+
+ * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
+ lower bound and element size if lower bound is not zero
+ or either of the ARRAY_REF operands is set.
+
+2007-04-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/24689
+ PR tree-optimization/31307
+ * fold-const.c (operand_equal_p): Compare INTEGER_CST array
+ indices by value.
+ * gimplify.c (canonicalize_addr_expr): To be consistent with
+ gimplify_compound_lval only set operands two and three of
+ ARRAY_REFs if they are not gimple_min_invariant. This makes
+ it never at this place.
+ * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
+
+2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
+ null before emitting a .nsubspa directive.
+
+2007-04-11 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
+ need_to_partition_p if there are no memory statements in the
+ function.
+
+2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
+ (gcd_of_steps_may_divide_p): New function.
+ (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
+
+2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload.c (find_reloads_toplev, find_reloads_address,
+ find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
+ not a pointer equality test, to decide if we need to call
+ push_reg_equiv_alt_mem.
+
+2007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
+
+ * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
+ insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
+ (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
+
+2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (add_multivariate_self_dist): Force the distance
+ vector to be positive.
+
+2007-04-11 Diego Novillo <dnovillo@redhat.com>
+
+ PR 30735
+ PR 31090
+ * doc/invoke.texi: Document --params max-aliased-vops and
+ avg-aliased-vops.
+ * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
+ debug_memory_partitions): Move to tree-flow.h
+ * params.h (AVG_ALIASED_VOPS): Define.
+ * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
+ users.
+ (mp_info_t): Likewise.
+ (get_mem_sym_stats_for): New.
+ (set_memory_partition): Move from tree-flow-inline.h.
+ (mark_non_addressable): Only clear the set of symbols for the
+ partition if it exists.
+ (dump_memory_partitions): Move from tree-ssa-operands.c
+ (debug_memory_partitions): Likewise.
+ (need_to_partition_p): New.
+ (dump_mem_ref_stats): New.
+ (debug_mem_ref_stats): New.
+ (dump_mem_sym_stats): New.
+ (debug_mem_sym_stats): New.
+ (update_mem_sym_stats_from_stmt): New.
+ (compare_mp_info_entries): New.
+ (mp_info_cmp): Call it.
+ (sort_mp_info): Change argument to a list of mem_sym_stats_t
+ objects.
+ (get_mpt_for): Move from tree-ssa-operands.c.
+ (find_partition_for): New.
+ (create_partition_for): Remove.
+ (estimate_vop_reduction): New.
+ (update_reference_counts): New.
+ (build_mp_info): New.
+ (compute_memory_partitions): Refactor.
+ Document new heuristic.
+ Call build_mp_info, update_reference_counts,
+ find_partition_for and estimate_vop_reduction.
+ (compute_may_aliases): Populate virtual operands before
+ calling debugging dumps.
+ (delete_mem_sym_stats): New.
+ (delete_mem_ref_stats): New.
+ (init_mem_ref_stats): New.
+ (init_alias_info): Call it.
+ (maybe_create_global_var): Remove alias_info argument.
+ Get number of call sites and number of pure/const call sites
+ from gimple_mem_ref_stats().
+ (dump_alias_info): Call dump_memory_partitions first.
+ (dump_points_to_info_for): Show how many times a pointer has
+ been dereferenced.
+ * opts.c (decode_options): For -O2 set --param
+ max-aliased-vops to 500.
+ For -O3 set --param max-aliased-vops to 1000 and --param
+ avg-aliased-vops to 3.
+ * fortran/options.c (gfc_init_options): Remove assignment to
+ MAX_ALIASED_VOPS.
+ * tree-flow-inline.h (gimple_mem_ref_stats): New.
+ * tree-dfa.c (dump_variable): Dump memory reference
+ statistics.
+ Dump NO_ALIAS* settings.
+ (referenced_var_lookup): Tidy.
+ (mem_sym_stats): New.
+ * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
+ and ORIG are different SSA names for a memory partition.
+ * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
+ * tree-flow.h (struct mem_sym_stats_d): Define.
+ (mem_sym_stats_t): Define.
+ (struct mem_ref_stats_d): Define.
+ (struct gimple_df): Add field mem_ref_stats.
+ (enum noalias_state): Define.
+ (struct var_ann_d): Add bitfield noalias_state.
+ (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
+ debug_mem_ref_stats, debug_memory_partitions,
+ debug_mem_sym_stats): Declare.
+ * tree-ssa-structalias.c (update_alias_info): Update call
+ sites, pure/const call sites and asm sites in structure
+ returned by gimple_mem_ref_stats.
+ Remove local variable IS_POTENTIAL_DEREF.
+ Increase NUM_DEREFS if the memory expression is a potential
+ dereference.
+ Call update_mem_sym_stats_from_stmt.
+ If the memory references memory, call
+ update_mem_sym_stats_from_stmt for all the direct memory
+ symbol references found.
+ (intra_create_variable_infos): Set noalias_state field for
+ pointer arguments according to the value of
+ flag_argument_noalias.
+ * tree-ssa-structalias.h (struct alias_info): Remove fields
+ num_calls_found and num_pure_const_calls_found.
+ (update_mem_sym_stats_from_stmt): Declare.
+ * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
+ Set default value to 100.
+ (PARAM_AVG_ALIASED_VOPS): Define.
+
+2007-04-11 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31530
+ * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
+ a * -b + c as c - a * b if we honor sign dependent rounding.
+
+2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
+ bfin_expand_strmov.
+ * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
+ bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
+ variables.
+ (initialize_trampoline): Don't use old-style function definition.
+ (bfin_secondary_reload): Mark IN_P argument as unused.
+
+2007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
+
+ PR tree-optimization/31343
+ * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
+ (build_polynomial_chrec): Return a scalar when the evolution is zero.
+ * testsuite/gcc.dg/vect/pr31343.c: New.
+
+2007-04-10 Eric Christopher <echristo@apple.com>
+
+ * config/i386/i386.h (X87_FLOAT_MODE_P): New.
+ * config/i386/i386.md (*cmpfp0): Use.
+ (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
+ (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
+ (fix_trunc<mode>_i386_fisttp): Ditto.
+ (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
+ (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
+ (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
+ (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
+ (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
+ (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
+ (unnamed_splitters): Ditto.
+ * config/i386/i386.c (output_fix_trunc): Assert that
+ we're not being passed a TFmode operand.
+
+2007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/31526
+ * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
+ n_basic_blocks to find newly added blocks.
+
+2007-04-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
+ alternative.
+ (fix_trunc<mode>si_sse): Ditto.
+ (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
+ (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
+ (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
+ (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
+ (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
+ expander using SSEMODEF mode macro.
+ (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
+ expander using SSEMODEF mode macro.
+ (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
+ *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
+ (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
+ *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
+ (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
+ *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
+ (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
+ Macroize insn using X87MODEF mode macro.
+
+2007-04-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (sse2_pinsrw): Removed.
+ (sse2_pextrw): Renamed to ...
+ (*sse2_pextrw): This.
+
+2007-04-09 Jan Hubicka <jh@suse.cz>
+
+ PR target/27869
+ * config/i386/sse.md
+ (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
+ (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
+ (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
+ (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
+
+2007-04-09 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
+ multiple fields of union.
+
+2007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
+ (create_preheaders): Check that loops are available.
+ (fix_loop_structure): Clean up, improve comments.
+ * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
+ Check that loops are available. Set LOOP_CLOSED_SSA to the loops
+ state flags.
+ * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
+ * predict.c (tree_estimate_probability): Do not call
+ calculate_dominance_info. Call create_preheaders.
+ * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
+ rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
+ flags.
+ * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
+ * cfgloop.h (LOOP_CLOSED_SSA): New constant.
+ * tree-cfg.c (tree_split_edge): Make an assert more precise.
+ * tree-ssa-threadedge.c (thread_across_edge): Comment the function
+ arguments.
+
+2007-04-08 Jan Hubicka <jh@suse.cz>
+
+ * tree.h (maybe_fold_offset_to_component_ref): Declare.
+ * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
+ * fold-const.c (fold_unary): Use it.
+
+2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * varasm.c (assemble_variable): Remove call to
+ lang_hooks.decls.prepare_assemble_variable.
+ * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
+ (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
+ * langhooks.h (lang_hooks_for_decls): Remove
+ prepare_assemble_variable.
+
2007-04-08 Mike Stump <mrs@apple.com>
* config/i386/i386.c: Use inc/dec on Core2.
2007-04-07 Anatoly Sokolov <aesok@post.ru>
PR target/30289
- * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
+ * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
earlyclobber.
2007-04-07 Bruce Korb <bkorb@gnu.org>
* langhooks.h (lang_hooks): Remove safe_from_p.
(lhd_safe_from_p): Remove prototype.
* langhooks.c (lhd_safe_from_p): Remove.
-
+
2007-04-06 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (decide_is_function_needed): Do not keep always_inline
2007-04-05 Anatoly Sokolov <aesok@post.ru>
PR target/25448
- * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
+ * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
DECL_ASSEMBLER_NAME, not the DECL_NAME.
2007-04-05 H.J. Lu <hongjiu.lu@intel.com>