+2007-07-26 Mark Shinwell <shinwell@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+
+ * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
+ * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
+ * config/arm/cortex-a8.md: New.
+ * config/arm/cortex-a8-neon.md: New.
+ * config/arm/neon-schedgen.ml: New.
+ * config/arm/neon.md (vqh_mnem): New.
+ (neon_type): New.
+ (Is_float_mode): New.
+ (Scalar_mul_8_16): New.
+ (Is_d_reg): New.
+ (V_mode_nunits): New.
+ (All instruction patterns): Annotate with neon_type attribute
+ values.
+ * config/arm/arm.md: Include cortex-a8.md.
+ (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
+ values.
+ Annotate instruction patterns accordingly.
+ (generic_sched): Do not use generic scheduling for Cortex-A8.
+ (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
+
+2007-07-26 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * fold-const.c (fold_read_from_constant_string): Use
+ build_int_cst_type.
+ * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
+
+2007-07-26 Nick Clifton <nickc@redhat.com>
+
+ * tree-ssa-operands.h: Change copyright header to refer to version
+ 3 of the GNU General Public License and to point readers at the
+ COPYING3 file and the FSF's license web page.
+ * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
+ sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
+ tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
+ targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
+ tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
+ hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
+ flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
+ opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
+ gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
+ cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
+ rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
+ optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
+ tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
+ genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
+ reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
+ c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
+ rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
+ tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
+ diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
+ gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
+ input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
+ gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
+ cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
+ graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
+ genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
+ tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
+ reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
+ real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
+ omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
+ tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
+ regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
+ tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
+ scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
+ double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
+ dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
+ gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
+ hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
+ ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
+ c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
+ tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
+ xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
+ tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
+ gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
+ mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
+ alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
+ dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
+ expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
+ genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
+ timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
+ tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
+ recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
+ dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
+ matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
+ tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
+ lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
+ ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
+ ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
+ langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
+ sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
+ gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
+ ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
+ init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
+ loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
+ mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
+ opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
+ insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
+ tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
+ dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
+ bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
+ coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
+ stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
+ cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
+ tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
+ loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
+ lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
+ tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
+ tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
+ ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
+ varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
+ sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
+ target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
+ omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
+ intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
+ sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
+ genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
+ tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
+ bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
+ cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
+ cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
+ tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
+ c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
+ fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
+ vecprim.h, basic-block.h, tree-ssa-structalias.c,
+ tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
+ passes.c, genconstants.c, c-incpath.c, c-incpath.h,
+ struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
+ varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
+ reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
+ stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
+ params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
+ tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
+ convert.c, convert.h, langhooks-def.h, reload1.c,
+ tree-ssa-operands.c: Likewise.
+
+2007-07-26 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-live.c: Include debug.h and flags.h.
+ (mark_scope_block_unused): New function.
+ (remove_unused_scope_block_p): New function.
+ (remove_unused_locals): Remove unused blocks too.
+
+2007-07-25 Ian Lance Taylor <iant@google.com>
+
+ * combine.c (combine_max_regno): Remove. Remove all uses.
+ (struct reg_stat_struct): Rename from struct reg_stat.
+ (reg_stat_type): Define, and declare VECs.
+ (reg_stat): Change from pointer to VEC. Change all uses.
+ (combine_split_insns): New static function.
+ (try_combine, find_split_point): Call it instead of split_insns.
+
+2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfghooks.c (split_block): Fix the information about loop latch.
+
+2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
+
+2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
+ Scan the new edge for loop exit info.
+
+2007-07-25 Andreas Tobler <a.tobler@schweiz.org>
+
+ * config/darwin.c: Include debug.h.
+
+2007-07-25 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/32218
+ * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
+
+2007-07-25 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
+ (HARD_REGNO_MODE_OK): Ditto.
+ (MODES_TIEABLE_P): Ditto.
+ (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
+ (CLASS_MAX_NREGS): Ditto.
+ * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
+ * config/ia64/ia64.md (divsf3_internal_thr): Removed.
+ (divdf3_internal_thr): Removed.
+ * config/ia64/div.md: New file.
+ * config/ia64/constraints.md: Add H constraint.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
+ sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
+ sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
+ sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
+ sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
+ sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
+ sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
+ sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
+ sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
+ dump_sbitmap_file, debug_sbitmap, popcount_table,
+ sbitmap_popcount): Constify.
+ * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
+ (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
+ dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
+ sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
+ sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
+ sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
+ sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
+ sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
+ sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
+ sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
+ sbitmap_popcount, sbitmap_verify_popcount): Constify.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
+ bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
+ bitmap_first_set_bit, bitmap_and, bitmap_and_into,
+ bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
+ bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
+ bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
+ bitmap_intersect_p, bitmap_intersect_compl_p,
+ bitmap_ior_and_compl, bitmap_ior_and_compl_into,
+ debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
+ Constify.
+ * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
+ bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
+ bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
+ bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
+ bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
+ debug_bitmap, debug_bitmap_file, bitmap_print,
+ bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
+ bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
+
+2007-07-25 Daniel Berlin <dberlin@dberlin.org>
+
+ * config/darwin.c (darwin_override_options): Additional fix for
+ debug info formats that don't support var tracking.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cselib.c (entry_and_rtx_equal_p): Constify.
+ * gengtype.c (output_mangled_typename, write_types, write_local):
+ Likewise.
+ * gengtype.h (const_type_p): New.
+ * see.c (eq_descriptor_extension, hash_descriptor_extension):
+ Constify.
+ * tlink.c (scan_linker_output): De-constify.
+ * tree-ssa-loop-im.c (memref_eq): Constify.
+ * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
+ (shared_bitmap_hash, shared_bitmap_eq): Constify.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-common.c (fname_as_string, c_type_hash): Constify.
+ * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
+ * cgraph.c (edge_hash, edge_eq): Likewise.
+ * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
+ * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
+ reg_attrs_htab_eq): Likewise.
+ * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
+ Likewise.
+ * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
+ const_decl_t, const_state_t, const_automata_list_el_t): New.
+ (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
+ DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
+ automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
+ insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
+ reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
+ automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
+ compare_max_occ_cycle_nums, out_state_arcs_num,
+ compare_transition_els_num, units_cmp, state_reservs_cmp):
+ Constify.
+ * genmodes.c (cmp_modes): Likewise.
+ * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
+ * gimplify.c (compare_case_labels): Likewise.
+ * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
+ * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
+ * matrix-reorg.c (mtt_info_hash): Likewise.
+ * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
+ * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
+ (htab_hash_bucket, htab_hash_elem): Constify.
+ * tree-browser.c (TB_parent_eq): Likewise.
+ * tree-scalar-evolution.c (hash_scev_info): Likewise.
+ * tree-ssa-alias.c (sort_tags_by_id): Likewise.
+ * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
+ (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
+ Constify.
+ * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
+ * tree-ssa-pre.c (const_expr_pred_trans_t): New.
+ (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
+ * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
+ const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
+ New.
+ (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
+ vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
+ vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
+ * tree-ssa-threadupdate.c (redirection_data_hash,
+ redirection_data_eq): Likewise.
+ * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
+ * tree-ssa.c (var_ann_eq): Likewise.
+ * tree-vrp.c (compare_case_labels): Likewise.
+ * tree.c (int_cst_hash_hash, int_cst_hash_eq,
+ tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
+ tree_not_check_failed, tree_class_check_failed,
+ tree_range_check_failed, tree_not_class_check_failed,
+ omp_clause_check_failed, omp_clause_range_check_failed,
+ tree_contains_struct_check_failed, tree_operand_check_failed):
+ Likewise.
+ * tree.h (tree_contains_struct_check_failed, tree_check_failed,
+ tree_not_check_failed, tree_class_check_failed,
+ tree_range_check_failed, tree_not_class_check_failed,
+ tree_operand_check_failed, omp_clause_operand_check_failed,
+ tree_operand_length): Likewise.
+ * var-tracking.c (const_variable): New.
+ (variable_htab_hash, variable_htab_eq): Constify.
+ * varasm.c (const_desc_hash): Likewise.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * expr.c (handled_component_p): Constify.
+ * fold-const.c (fit_double_type): Likewise.
+ * real.h (real_value_from_int_cst): Likewise.
+ * tree-flow-inline.h (gimple_in_ssa_p,
+ gimple_aliases_computed_p, gimple_addressable_vars,
+ gimple_call_clobbered_vars, gimple_referenced_vars,
+ gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
+ end_htab_p, end_referenced_vars_p, var_ann, function_ann,
+ may_aliases, end_readonly_imm_use_p, has_zero_uses,
+ has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
+ is_label_stmt, is_global_var, phi_ssa_name_p,
+ factoring_name_p, is_call_clobbered, tree_common_ann,
+ op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
+ unmodifiable_var_p, array_ref_contains_indirect_ref,
+ ref_contains_array_ref, lookup_subvars_for_var,
+ var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
+ gimple_mem_ref_stats): Likewise.
+ * tree-flow.h (tree_common_ann, var_ann, function_ann,
+ may_aliases, is_exec_stmt, is_label_stmt,
+ ref_contains_array_ref, array_ref_contains_indirect_ref,
+ var_can_have_subvars, overlap_subvar, is_call_clobbered,
+ unmodifiable_var_p): Likewise.
+ * tree-gimple.c (is_gimple_min_invariant): Likewise.
+ * tree-gimple.h (is_gimple_min_invariant): Likewise.
+ * tree.c (type_hash_list, attribute_hash_list, tree_size,
+ cst_and_fits_in_hwi, real_value_from_int_cst,
+ build_real_from_int_cst, integer_zerop, integer_onep,
+ integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
+ tree_floor_log2, real_zerop, real_onep, real_twop,
+ real_minus_onep, really_constant_p, purpose_member, chain_member,
+ list_length, fields_length, int_size_in_bytes, bit_position,
+ int_bit_position, byte_position, int_byte_position, expr_align,
+ array_type_nelts, tree_node_structure,
+ type_contains_placeholder_1, iterative_hash_pointer,
+ is_attribute_with_length_p, is_attribute_p, check_qualified_type,
+ tree_map_base_eq, type_hash_list, type_hash_eq,
+ attribute_hash_list, type_num_arguments, tree_int_cst_equal,
+ tree_int_cst_lt, tree_int_cst_compare, host_integerp,
+ tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
+ simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
+ int_fits_type_p, get_containing_scope, decl_function_context,
+ decl_type_context, omp_clause_operand_check_failed,
+ initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
+ * tree.h (omp_clause_operand_check_failed, tree_size,
+ build_real_from_int_cst, array_type_nelts, purpose_member,
+ tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
+ host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
+ is_attribute_p, check_qualified_type, expr_align,
+ int_size_in_bytes, bit_position, int_bit_position, byte_position,
+ int_byte_position, list_length, fields_length, initializer_zerop,
+ integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
+ integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
+ tree_node_structure, handled_component_p, get_containing_scope,
+ decl_function_context, decl_type_context, real_zerop,
+ type_num_arguments, fit_double_type, really_constant_p,
+ int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
+ compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
+ real_twop, real_minus_onep, int_cst_value): Likewise.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cfglayout.c (insn_scope, insn_line): Constify.
+ * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
+ const_double_htab_hash, const_double_htab_eq,
+ mem_attrs_htab_hash): Likewise.
+ * loop-iv.c (biv_eq): Likewise.
+ * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
+ print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
+ debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
+ Likewise.
+ * rtl-error.c (location_for_asm, diagnostic_for_asm,
+ error_for_asm, warning_for_asm, _fatal_insn,
+ _fatal_insn_not_found): Likewise.
+ * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
+ rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
+ rtl_check_failed_type2, rtl_check_failed_code1,
+ rtl_check_failed_code2, rtl_check_failed_code_mode,
+ rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
+ * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
+ rtl_check_failed_type2, rtl_check_failed_code1,
+ rtl_check_failed_code2, rtl_check_failed_code_mode,
+ rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
+ SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
+ shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
+ get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
+ mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
+ rtx_unstable_p, get_integer_term, get_related_value,
+ offset_within_block_p, reg_mentioned_p, count_occurrences,
+ reg_referenced_p, reg_used_between_p, no_labels_between_p,
+ single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
+ reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
+ find_reg_note, find_regno_note, find_reg_equal_equiv_note,
+ find_constant_src, find_reg_fusage, find_regno_fusage,
+ pure_call_p, remove_note, side_effects_p, volatile_refs_p,
+ volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
+ may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
+ computed_jump_p, auto_inc_p, in_expr_list_p,
+ remove_node_from_expr_list, loc_mentioned_in_p,
+ label_is_jump_target_p, reversed_comparison_code_parts,
+ debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
+ print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
+ print_inline_rtx): Likewise.
+ * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
+ computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
+ rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
+ get_integer_term, get_related_value, offset_within_block_p,
+ count_occurrences, reg_mentioned_p, no_labels_between_p,
+ reg_used_between_p, reg_referenced_p, single_set_2,
+ multiple_sets, set_noop_p, refers_to_regno_p,
+ reg_overlap_mentioned_p, dead_or_set_p,
+ covers_regno_no_parallel_p, covers_regno_p,
+ dead_or_set_regno_p, find_reg_note, find_regno_note,
+ find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
+ find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
+ remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
+ side_effects_p, may_trap_p_1, may_trap_p,
+ may_trap_after_code_motion_p, may_trap_or_fault_p,
+ inequality_comparisons_p, tablejump_p, computed_jump_p_1,
+ computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
+ subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
+ * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
+ mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
+ Likewise.
+ * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
+ warning_for_asm): Likewise.
+ * tree.h (print_rtl): Likewise.
+ * varasm.c (get_pool_mode): Likewise.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-lex.c (c_lex_with_flags, lex_string): Constify.
+ * c-ppoutput.c (print_line, pp_dir_change): Likewise.
+ * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
+ * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
+ * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
+ * ddg.c (compare_sccs): Likewise.
+ * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
+ * dfp.c (decimal_real_from_string, decimal_to_decnumber,
+ decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
+ decimal_do_fix_trunc, decimal_real_to_integer,
+ decimal_real_to_integer2, decimal_real_maxval): Likewise.
+ * dse.c (const_group_info_t): New.
+ (invariant_group_base_eq, invariant_group_base_hash): Constify.
+ * dwarf2out.c (const_dw_die_ref): New.
+ (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
+ * tree-browser.c (TB_parent_eq): Likewise.
+ * unwind-dw2-fde.c (__register_frame_info_bases,
+ __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
+ add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
+ Likewise.
+ * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
+ * unwind-dw2.c (uw_frame_state_for): Likewise.
+ * value-prof.c (histogram_hash, histogram_eq): Likewise.
+ * value-prof.h (const_histogram_value): New.
+
+2007-07-25 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (machine_function): Add
+ initialized_mips16_gp_pseudo_p.
+ (mips16_gp_pseudo_reg): Do not emit the initialization of
+ mips16_gp_pseudo_rtx when being called from the gimple cost-
+ calculation routines; emit it on the first use outside those
+ routines.
+
+2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
+ New.
+
+ * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
+ RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
+ RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
+ RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
+ RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
+ Preserve const-ness of parameters through use of __typeof(),
+ also constify and tidy.
+
+ * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
+ TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
+ NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
+ CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
+ OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
+ GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
+ PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
+ TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
+ TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
+
+2007-07-25 Julian Brown <julian@codesourcery.com>
+ Mark Shinwell <shinwell@codesourcery.com>
+
+ * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
+ (alpha_mangle_type): This.
+ (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+ (TARGET_MANGLE_TYPE): Define this instead.
+ * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
+ * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
+ (arm_init_neon_builtins): Fix comment.
+ (arm_mangle_map_entry): New.
+ (arm_mangle_map): New.
+ (arm_mangle_type): New.
+ * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
+ (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
+ mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
+ (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+ (TARGET_MANGLE_TYPE): Define this instead.
+ * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
+ (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
+ mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
+ (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+ (TARGET_MANGLE_TYPE): Define this instead.
+ * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
+ to...
+ (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
+ (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+ (TARGET_MANGLE_TYPE): Define this instead.
+ * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
+ (s390_mangle_type): This.
+ (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+ (TARGET_MANGLE_TYPE): Define this instead.
+ * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
+ (sparc_mangle_type): This.
+ (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+ (TARGET_MANGLE_TYPE): Define this instead.
+ * cp/mangle.c (write_type): Call mangle_type target hook on all
+ types before mangling. Use original type, not main variant, as
+ argument.
+ * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
+ (TARGET_MANGLE_TYPE): This.
+ * target.h (gcc_target): Rename mangle_fundamental_type to
+ mangle_type.
+ * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
+ (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
+
+2007-07-25 Julian Brown <julian@codesourcery.com>
+ Paul Brook <paul@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
+ Mark Shinwell <shinwell@codesourcery.com>
+
+ * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
+ * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
+ (with_fpu): Allow --with-fpu=neon.
+ * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
+ * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
+ * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
+ * config/arm/arm-protos.h (neon_immediate_valid_for_move)
+ (neon_immediate_valid_for_logic, neon_output_logic_immediate)
+ (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
+ (neon_emit_pair_result_insn, neon_disambiguate_copy)
+ (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
+ (output_move_neon): Add prototypes.
+ * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
+ (all_fpus): Add FPUTYPE_NEON.
+ (fp_model_for_fpu): Add NEON field.
+ (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
+ (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
+ in registers.
+ (arm_legitimate_address_p): Don't support fancy addressing for NEON
+ structure moves.
+ (thumb2_legitimate_address_p): Likewise.
+ (neon_valid_immediate): Recognize and prepare constants suitable for
+ NEON instructions.
+ (neon_immediate_valid_for_move): New function. Recognize and prepare
+ immediates for NEON move instructions.
+ (neon_immediate_valid_for_logic): New function. Recognize and
+ prepare immediates for NEON logic instructions.
+ (neon_output_logic_immediate): New function. Create asm string
+ suitable for outputting immediate logic instructions.
+ (neon_pairwise_reduce): New function. Implement reduction using
+ pairwise operations.
+ (neon_expand_vector_init): New function. Expand a (possibly
+ non-constant) vector initialization.
+ (neon_vector_mem_operand): New function. Memory operands supported
+ for quad-word loads/stores to/from ARM or NEON registers. Don't
+ allow base+offset addressing for core regs.
+ (neon_struct_mem_operand): New function. Valid mems for NEON
+ structure moves.
+ (coproc_secondary_reload_class): Enable NEON registers to be loaded
+ from neon_vector_mem_operand addresses without a secondary register.
+ (add_minipool_forward_ref): Handle >8-byte minipool entries.
+ (add_minipool_backward_ref): Likewise.
+ (dump_minipool): Likewise.
+ (push_minipool_fix): Likewise.
+ (output_move_quad): New function. Output quad-word moves, loads and
+ stores using ARM registers.
+ (output_move_vfp): Add support for vectors in VFP (NEON) D
+ registers.
+ (output_move_neon): Output a NEON load/store to/from a quadword
+ register.
+ (arm_print_operand): Implement new codes:
+ - 'c' for unadorned integers (without a # sign).
+ - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
+ mode.
+ - 'e', 'f' for the low and high D parts of a NEON Q register.
+ - 'q' outputs a NEON Q register.
+ - 'h' outputs ranges of D registers for VLDM/VSTM etc.
+ - 'T' prints NEON opcode features from a coded bitmask.
+ - 'F' is similar to T, but signed/unsigned codes both print as
+ 'i'.
+ - 't' is similar to T, but 'u' is printed instead of 'p'.
+ - 'O' prints 'r' if NEON instruction should perform rounding (as
+ specified by bitmask), else prints nothing.
+ - '#' is a punctuation character to stop operand numbers from
+ running together with following digits in the assembler
+ strings for instructions (when using mode attributes).
+ (arm_assemble_integer): Handle extra NEON vector modes. Permute
+ constant vectors in big-endian mode, where necessary.
+ (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
+ Handle EI, OI, CI, XI modes.
+ (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
+ (ashrv2si3): Rename IWMMXT2_BUILTINs to...
+ (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
+ (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
+ (neon_builtin_type_bits): Add enumeration, one bit for each vector
+ type.
+ (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
+ (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
+ to turn v8qi, etc. into bits defined above.
+ (neon_itype): New enumeration. Classifications of NEON builtins.
+ (neon_builtin_datum): Define struct. Contains information about
+ a single builtin (with multiple modes).
+ (CF): Define helper macro for...
+ (VAR1...VAR10): Define builtins with a type, name and 1-10 different
+ modes.
+ (neon_builtin_data): New array. Define information about builtins
+ for use during initialization/expansion.
+ (arm_init_neon_builtins): New function.
+ (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
+ true.
+ (neon_builtin_compare): New function.
+ (locate_neon_builtin_icode): New function. Find an insn code for a
+ builtin given a function code for that builtin. Also return type of
+ builtin (NEON_BINOP, NEON_UNOP etc.).
+ (builtin_arg): New enumeration. Types of arguments for builtins.
+ (arm_expand_neon_args): New function. Expand a generic NEON builtin.
+ Takes a variable argument list of builtin_arg types, terminated by
+ NEON_ARG_STOP.
+ (arm_expand_neon_builtin): New function. Expand a NEON builtin.
+ (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
+ (neon_emit_pair_result_insn): New function. Support returning pairs
+ of vectors via a pointer.
+ (neon_disambiguate_copy): New function. Set up operands for a
+ multi-word copy such that registers do not get clobbered.
+ (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
+ ARM_BUILTIN_NEON_BASE.
+ (arm_file_start): Set float-abi attribute for NEON.
+ (arm_vector_mode_supported_p): Enable NEON vector modes.
+ (arm_mangle_map_entry): New.
+ (arm_mangle_map): New.
+ (arm_mangle_vector_type): New.
+ * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
+ when appropriate.
+ (TARGET_NEON): New macro. Target supports NEON.
+ (fputype): Add FPUTYPE_NEON.
+ (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
+ for vectorization based on command-line arg.
+ (NEON_REGNO_OK_FOR_NREGS): Define.
+ (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
+ (VALID_NEON_STRUCT_MODE): Define.
+ (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
+ (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
+ * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
+ (consttable_16): Add pattern for outputting 16-byte minipool
+ entries.
+ (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
+ vec-common.md).
+ (vec-common.md, neon.md): Include md files.
+ * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
+ * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
+ (memory_constraint "Ut", "Un", "Us"): Define.
+ * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
+ (MMX_char): New mode attribute.
+ (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
+ (*add<mode>3_iwmmxt): New insn pattern.
+ (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
+ (*sub<mode>3_iwmmxt): New insn pattern.
+ (mulv4hi3): Rename to...
+ (*mulv4hi3_iwmmxt): This.
+ (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
+ (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
+ (uminv4hi3, uminv2si3): Remove. Replace with...
+ (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
+ (*umin<mode>3_iwmmxt): These.
+ (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
+ (ashr<mode>3_iwmmxt): This new pattern.
+ (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
+ (lshr<mode>3_iwmmxt): This new pattern.
+ (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
+ (ashl<mode>3_iwmmxt): This new pattern.
+ * config/arm/neon-docgen.ml: New file. Generate documentation for
+ intrinsics.
+ * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
+ * config/arm/arm_neon.h: New (autogenerated).
+ * config/arm/neon-testgen.ml: New file. Generate NEON tests
+ automatically.
+ * config/arm/neon.md: New file. Define NEON instructions.
+ * config/arm/neon.ml: New file. Abstract description of NEON
+ instructions, used to generate arm_neon.h header, documentation and
+ tests.
+ * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
+ * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
+ support.
+ * doc/extend.texi (ARM Built-in Functions): Rename and remove
+ extraneous comma.
+ (ARM NEON Intrinsics): New subsection.
+ * doc/arm-neon-intrinsics.texi: New (autogenerated).
+
+2007-07-25 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
+ prototype.
+
+2007-07-24 Jan Hubicka <jh@suse.cz>
+
+ * regclass.c (move_table): New type.
+ (move_cost, may_move_in_cost, may_move_out_cost): Use it.
+ (init_move_cost): Break out from ...
+ (init_reg_sets_1): ... here; simplify computation of
+ have_regs-of_mode and contains_reg_of_mode.
+ (record_reg_classes): Unswitch internal loops.
+ (copy_cost): Trigger lazy initialization of move cost
+ (record_address_regs): Likewise.
+
+2007-07-24 Daniel Berlin <dberlin@dberlin.org>
+
+ * config/darwin.c (darwin_override_options): Don't force on
+ flag_var_tracking_uninit when no debug info is requested.
+
+2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloop.c (init_loops_structure): New function.
+ (flow_loops_find): Create root of the loop tree unconditionally.
+
+2007-07-24 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
+
+2007-07-24 Jan Hubicka <jh@suse.cz>
+
+ * caller-save.c: Include ggc.h, gt-caller-save.h
+ (reg_save_code, reg_restore_code): Rename to ...
+ (cached_reg_save_code, cached_reg_restore_code): ... those.
+ (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
+ (reg_save_code, reg_restore_code): New functions.
+ (init_caller_save): Do not intialize
+ reg_save_code/reg_restore_code tables.
+ * Makeifle.in: (gt-caller-save.h): New.
+
+2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
+ with the mode of the original operand instead of
+ integer_one_node.
+
+2007-07-23 Jan Hubicka <jH@suse.cz>
+
+ * i386.c (ix86_secondary_memory_needed): Break out to...
+ (inline_secondary_memory_needed): ... here.
+ (ix86_memory_move_cost): Break out to ...
+ (inline_memory_move_cost): ... here; add support for IN value of 2 for
+ maximum of input and output; fix handling of Q_REGS on 64bit.
+ (ix86_secondary_memory_needed): Microoptimize.
+
+2007-07-23 Sebastian Pop <sebpop@gmail.com>
+
+ * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
+ create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
+ stmts_from_loop, known_dependences_p, build_rdg): New.
+ * tree-data-ref.h: Depends on graphds.h.
+ (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
+ (build_rdg): Declared.
+ * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
+
+2007-07-23 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
+ ccp_min_invariant.
+
+2007-07-23 Peter Bergner <bergner@vnet.ibm.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/PR28690
+ * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
+ * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
+ and MEM_POINTER operands over REG and MEM operands.
+ (swap_commutative_operands_p): Change return value to bool.
+ * rtl.h: Update the corresponding prototype.
+ * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
+ instead of gen_rtx_PLUS.
+ * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
+ value to bool. Change function arguments to rtx's and update code
+ to match.
+ (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
+ calls to match the new declaration.
+ * simplify-rtx.c (simplify_associative_operation): Don't
+ reorder simplify_binary_operation arguments.
+
+2007-07-23 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (override_options): Use mips_costs to derive
+ the default branch cost.
+ * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
+ than mips_costs.
+ * config/mips/mips.opt (mbranch-cost=): New option.
+ * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
+
+2007-07-23 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
+ (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
+ * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
+ instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
+
+2007-07-23 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/constraints.md (ks): New constraint.
+ * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
+ (*add<mode>3_mips16): ...here.
+
+2007-07-21 Uros Bizjak <ubizjak@gmail.com>
+
+ * optabs.h (enum optab_index): Add new OTI_signbit.
+ (signbit_optab): Define corresponding macro.
+ (enum insn_code signbit_optab[]): Remove array.
+ * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
+ (expand_copysign_absneg): If back end provides signbit insn, use it
+ instead of bit operations on floating point argument.
+ * builtins.c (enum insn_code signbit_optab[]): Remove array.
+ (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
+ availability of signbit insn.
+
+ * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
+ signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
+ SSE mode is not active.
+ (isinf<mode>2): Disable for mfpmath=sse,387.
+
+2007-07-22 Ben Elliston <bje@au.ibm.com>
+
+ * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
+ `class' parameter.
+ * struct-equiv.c (note_local_live): Likewise for `y_regno'.
+
+2007-07-20 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_expr): COND_EXPRs can have any
+ integral typed condition.
+ * tree-ssa.c (useless_type_conversion_p): Do not preserve
+ booleanness. Only preserve conversions from a non-base
+ type to a base type, not in general between types with
+ different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
+ * tree.def (COND_EXPR): Document that the condition
+ can be of any integral type.
+
+2007-07-20 Nigel Stephens <nigel@mips.com>
+ Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.h (mips_dwarf_regno): Declare.
+ (DBX_REGISTER_NUMBER): Remove redundant brackets.
+ (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
+ (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
+ (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
+ (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
+ (REG_CLASS_NAMES): Update accordingly.
+ * config/mips/mips.c (mips_dwarf_regno): New array.
+ (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
+ (mips_subword): Remove special handling for accumulator registers.
+ (override_options): Initiailize mips_dwarf_regno. Remove use
+ of ACC_HI_REG_P.
+ (mips_swap_registers): New function.
+ (mips_conditional_register_usage): Swap accumulator registers
+ around if TARGET_LITTLE_ENDIAN.
+ (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
+ * config/mips/constraints.md (h, l): Use the endianness to choose
+ between MD0_REG and MD1_REG.
+ * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
+ alternative-dependent template.
+
+2007-07-20 Richard Sandiford <richard@codesourcery.com>
+
+ * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
+ no_new_pseudos.
+
+2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * function.c (thread_prologue_and_epilogue_insns): Fix exit
+ predecessor fallthru flags.
+
+2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
+ of compare to the same type.
+ * cfgloopmanip.c (add_loop): Update information about loop exits.
+ (loop_version): Remove the innermost loop requirement.
+ * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
+ to sizetype for pointers.
+
+2007-07-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
+ (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
+ (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
+
+ * config/dfp-bit.c: Empty for TFmode conversions.
+
+2007-07-18 Caroline Tice <ctice@apple.com>
+
+ * var-tracking.c (find_src_status): Check for COND_EXEC insns
+ and handle them correctly; check that src is not NULL before
+ trying to use it.
+ (find_src_set_src): Likewise.
+
+2007-07-18 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
+ (struct alignment_context, init_alignment_context): New.
+ (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
+ * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
+ (XCHAL_HAVE_S32C1I): Likewise.
+ (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
+ * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
+ (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
+ (ATOMIC, HQI): New macros.
+ (memory_barrier, *memory_barrier): New.
+ (sync_lock_releasesi): New.
+ (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
+ (sync_lock_test_and_set<mode>): New.
+ (sync_<atomic><mode>): New.
+ (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
+ * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
+ (xtensa_expand_atomic): New.
+
+2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR target/30652
+
+ * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
+ transformation for builtin ISNORMAL.
+ (expand_builtin): Handle BUILT_IN_ISNORMAL.
+ * builtins.def (BUILT_IN_ISNORMAL): New.
+ * doc/extend.texi: Document isnormal.
+
+2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR target/30652
+
+ * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
+ optabs infrastructure. Provide generic implementation for
+ FINITE/ISFINITE.
+ (expand_builtin): Handle FINITE/ISFINITE.
+ (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
+ (fold_builtin_1): Likewise.
+
+ * builtins.def (BUILT_IN_ISFINITE): New.
+
+ * doc/extend.texi: Document isfinite.
+
+2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR target/30652
+ PR middle-end/20558
+
+ * builtins.c (expand_builtin_interclass_mathfn): Provide a
+ generic fallback for isinf.
+ * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
+ calculation code ...
+ * real.c (get_max_float): ... to here.
+ * real.h (get_max_float): New.
+
+2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/32668
+
+ * builtin-attrs.def (ATTR_TYPEGENERIC,
+ ATTR_CONST_NOTHROW_TYPEGENERIC): New.
+
+ * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
+ BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
+ BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
+ BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
+
+ * c-common.c (handle_type_generic_attribute): New.
+ (c_common_attribute_table): Add "type generic".
+
+ * c-typeck.c (convert_arguments): Handle "type generic" functions.
+
+2007-07-18 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
+ * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
+ properly.
+
+2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ PR target/32808
+ * config/cris/cris.c (cris_print_index): Don't use XEXP before
+ checking that the operand is an expression.
+
+2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
+ Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR/other 30335
+ * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
+ file mapping object in local namespace if Windows version later
+ than NT4
+
+2007-07-18 Richard Sandiford <richard@codesourcery.com>
+
+ * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
+ * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
+ arm_cannot_force_const_mem.
+ (arm_cannot_force_const_mem): New function.
+ * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
+ (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
+ of arm_tls_referenced_p.
+ * config/arm/arm.md (movsi): Split out-of-section constants when
+ ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
+ * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
+
+2007-07-18 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
+
+2007-07-18 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.md (*extendqihi2): Convert the destination
+ to SImode.
+
+2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * config/pa/fptr.c: Update license header.
+ * config/pa/milli64.S: Likewise.
+
+2007-07-17 Nick Clifton <nickc@redhat.com>
+
+ * COPYING_v3: New file. Contains version 3 of the GNU General
+ Public License.
+ * COPYING.LIB_v3: New file. Contains version 3 of the GNU
+ Lesser General Public License.
+ * doc/include/gpl_v3.texi: New file. Contains version 3 of
+ the GNU General Public License.
+
+2007-07-17 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/32773
+ * cfglayout.c (force_one_exit_fallthru): New function.
+ (cfg_layout_finalize): Use it.
+
+2007-07-16 Richard Guenther <rguenther@suse.de>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
+ before forcing it to gimple operand.
+
+2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
+ David Ung <davidu@mips.com>
+
+ * config/mips/mips.h (TUNE_24K): Define.
+ (TUNE_MACC_CHAINS): Add TUNE_24K.
+ * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
+ imadd.
+ * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
+ (r74k_int_madd): .. this new reservation.
+ (define_bypass): Fixed bypasses for r74k_int_madd to use
+ mips_linked_madd_p.
+ * config/mips/24k.md (define_bypass): Define new
+ r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
+
+2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
+ Nigel Stephens <nigel@mips.com>
+
+ * config/mips/mips.md: Include 20kc.md.
+ * config/mips/20kc.md: New file.
+ * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
+ (mips_adjust_cost): Tweak for 20Kc.
+ (mips_issue_rate): Likewise.
+ * config/mips/mips.h (TUNE_20KC): Define.
+
+2007-07-16 David Edelsohn <edelsohn@gnu.og>
+
+ * config/rs6000/rs6000.c (struct processor_cost): Add
+ cache_line_size, l1_cache_lines, and simultaneous_prefetches
+ fields.
+ (*_cost): Add cache information.
+ (rs6000_override_options): Set cache parameters.
+
+2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR bootstrap/3456
+ * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
+ * doc/install.texi (mips-sgi-irix6): pthread support works now.
+
+2007-07-16 Paul Brook <paul@codesourcery.com>
+
+ PR target/32753
+ * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
+ (cirrus_thumb2_movsi_insn): Ditto.
+
+2007-07-15 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/darwin-fallback.c (interpret_libc): Change
+ CR2_REGNO to R_CR2.
+
+2007-07-15 Andrew Haley <aph@redhat.com>
+
+ * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
+ before looking in the context.
+
+2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/32398
+ PR middle-end/32769
+ * pa-protos.h (pa_eh_return_handler_rtx): Declare.
+ * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
+ (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
+ (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
+ to generate .CALLINFO statement.
+ (hppa_expand_prologue): Set rp_saved.
+ (hppa_expand_epilogue): Use rp_saved.
+ (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
+ * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
+
+2007-07-14 Dirk Mueller <dmueller@suse.de>
+
+ * omega.c (coalesce): Fix memory leak on early exit.
+ * matrix-reorg.c (check_allocation_function): Likewise.
+ * tree-vect-transform.c (vect_get_new_vect_var): free result
+ of concat().
+ * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
+ pass pointer to edge vector
+ (partition_hot_cold_basic_blocks): Fix memory leak.
+ * collect2.c (prefix_from_string): Free temporary storage.
+ * reload1.c (fixup_abnormal_edges): Free sbitmap.
+
+2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
+ (DO_GLOBAL_DTORS_BODY): Likewise.
+
+2007-07-14 Sandra Loosemore <sandra@codesourcery.com>
+ Nigel Stephens <nigel@mips.com>
+
+ * config/mips/mips.c (mips_classify_symbol): Don't return
+ SYMBOL_SMALL_DATA for constant pool addresses if
+ TARGET_EMBEDDED_DATA is true.
+
+2007-07-14 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
+ except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
+ __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
+ __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
+ __builtin_ia32_storehps, __builtin_ia32_storelps,
+ __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
+ __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
+ __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
+ __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
+ __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
+ __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
+ __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
+ __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
+ using def_builtin_const.
+
+2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR tree-optimization/32705
+ * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
+ (simplify_binary_expression): Use SSA_VAL consistently.
+
+2007-07-13 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
+ (SPEFSCR_REGNO): Delete definition.
+ * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
+ COUNT_REGISTER_REGNUM -> CTR_REGNO.
+ * config/rs6000/rs6000.h: Do not define *_REGNO.
+ LINK_REGISTER_REGNUM -> LR_REGNO.
+ COUNT_REGISTER_REGNUM -> CTR_REGNO.
+ * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO.
+ COUNT_REGISTER_REGNUM -> CTR_REGNO.
+ * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
+ R_VRSAVE, R_VSCR. Use them.
+ * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
+ R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them.
+ * config/rs6000/rs6000.md: Define REGNO constants. Use them.
+ * config/rs6000/aix.h: Define R_LR. Use it.
+
+2007-07-13 Caroline Tice <ctice@apple.com>
+
+ * toplev.c (process_options): Turn flag_var_tracking_uninit off when
+ flag_var_tracking is explicitly turned off (i.e. when variable
+ tracking is not feasible); otherwise, turn flag_var_tracking on when
+ flag_var_tracking_uninit is on.
+ * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
+ note definitions, to allow recording of initialization status in the
+ notes.
+ * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
+ (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
+ determine if two note locations are equal.
+ (output_loc_list): Don't output list entries whose start & end labels
+ are the same.
+ (reg_loc_descriptor): Add parameter for initialization status; pass it
+ to other loc descriptor functions.
+ (one_reg_loc_descriptor): Add parameter for initialization status;
+ check its value and add DW_OP_GNU_uninit to returned loc descr if
+ appropriate.
+ (multiple_reg_loc_descriptor): Add parameter for initialization
+ status;
+ pass init status argument to other loc descriptor functions; check
+ value of intialization parameter and add DW_OP_GNU_uninit to returned
+ loc descr if appropriate.
+ (based_loc_descr): Add parameter for initialization status; add new
+ variable for return value; check value of initialization parameter and
+ add DW_OP_GNU_uninit to returned loc descr if appropriate.
+ (concatn_mem_loc_descriptor): Add parameter for initialization status;
+ pass init status argument to other loc descriptor functions; check
+ value of intialization parameter and add DW_OP_GNU_uninit to returned
+ loc descr if appropriate.
+ (mem_loc_descriptor): Likewise.
+ (concat_loc_descriptor): Likewise.
+ (concatn_loc_descriptor): Likewise.
+ (loc_descriptor): Add parameter for initialization status; pass it as
+ argument to other loc descriptor function calls.
+ (loc_descriptor_from_tree_1): Add appropriate initialization status
+ to loc descriptor function calls.
+ (add_location_or_const_value_attribute): Get initialization status
+ from VAR_LOCATION note; add initialization status to loc descriptor
+ function calls.
+ * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
+ * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
+ status is uninitialized, add "[uninint]" to output.
+ * common.opt (fvar-tracking-uninit): New option, similar to
+ fvar-tracking, to turn on tracking of uninitialized variables; creates
+ a new global flag, flag_var_tracking_uninit.
+ * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
+ (enum var_init_status): New type, for var initialization status field.
+ * var-tracking.c (struct location_chain_def): Two new fields, init,
+ for initialization status, and set_src for the assignment value expr.
+ (unshare_variable): New parameter for initialization status;
+ initialize new init and set_src fields.
+ (var_reg_set): New parameters for initialization status and value;
+ pass them to set_variable_part.
+ (var_mem_set): Likewise.
+ (get_init_value): New function.
+ (var_reg_delete_and_set): New initialization status & value
+ parameters; add call to get_init_value if status is unknown; pass new
+ parameters to clobber_variable_part and var_reg_set.
+ (var_mem_delete_and_set): Likewise.
+ (var_reg_delete): Pass null set_src value to clobber_variable_part.
+ (var_mem_delete): Likewise.
+ (variable_union): Pass status to unshare_variable; initialize new init
+ and set_src fields. If flag_var_tracking_uninit is not set, force
+ status to initialized.
+ (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
+ used later to get the set_src value.
+ (find_src_status): New function.
+ (find_src_set_src): New function.
+ (compute_bb_dataflow): Pass init status to calls to var_reg_set,
+ var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
+ MO_SET, get set_src value and pass it to var_reg_delete_and_set
+ and var_mem_delete_and_set.
+ (dump_variable): Print out "[uninit]" if appropriate.
+ (set_variable_part): Add new initialization and set_src parameters;
+ pass status to unshare_variable; set node->init and node- >set_src
+ fields and modify slot in hash table appropriately; save the init and
+ set_src values if appropriate and assign to the new node.
+ (clobber_variable_part): New set_src parameter; if two nodes have
+ same variable and same location but different set_src (assignment)
+ values, clobber old node.
+ (delete_variable_part): Pass init status to unshare_variable.
+ (emit_note_insn_var_location): Add initialized var; assign var's init
+ status to new 'initialized'; pass new init status field to calls to
+ gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
+ status to initialized.
+ (emit_notes_in_bb): Pass initialization status to calls to
+ var_reg_set, var_mem_set, var_reg_delete_and_set and
+ var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
+ var_reg_delete_and_set and var_mem_delete_and_set; call
+ emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
+ make up for change in add_stores.
+ (vt_add_function_parameters): Add status to calls to
+ set_variable_part.
+ * config/darwin.c (darwin_override_options): Turn on uninitialized
+ tracking automatically, if var_tracking is on and the system is
+ 10.5 or higher.
+
+2007-07-13 Sa Liu <saliu@de.ibm.com>
+
+ * config.gcc: Add options for arch and tune on SPU.
+ * config/spu/predicates.md: Add constant operands 0 and 1.
+ * config/spu/spu-builtins.def: Add builtins for double precision
+ floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt,
+ si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
+ spu_testsv.
+ * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
+ a CELLEDP target.
+ * config/spu/spu-protos.h: Add new function prototypes.
+ * config/spu/spu.c (spu_override_options): Check options -march and
+ -mtune.
+ (spu_comp_icode): Add comparison code for DFmode and vector mode.
+ (spu_emit_branch_or_set): Use the new code for DFmode and vector
+ mode comparison.
+ (spu_const_from_int): New. Create a vector constant from 4 ints.
+ (get_vec_cmp_insn): New. Get insn index of vector compare instruction.
+ (spu_emit_vector_compare): New. Emit vector compare.
+ (spu_emit_vector_cond_expr): New. Emit vector conditional expression.
+ * config/spu/spu.h: Add options -march and -mtune. Define processor
+ types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro
+ CANONICALIZE_COMPARISON.
+ * config/spu/spu.md: Add new insns for double precision compare
+ and double precision vector compare. Add vcond and smax/smin patterns
+ to enable DFmode vector conditional expression.
+ * config/spu/spu.opt: Add options -march and -mtune.
+ * config/spu/spu_internals.h: Add builtins for CELLEDP target:
+ si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for
+ both CELL and CELLEDP targets: spu_testsv.
+ * config/spu/spu_intrinsics.h: Add flag mnemonics for test special
+ values.
+
+2007-07-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/32721
+ * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
+ TREE_THIS_VOLATILE on the folded reference.
+ * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
+ if the array reference has TREE_THIS_VOLATILE set.
+
+2007-07-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR other/32188
+ * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
+
+2007-07-13 Andreas Schwab <schwab@suse.de>
+
+ * gengtype-lex.l: Allow declarations to be indented.
+
+2007-07-12 Geoffrey Keating <geoffk@apple.com>
+
+ * ginclude/tgmath.h: New.
+ * config.gcc: Use GCC's tgmath.h on non-glibc systems.
+ * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
+ * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
+ * configure: Regenerate.
+
+2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
+ correct index when setting register save state for xd
+ registers.
+
+2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (mark_use): Remove.
+
+2007-07-12 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
+ reg does not overlap return value.
+
+2007-07-12 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
+ (set_expression_vuses): Ditto.
+ (init_pre): Initialize expression_vuses.
+
+2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * config/i386/sse.md (storentdf, storentsf): New.
+
+2007-07-12 Geoffrey Keating <geoffk@apple.com>
+
+ * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
+ FUNCTION_DECL.
+ * tree.c (build_decl_stat): Move code from here...
+ (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN.
+ (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment
+ about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
+ * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
+ * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
+ FUNCTION_BOUNDARY.
+
+2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
+ Devang Patel <dpatel@apple.com>
+
+ PR tree-optimization/25413
+ * targhooks.c (default_builtin_vector_alignment_reachable): New.
+ * targhooks.h (default_builtin_vector_alignment_reachable): New.
+ * tree.h (contains_packed_reference): New.
+ * expr.c (contains_packed_reference): New.
+ * tree-vect-analyze.c (vector_alignment_reachable_p): New.
+ (vect_enhance_data_refs_alignment): Call
+ vector_alignment_reachable_p.
+ * target.h (vector_alignment_reachable): New builtin.
+ * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
+ * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
+ (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
+
+2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
+
+ * target.h (builtin_vectorization_cost): Add new target builtin.
+ * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
+ * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
+ (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
+ * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
+ uninitialized variables.
+ * tree-vect-transform.c (cost_for_stmt): New function.
+ (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
+ using cost 1 for all scalar stmts. Be less conservative when
+ estimating the number of prologue/epulogue iterations. Call
+ targetm.vectorize.builtin_vectorization_cost. Return
+ min_profitable_iters-1.
+ (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
+ initialization cost instead of TARG_VEC_STMT_COST. Use
+ TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
+ epilogue code. Fix epilogue cost computation.
+ * config/spu/spu.c (spu_builtin_vectorization_cost): New.
+ (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
+ * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
+ (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
+ (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
+ (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
+
+2007-07-12 Richard Guenther <rguenther@suse.de>
+
+ * gimplify.c (gimplify_conversion): Make sure that the result
+ from maybe_fold_offset_to_reference is trivially convertible
+ to the desired type before doing the simplification.
+ (gimplify_expr): Likewise.
+ * fold-const.c (fold_binary): Use the correct types for
+ building the simplified expression.
+
+2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/32729
+ * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
+ that fallthru to exit.
+
+2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
+ (symDTPOFF2reg): Likewise.
+
+2007-07-11 Daniel Berlin <dberlin@dberlin.org>
+
+ PR tree-optimization/32663
+
+ * tree.h (VALUE_HANDLE_VUSES): Remove.
+ (struct tree_value_handle): Remove vuses.
+
+ * tree-vn.c (create_value_handle_for_expr): Don't set
+ VALUE_HANDLE_VUSES.
+
+ * tree-ssa-pre.c (expression_vuses): New.
+ (alloc_expression_id): Set up expression_vuses.
+ (get_expression_vuses): New.
+ (set_expression_vuses): Ditto.
+ (clear_expression_ids): Modify for expression_vuses.
+ (phi_translate_1): Ditto.
+ (phi_translate_set): Ditto.
+ (value_dies_in_block_x): Ditto
+ (valid_in_sets): Ditto.
+ (add_to_sets): Ditto.
+ (find_existing_value_expr): Ditto.
+ (create_value_handle_for_expr): Ditto.
+ (make_values_for_stmt): Ditto.
+ (vuse_equiv): Remove.
+
+2007-07-11 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in (mostlyclean): Remove object files.
+
+2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * toplev.c (no_new_pseudos): Deleted.
+ * rtl.h (no_new_pseudos): Deleted.
+ * tree-pass.h (pass_no_new_pseudos): Deleted.
+ * passes.c (pass_no_new_pseudos): Deleted.
+ * final.c (rest_of_clean_state): Removed no_new_pseudos.
+ (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
+ * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with
+ reload_completed.
+ * cfgcleanup.c (try_crossjump_to_edge): Ditto.
+ * rtlhooks.c (gen_lowpart_general): Ditto.
+ * optabs.c (prepare_operand): Ditto.
+ * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
+ no_new_pseudos.
+ * modulo-sched.c (rest_of_handle_sms): Ditto.
+ * see.c (rest_of_handle_see): Ditto.
+ * ifcvt.c (if_convert): Ditto.
+ (gate_handle_if_after_combine): Replaced no_new_pseudos with
+ reload_completed.
+ * init-regs.c (gate_initialize_regs): Deleted set of
+ no_new_pseudos.
+ * lower-subreg.c (decompose_multiword_subregs): Ditto.
+ * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
+ * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
+
+2007-07-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/32661
+ * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
+ (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
+ (*vec_extractv2di_1_rex64): New insn pattern.
+
+2007-07-11 David Daney <ddaney@avtrex.com>
+
+ * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
+ return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN
+ for SIGNAL_UNWIND_RETURN_COLUMN.
+ * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
+ (DWARF_FRAME_REGNUM): Rewrite.
+ (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
+
+2007-07-11 Nick Clifton <nickc@redhat.com>
+
+ * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
+ delta and use gen_int_mode in place of GET_INT instead.
+
+2007-07-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
+ and letter field.
+
+2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
+
+ * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
+ (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
+ types or not.
+ * params.h (VERIFY_CANONICAL_TYPES): Remove.
+ (USE_CANONICAL_TYPES): New.
+ * doc/invoke.texi (verify-canonical-types): Remove.
+ (use-canonical-types): Add.
+
+2007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/spu/spu.c (spu_optimization_options): Remove setting of
+ parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
+ (spu_override_options): Move it here.
+
+2007-07-11 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
+ * config/mips/mips.c (mips_cpu_info_table): Mention
+ MIPS_ISA_LEVEL_SPEC in the comment.
+
+2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR tree-optimization/32713
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
+
+2007-07-11 Paolo Carlini <pcarlini@suse.de>
+
+ PR middle-end/30482
+ * c-opts.c (c_common_post_options): Do not change flag_complex_method
+ conditional to flag_isoc99.
+ (c_common_init_options): Do it here, unconditionally.
+
+2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR tree-optimization/32589
+ * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
+ * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
+ * tree-ssa-propagate.c (valid_gimple_expression_p): New
+ predicate, extracted from...
+ (set_rhs): ...here. Call it for the expression on entry.
+ * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
+ * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
+ (simplify_binary_expression): Use valid_gimple_expression_p
+ to validate the simplification.
+ * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
+
+2007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
+ DWARF2_DEBUG on 32 bit target too.
+ (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
+
+2007-07-11 Nick Clifton <nickc@redhat.com>
+
+ * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
+ version for 64-bit hosts.
+
+2007-07-10 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
+ predicate.
+ (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
+ call.
+ * config/mips/mips.c (mips_expand_synci_loop): New function.
+ * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
+ (UNSPEC_RDHWR): Same.
+ (UNSPEC_SYNCI): Same.
+ (UNSPEC_SYNC): Same.
+ (clear_cache): New expand.
+ (sync): New insn.
+ (synci): Same.
+ (rdhwr): Same.
+ (clear_hazard): Same.
+ * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
+ function.
+ * testsuite/gcc.target/mips/clear-cache-1.c: New test.
+ * testsuite/gcc.target/mips/clear-cache-2.c: New test.
+
+2007-07-10 Ian Lance Taylor <iant@google.com>
+
+ * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
+ no_new_pseudos.
+
+2007-07-10 David Daney <ddaney@avtrex.com>
+
+ * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
+ * builtins.c (expand_builtin___clear_cache): New function.
+ (expand_builtin): Call expand_builtin___clear_cache for
+ BUILT_IN_CLEAR_CACHE case.
+ * doc/extend.texi (__builtin___clear_cache): Document new builtin.
+ * doc/md.texi (clear_cache): Document new instruction pattern.
+ * testsuite/gcc.dg/builtins-64.c: New test.
+
+2007-07-11 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md ("movsi"): Fix typo in last change.
+
+2007-07-09 Geoffrey Keating <geoffk@apple.com>
+
+ PR 32617
+ * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
+ FUNCTION_DECLs.
+ (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
+ * varasm.c (assemble_start_function): Honor DECL_ALIGN
+ for FUNCTION_DECLs. Don't use align_functions_log if
+ DECL_USER_ALIGN.
+ * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
+ even for FUNCTION_DECLs.
+ * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
+ FUNCTION_DECLs.
+ * tree.h (DECL_ALIGN): Update for new location of 'align'.
+ (DECL_FUNCTION_CODE): Update for new location and name of
+ 'function_code'.
+ (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
+ (struct tree_decl_common): Move 'align' and 'off_align' out
+ of union, ensure they're still on a 32-bit boundary. Remove
+ other fields in union 'u1'.
+ (struct tree_function_decl): Add field 'function_code' replacing
+ 'u1.f' in tree_decl_common.
+ * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
+ * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
+ (Variable Attributes): Cross-reference 'aligned' attribute
+ to Function Attributes.
+ * flags.h (force_align_functions_log): Delete.
+ * toplev.c (force_align_functions_log): Delete.
+
+2007-07-10 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/32708
+ * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
+ (*vec_concatv2di_rex): New insn pattern.
+
+2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ PR target/32538
+ * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
+
+2007-07-10 Ian Lance Taylor <iant@google.com>
+
+ Replace no_new_pseudos in backends.
+ * rtl.h (can_create_pseudo_p): Define.
+ * config/darwin.c (machopic_indirect_data_reference): Use
+ can_create_pseudo_p () instead of no_new_pseudos.
+ (machopic_indirect_data_reference): Likewise.
+ (machopic_legitimize_pic_address): Likewise.
+ * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
+ (alpha_emit_set_const_1): Likewise.
+ (alpha_emit_set_const): Likewise.
+ (alpha_emit_conditional_move): Likewise.
+ (alpha_split_conditional_move): Likewise.
+ * config/alpha/alpha.md (various splitters): Likewise.
+ (movti): Likewise.
+ * config/arm/arm.c (legitimize_pic_address): Likewise.
+ (arm_load_pic_register): Likewise.
+ * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
+ (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
+ * config/bfin/bfin.c (legitimize_pic_address): Likewise.
+ * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
+ * config/cris/cris.md (movsi): Likewise.
+ * config/frv/frv.md (symGOT2reg_hilo): Likewise.
+ (symGOTOFF2reg_hilo): Likewise.
+ (symGPREL2reg, symGPREL2reg_hilo): Likewise.
+ * config/h8300/h8300.md (insv, extzv): Likewise.
+ * config/i386/i386.c (ix86_expand_move): Likewise.
+ (ix86_expand_vector_move): Likewise.
+ (ix86_prepare_fp_compare_args): Likewise.
+ (ix86_expand_carry_flag_compare): Likewise.
+ * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
+ (tls_dynamic_gnu2_combine_32): Likewise.
+ (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
+ * config/ia64/ia64.c (ia64_expand_move): Likewise.
+ (ia64_expand_movxf_movrf): Likewise.
+ * config/m32c/m32c.c (m32c_prepare_move): Likewise.
+ (m32c_split_move): Likewise.
+ (m32c_expand_insv): Likewise.
+ * config/m68k/m68k.md (movsi): Likewise.
+ * config/mips/mips.c (mips_force_temporary): Likewise.
+ (mips_split_symbol): Likewise.
+ (mips_move_integer): Likewise.
+ (mips_legitimize_const_move): Likewise.
+ * config/mn10300/mn10300.md (movsi): Likewise.
+ * config/pa/pa.c (emit_move_sequence): Likewise.
+ * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
+ (rs6000_got_register): Likewise.
+ (create_TOC_reference): Likewise.
+ (rs6000_machopic_legitimize_pic_address): Likewise.
+ * config/rs6000/rs6000.md (add<mode>3): Likewise.
+ (various splitters): Likewise.
+ (iorsi3, xorsi3, iordi3, xordi3): Likewise.
+ (movsi_got): Likewise.
+ * config/s390/s390.c (emit_symbolic_move): Likewise.
+ * config/s390/s390.md (movhi, movqi): Likewise.
+ (load_multiple, store_multiple): Likewise.
+ * config/score/score.c (score_force_temporary): Likewise.
+ * config/sh/sh.c (prepare_move_operands): Likewise.
+ (prepare_cbranch_operands): Likewise.
+ (emit_fpu_switch): Likewise.
+ (fpscr_set_from_mem): Likewise.
+ * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
+ (adddi3, subsi3): Likewise.
+ (various splitters): Likewise.
+ (divsi_inv_fp_combine): Likewise.
+ (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
+ (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
+ (sne): Likewise.
+ * config/sh/predicates.md (xor_operand): Likewise.
+ * config/sparc/sparc.c (legitimize_tls_address): Likewise.
+ * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
+ (movdi_pic_label_ref): Likewise.
+ * config/spu/spu.c (spu_split_immediate): Likewise.
+ * config/alpha/alpha.md (various splitters): Remove test
+ !no_new_pseudos || reload_completed.
+ * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
+ no_new_pseudos.
+ * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
+ * config/mips/mips.c (mips_output_mi_thunk): Likewise.
+ * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
+ * config/score/score.c (th_output_mi_thunk): Likewise.
+ * config/sh/sh.c (sh_output_mi_thunk): Likewise.
+ * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
+
+2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/32664
+ * mode-switching.c (create_pre_exit): Skip barrier insns.
+
+2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-scalar-evolution.c (scev_const_prop): Add arguments to
+ force_gimple_operand_bsi.
+ * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
+ rewrite_use_compare): Ditto.
+ * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
+ Ditto.
+ * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
+ * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
+ * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
+ * tree-profile.c (prepare_instrumented_value,
+ tree_gen_interval_profiler, tree_gen_pow2_profiler,
+ tree_gen_one_value_profiler, tree_gen_ic_profiler,
+ tree_gen_ic_func_profiler, tree_gen_average_profiler,
+ tree_gen_ior_profiler): Ditto.
+ * tree-ssa-reassoc.c (negate_value): Ditto.
+ * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
+ Use force_gimple_operand_bsi.
+ * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
+ * tree-if-conv.c (add_to_dst_predicate_list,
+ find_phi_replacement_condition): Ditto.
+ * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
+ Call mark_symbols_for_renaming for new statements.
+ * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
+
+2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfghooks.c (remove_edge): New function.
+ (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
+ loop exit rescans.
+ * cfghooks.h (remove_edge): Declare.
+ * cfg.c (remove_edge): Renamed to remove_edge_raw.
+ * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
+
+2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
+
+ * optabs.h: Added declaration for signbit_optab.
+ * optabs.c: (init_optabs): Added initialization for signbit_optab.
+ * genoptinit.c (optabs): Added entry for signbit insns.
+ * builtins.c (expand_builtin_signbit): Added code to use a signbit
+ insn, if available.
+ * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
+ * config/s390/s390.md (signbit<mode>2): New expander.
+
+2007-07-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32698
+ * fold-const.c (fold_plusminus_mult_expr): Move constant
+ arguments second to allow decomposing.
+
+2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
+
+ Revert:
+ 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
+ PR debug/23551
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
+ Disregard DECL_FROM_INLINE.
+
+2007-07-09 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/27855
+ * doc/invoke.texi: Add ftree-reassoc flag.
+ * common.opt (ftree-reassoc): New flag.
+ * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
+ (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
+
+2007-07-09 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/32681
+ * tree-if-conv.c (find_phi_replacement_condition): Use the condition
+ saved in second_edge->aux when first_bb is a loop header.
+
+2007-07-09 Jan HUbicka <jh@suse.cz>
+
+ * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
+
+2007-07-09 Richard Guenther <rguenther@suse.de>
+
+ * c-decl.c (start_function): Do not promote return type.
+
+2007-07-08 Daniel Franke <franke.daniel@gmail.com>
+
+ * function.c (do_warn_unused_parameter): Do not warn if
+ TREE_NO_WARNING is set.
+
+2007-07-08 Andreas Schwab <schwab@suse.de>
+
+ * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
+
+2007-07-08 Sandra Loosemore <sandra@codesourcery.com>
+
+ Revert this patch:
+ 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
+
+ * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
+ apply to assembly language, too.
+ * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
+
+2007-07-07 Daniel Berlin <dberlin@dberlin.org>
+
+ Revert (note the sccvn portions are *not* reverted)
+ 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/23488
+
+ * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
+ handles.
+ * tree-flow-inline.h (get_value_handle): Ditto.
+ * tree-ssa-pre.c (decl_vh_map): New.
+ (decl_node_pool): New.
+ (can_value_number_operation): Support DECL_P.
+ (can_PRE_operation): Ditto.
+ (create_expression_by_pieces): Ditto.
+ (find_existing_value_expr): Modify to differnetiate between
+ addressing and top level.
+ (create_value_handle_for_expr): Handle DECL's.
+ (poolify_tree): Ditto.
+ (make_values_for_phi): Don't insert into PHI_GEN during FRE.
+ (make_values_for_stmt): Handle DECL's properly.
+ (init_pre): Reorg to not init useless things during FRE.
+ (fini_pre): Ditto.
+ * tree-flow.h: Include pointer-set.h.
+ (decl_vh_map): Declare.
+ * Makefile.in (TREE_FLOW_H): Add pointer-set.h
+
+2007-07-07 Eric Weddington <eweddington@cso.atmel.com>
+
+ * config/avr/constraints.md (define_memory_constraint "Q"): Fix
+ the constraint description.
+ * doc/md.texi: Update documentation of AVR constraints.
+
+2007-07-07 Kazu Hirata <kazu@codesourcery.com>
+
+ * auto-inc-dec.c, config/arm/arm.c,
+ config/m32r/constraints.md, config/mips/mips.md,
+ config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
+ df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
+ tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
+ typos. Follow spelling conventions.
+ * doc/invoke.texi, doc/rtl.texi: Fix typos.
+
+ * cfgrtl.c (delete_insn_chain_and_edges): Remove.
+ * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
+
+ * tree-ssa-operands.c (realloc_vop, realloc_vdef,
+ realloc_vuse): Remove.
+ * tree-ssa-operands.h: Remove the prototype for realloc_vdef
+ and realloc_vuse.
+
+2007-07-06 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/23488
+
+ * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
+ (try_to_simplify): Ditto.
+ (visit_use): Ditto.
+ * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
+ handles.
+ * tree-flow-inline.h (get_value_handle): Ditto.
+ * tree-ssa-pre.c (decl_vh_map): New.
+ (decl_node_pool): New.
+ (can_value_number_operation): Support DECL_P.
+ (can_PRE_operation): Ditto.
+ (create_expression_by_pieces): Ditto.
+ (find_existing_value_expr): Modify to differnetiate between
+ addressing and top level.
+ (create_value_handle_for_expr): Handle DECL's.
+ (poolify_tree): Ditto.
+ (make_values_for_phi): Don't insert into PHI_GEN during FRE.
+ (make_values_for_stmt): Handle DECL's properly.
+ (init_pre): Reorg to not init useless things during FRE.
+ (fini_pre): Ditto.
+ * tree-flow.h: Include pointer-set.h.
+ (decl_vh_map): Declare.
+ * Makefile.in (TREE_FLOW_H): Add pointer-set.h
+
+2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
+
+ * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
+ apply to assembly language, too.
+ * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
+
+2007-07-06 Ian Lance Taylor <iant@google.com>
+ Zack Weinberg <zackw@panix.com>
+
+ PR middle-end/32441
+ * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
+
+2007-07-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
+ (prefetch): Likewise if "pref" would be used.
+
+2007-07-06 Josh Conner <jconner@apple.com>
+
+ PR middle-end/32602
+ PR middle-end/32603
+ * calls.c (store_one_arg): Handle arguments which are partially
+ on the stack when detecting argument overlap.
+
+2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload1.c (choose_reload_regs): Set reload_spill_index for regs
+ chosen during find_reloads.
+
+2007-07-06 Richard Guenther <rguenther@suse.de>
+
+ * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
+ TYPE_ARG_TYPES for verification of argument types. Use
+ DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
+ parameters as variable arguments.
+
+2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * libgcc2.h (word_type): Type definition removed.
+ (cmp_return_type, shift_count_type): Type definitions added.
+ (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
+ replaced with shift_count_type.
+ (__cmpdi2, __ucmpdi2): word_type of return type replaced with
+ cmp_return_type.
+ * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
+ changed from word_type to Wtype.
+ (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
+ replaced with shift_count_type.
+ (__cmpdi2, __ucmpdi2): word_type of return type replaced with
+ cmp_return_type.
+ * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
+ and libgcc_shift_count attribute added.
+ * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
+ TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
+ (TARGET_INITIALIZER): New target hooks added.
+ * targhooks.c (default_libgcc_cmp_return_mode,
+ default_libgcc_shift_count_mode): Default implementations for the new
+ target hooks added.
+ * targhooks.h (default_libgcc_cmp_return_mode,
+ default_libgcc_shift_count_mode): Function prototypes added.
+ * target.h (struct gcc_target): Fields for the new target hooks added.
+ * optabs.c (expand_binop): Use shift_count_mode when expanding shift
+ as library call.
+ (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
+ library call.
+
+ * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
+ TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
+
+ * config/s390/s390.c (s390_libgcc_cmp_return_mode,
+ s390_libgcc_shift_count_mode): Functions added.
+ (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
+ Target hooks defined.
+
+2007-07-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (compute_frame_size): Restore the original
+ gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
+ fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
+ Document why the difference is needed.
+
+2007-07-06 Richard Guenther <rguenther@suse.de>
+
+ * c-common.c (boolean_increment): Use correctly typed
+ constant.
+
+2007-07-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
+ the topmost argument register is not also included in the save mask.
+ (mips16e_collect_argument_save_p): Take a pointer to the argument
+ register, rather than a pointer to the number of arguments.
+ (mips16e_collect_argument_saves): Only include argument saves
+ that aren't in the register mask.
+
+2007-07-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/32450
+ * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
+ to ensure that instructions are not moved into the prologue when
+ profiling is on. Remove unused prologue_end variable.
+ (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
+ as a scheduling barrier.
+
+2007-07-06 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/23551
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
+ Disregard DECL_FROM_INLINE.
+
+2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
+
+ * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
+ IORing with a constant.
+
+2007-07-05 Seongbae Park <seongbae.park@gmail.com>
+
+ PR rtl-optimization/32475
+ * df-scan.c (df_def_record_1): Add a use of the stack pointer
+ for every definition of the stack pointer.
+
+2007-07-05 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c (vfp3_const_double_index): Copy signed results of
+ REAL_VALUE_TO_INT into unsigned vars.
+
+2007-07-05 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32639
+ * alias.c (get_alias_set): Tread METHOD_TYPE the same as
+ FUNCTION_TYPE.
+ * tree-ssa.c (useless_type_conversion_p): Check canonical
+ types early.
+
+2007-07-05 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
+ zero_extendhisi2): Change to define_insn_and_split.
+ (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
+
+2007-07-05 Paolo Bonzini <bonzini@gnu.org>
+
+ * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
+ pass_match_asm_constraints): New.
+ * passes.c (init_optimization_passes): Add new pass.
+ * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
+ * function.h (struct function): Add has_asm_statement bit.
+ (current_function_has_asm_statement): New.
+ * tree-pass.h (pass_match_asm_constraints): New.
+
+2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_file_start): Avoid declaration
+ after code.
+
+2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
+
+ * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
+
+2007-07-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * rtl.def (NOTE): Change print format string to print
+ operand 5 as a note insn name.
+
2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
David Ung <davidu@mips.com>
- gcc/
* config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
* doc/invoke.texi: (MIPS Options): Document them.
(vect_do_peeling_for_loop_bound): Don't call
vect_estimate_min_profitable_iters. Instead, lookup
LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
- "may not be profitable".
+ "may not be profitable".
2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/32604
PR tree-optimization/32606
-
+
* tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
(compute_antic_safe): Removed.
(ANTIC_SAFE_LOADS): Ditto.
offsets->locals_base to avoid negative stack size.
(thumb1_expand_prologue): Assert on negative stack size.
-2007-04-19 Sebastian Pop <sebpop@gmail.com>
+2007-06-19 Sebastian Pop <sebpop@gmail.com>
PR tree-optimization/32367
* tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
Tony Linthicum <tony.linthicum@amd.com>
- * doc/extend.texi: Add fvect-cost-model flag.
+ * doc/invoke.texi: Add fvect-cost-model flag.
* common.opt (fvect-cost-model): New flag.
* tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
cost fields in stmt_vec_info struct for STMT.
float constant.
(_m_to_float): Use C89 compatible assignment.
-2007-04-20 Martin Michlmayr <tbm@cyrius.com>
+2007-05-20 Martin Michlmayr <tbm@cyrius.com>
PR target/32007
* config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
size never inline functions increasing caller size.
(cgraph_early_inlining): Inline for size when optimizing for size.
-2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
+2007-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
logical operations piecewise.