X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=9b6a348be30a06f9ac705bb78a5b27b491772043;hb=bcaec148afbe1e0cb3fc6798496a09d0d3e56326;hp=28c5a3059ad3d041617fb84b17e46524f4257cbe;hpb=5d1f88800aabf4f38ab4bfcc83a87cb8aeb56ae0;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 28c5a3059ad..aa1e9d30fcf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,2269 @@ +2007-07-26 Mark Shinwell + Julian Brown + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * cfghooks.c (split_block): Fix the information about loop latch. + +2007-07-25 Zdenek Dvorak + + * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches. + +2007-07-25 Zdenek Dvorak + + * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): + Scan the new edge for loop exit info. + +2007-07-25 Andreas Tobler + + * config/darwin.c: Include debug.h. + +2007-07-25 Steve Ellcey + + PR target/32218 + * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type. + +2007-07-25 Steve Ellcey + + * 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 + + * 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 + + * 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 + + * config/darwin.c (darwin_override_options): Additional fix for + debug info formats that don't support var tracking. + +2007-07-25 Kaveh R. Ghazi + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + Mark Shinwell + + * 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 + Paul Brook + Joseph Myers + Mark Shinwell + + * 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... + (*add3_iwmmxt): New insn pattern. + (subv8qi3, subv4hi3, subv2si3): Remove. Replace with... + (*sub3_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... + (*smax3_iwmmxt, *umax3_iwmmxt, *smin3_iwmmxt) + (*umin3_iwmmxt): These. + (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with... + (ashr3_iwmmxt): This new pattern. + (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with... + (lshr3_iwmmxt): This new pattern. + (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with... + (ashl3_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 + + * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove + prototype. + +2007-07-24 Jan Hubicka + + * 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 + + * 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 + + * cfgloop.c (init_loops_structure): New function. + (flow_loops_find): Create root of the loop tree unconditionally. + +2007-07-24 Daniel Jacobowitz + + * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert. + +2007-07-24 Jan Hubicka + + * 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 + + * 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 + + * 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 + + * 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 + + * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with + ccp_min_invariant. + +2007-07-23 Peter Bergner + Jakub Jelinek + + 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 + + * 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 + + * 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 + + * config/mips/constraints.md (ks): New constraint. + * config/mips/mips.md (*add3_sp1, *add3_sp2): Fold into... + (*add3_mips16): ...here. + +2007-07-21 Uros Bizjak + + * 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 (signbit2): New insn pattern to implement + signbitf, signbit and signbitl built-ins as inline x87 intrinsics when + SSE mode is not active. + (isinf2): Disable for mfpmath=sse,387. + +2007-07-22 Ben Elliston + + * 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 + + * 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 + Richard Sandiford + + * 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__macc): Use a fixed-string, + alternative-dependent template. + +2007-07-20 Richard Sandiford + + * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of + no_new_pseudos. + +2007-07-20 Zdenek Dvorak + + * function.c (thread_prologue_and_epilogue_insns): Fix exit + predecessor fallthru flags. + +2007-07-20 Zdenek Dvorak + + * 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 + + * 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 + + * 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 + + * 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): New. + (sync_lock_test_and_set): New. + (sync_): New. + (sync_old_, sync_new_): New. + * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New. + (xtensa_expand_atomic): New. + +2007-07-18 Kaveh R. Ghazi + + 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + Danny Smith + + 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 + + * 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 + + * config/mips/mips.md (clear_cache): Treat the size argument as Pmode. + +2007-07-18 Richard Sandiford + + * config/mips/mips.md (*extendqihi2): Convert the destination + to SImode. + +2007-07-17 John David Anglin + + * config/pa/fptr.c: Update license header. + * config/pa/milli64.S: Likewise. + +2007-07-17 Nick Clifton + + * 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 + + PR rtl-optimization/32773 + * cfglayout.c (force_one_exit_fallthru): New function. + (cfg_layout_finalize): Use it. + +2007-07-16 Richard Guenther + Uros Bizjak + + * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond" + before forcing it to gimple operand. + +2007-07-16 Sandra Loosemore + David Ung + + * 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 + Nigel Stephens + + * 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 + + * 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 + + 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 + + PR target/32753 + * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn. + (cirrus_thumb2_movsi_insn): Ditto. + +2007-07-15 Geoffrey Keating + + * config/rs6000/darwin-fallback.c (interpret_libc): Change + CR2_REGNO to R_CR2. + +2007-07-15 Andrew Haley + + * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL + before looking in the context. + +2007-07-15 John David Anglin + + 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 + + * 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 + + * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype. + (DO_GLOBAL_DTORS_BODY): Likewise. + +2007-07-14 Sandra Loosemore + Nigel Stephens + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + PR other/32188 + * doc/libgcc.texi: Update DFP intrinsics for DPD and BID. + +2007-07-13 Andreas Schwab + + * gengtype-lex.l: Allow declarations to be indented. + +2007-07-12 Geoffrey Keating + + * 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 + + * 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 + + * config/sh/sh.c (mark_use): Remove. + +2007-07-12 Paul Brook + + * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch + reg does not overlap return value. + +2007-07-12 Daniel Berlin + + * 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 + + * config/i386/sse.md (storentdf, storentsf): New. + +2007-07-12 Geoffrey Keating + + * 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 + Devang Patel + + 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 + + * 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 + + * 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 + + PR rtl-optimization/32729 + * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks + that fallthru to exit. + +2007-07-12 Kaz Kojima + + * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis. + (symDTPOFF2reg): Likewise. + +2007-07-11 Daniel Berlin + + 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 + + * Makefile.in (mostlyclean): Remove object files. + +2007-07-11 Kenneth Zadeck + + * 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 + + 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 + + * 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 + + * 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 + + * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name + and letter field. + +2007-07-11 Douglas Gregor + + * 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 + + * 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 + + * 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 + + PR tree-optimization/32713 + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST. + +2007-07-11 Paolo Carlini + + 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 + + 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 + + * 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 + + * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative + version for 64-bit hosts. + +2007-07-10 David Daney + + * 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 + + * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than + no_new_pseudos. + +2007-07-10 David Daney + + * 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 + + * config/cris/cris.md ("movsi"): Fix typo in last change. + +2007-07-09 Geoffrey Keating + + 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 + + PR target/32708 + * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT. + (*vec_concatv2di_rex): New insn pattern. + +2007-07-10 Rainer Orth + + PR target/32538 + * config/mips/iris6.h (LIBGCC_SPEC): Add libm. + +2007-07-10 Ian Lance Taylor + + 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 (add3): 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 + + PR rtl-optimization/32664 + * mode-switching.c (create_pre_exit): Skip barrier insns. + +2007-07-10 Zdenek Dvorak + + * 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 + + * 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 + + * 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 (signbit2): New expander. + +2007-07-09 Richard Guenther + + PR middle-end/32698 + * fold-const.c (fold_plusminus_mult_expr): Move constant + arguments second to allow decomposing. + +2007-07-09 Alexandre Oliva + + Revert: + 2007-07-06 Alexandre Oliva + PR debug/23551 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Disregard DECL_FROM_INLINE. + +2007-07-09 Uros Bizjak + + 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 + + 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 + + * cse.c (cse_insn): Avoid invalid sharing on trial replacement. + +2007-07-09 Richard Guenther + + * c-decl.c (start_function): Do not promote return type. + +2007-07-08 Daniel Franke + + * function.c (do_warn_unused_parameter): Do not warn if + TREE_NO_WARNING is set. + +2007-07-08 Andreas Schwab + + * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo. + +2007-07-08 Sandra Loosemore + + Revert this patch: + 2007-07-06 Sandra Loosemore + + * 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 + + Revert (note the sccvn portions are *not* reverted) + 2007-07-06 Daniel Berlin + + 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 + + * 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 + + * 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 + + 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 + + * 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 + Zack Weinberg + + PR middle-end/32441 + * builtins.c (std_expand_builtin_va_start): Don't use make_tree. + +2007-07-06 Richard Sandiford + + * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP. + (prefetch): Likewise if "pref" would be used. + +2007-07-06 Josh Conner + + 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 + + * reload1.c (choose_reload_regs): Set reload_spill_index for regs + chosen during find_reloads. + +2007-07-06 Richard Guenther + + * 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 + + * 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 + + * 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 + + * c-common.c (boolean_increment): Use correctly typed + constant. + +2007-07-06 Richard Sandiford + + * 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 + + 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 + + PR debug/23551 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Disregard DECL_FROM_INLINE. + +2007-07-05 Adam Nemet + + * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or + IORing with a constant. + +2007-07-05 Seongbae Park + + 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 + + * arm.c (vfp3_const_double_index): Copy signed results of + REAL_VALUE_TO_INT into unsigned vars. + +2007-07-05 Richard Guenther + + 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 + + * 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 + + * 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 + + * config/mips/mips.c (mips_file_start): Avoid declaration + after code. + +2007-07-05 Sandra Loosemore + + * optabs.c (expand_binop_directly): Fix signed/unsigned comparison. + +2007-07-05 Uros Bizjak + + * rtl.def (NOTE): Change print format string to print + operand 5 as a note insn name. + +2007-07-05 Sandra Loosemore + David Ung + + * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors. + * doc/invoke.texi: (MIPS Options): Document them. + +2007-07-05 Sandra Loosemore + David Ung + + Add support for SmartMIPS ASE. + + * optabs.c (expand_binop_directly): New, broken out from... + (expand_binop): Here. Make it try rotating in the other + direction even when the second operand isn't constant. + * config/mips/mips.md (*lwxs): New. + * config/mips/mips.opt (msmartmips): New. + * config/mips/mips.c (mips_lwxs_address_p): New. + (mips_rtx_costs): Make it recognize scaled indexed addressing. + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define + __mips_smartmips when compiling for TARGET_SMARTMIPS. + (ISA_HAS_ROR): Define for TARGET_SMARTMIPS. + (ISA_HAS_LWXS): New. + (ASM_SPEC): Add -msmartmips/-mno-smartmips. + * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips. + * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case. + * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case. + * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case. + * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case. + * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case. + +2007-07-05 Dorit Nuzman + + * tree-vectorizer.c (new_loop_vec_info): Initialize + LOOP_VINFO_COST_MODEL_MIN_ITERS. + * tree-vectorizer.h (_loop_vec_info): Added new filed + min_profitable_iters. + (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field. + (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation. + * tree-vect-analyze.c (vect_analyze_operations): Set + LOOP_VINFO_COST_MODEL_MIN_ITERS. + * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use + VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS. + Fix calculation of peel_iters_prologue. Move consideration of epilogue + and prologue cost to after they are computed. + (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of + TARG_VEC_STMT_COST. + (vect_model_simple_cost): Takes additional argument dt. Consider cost + of creating vectors from scalars according to dt. + (vect_model_store_cost): Likewise. + (vectorizable_call): Use dt array instead of scalar dt. Call + vect_model_simple_cost with additional argument dt. + (vectorizable_assignment): Likewise. + (vectorizable_operation): Likewise. + (vectorizable_type_demotion): Likewise. + (vectorizable_type_promotion): Likewise. + (vectorizable_store): Use dt array instead of scalar dt. Call + vect_model_store_cost with additional argument dt. + (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". + +2007-07-05 Dorit Nuzman + + PR testsuite/32014 + * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF): + (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New. + (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns. + (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. + +2007-07-05 Zdenek Dvorak + + * config/i386/i386.c (ix86_address_cost): Do not consider more complex + addressing modes cheaper. + +2007-07-05 Alexandre Oliva + + * dwarf2out.c (dw_ranges_by_label_ref): New typedef. + (dw_ranges_struct): Rename block_num to num. Adjust. + (dw_ranges_by_label_struct): New. + (ranges_by_label, ranges_by_label_allocated, + ranges_by_label_in_use): New variables. + (add_ranges_num): Factored most of the code out of... + (add_ranges): ... this one. Rewrite in terms of the former. + (add_ranges_by_labels): New. + (output_ranges): Output by-label ranges. + (dwarf2out_finish): Output range for multiple-section + compile_unit. Output standard DW_AT_low_pc in addition to + unexpected DW_AT_entry_pc. + +2007-07-04 Daniel Berlin + + 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. + (compute_antic_aux): Don't print ANTIC_SAFE_LOADS. + (execute_pre): Don't call compute_antic_safe. + (vuse_equiv): New function. + (make_values_for_stmt): Use it + * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is + not always true. + +2007-07-04 Anatoly Sokolov + + PR target/31331 + * config/avr/avr.c (avr_naked_function_p): Handle receiving a type + rather than a decl. + (avr_attribute_table): Make "naked" attribute apply to function types + rather than to decls. + (avr_handle_fntype_attribute): New function. + +2007-07-04 Joseph Myers + + * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace + after \. + +2007-07-04 David Ung + Joseph Myers + + * config/mips/mips.md (type): Add logical, signext and move. + (one_cmpl2, *and3, *and3_mips16, *ior3, + *ior3_mips16, two unnamed insns after *ior3_mips16, + *nor3, "Combiner patterns to optimize truncate/zero_extend + combinations", *zero_extend2, + *zero_extendqihi2, *extend2_mips16e, + *extend2_se, *movdi_64bit, + *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc, + *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16, + *movsf_hardfloat, *movsf_softfloat, *movsf_mips16, + *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, + movv2sf_hardfloat_64bit): Use the new types. + (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16, + *movdf_softfloat, *movdf_mips16): Use "multi". + (extendqihi2): Replace with a define_expand. + (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New. + Based on extend2 patterns. + * config/mips/74k.md (r74k_int_logical): New reservation and + bypasses. + (r74k_int_arith): Remove "slt". + * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md, + config/mips/5400.md, config/mips/5500.md, config/mips/5k.md, + config/mips/7000.md, config/mips/9000.md, config/mips/generic.md, + config/mips/sb1.md, config/mips/sr71k.md: Add new types to + reservations for "arith". + +2007-07-04 Richard Guenther + + * tree-ssa.c (useless_type_conversion_p): Add handling for + scalar float and vector types. Only call the types_compatible_p + langhook for aggregate types as last resort. Follow the + rules. + 2007-07-04 Richard Guenther * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR @@ -984,7 +3250,8 @@ * genmodes.c (struct mode_data): Add ibit and fbit fields. (blank_mode): Initialize ibit and fbit. (adj_ibit, adj_fbit): New to adjust ibit and fbit. - (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. + (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, + MODE_UACCUM. (new_adjust): Change required_class to required_class_from and required_class_to for testing within a range. (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, @@ -1341,7 +3608,7 @@ offsets->locals_base to avoid negative stack size. (thumb1_expand_prologue): Assert on negative stack size. -2007-04-19 Sebastian Pop +2007-06-19 Sebastian Pop PR tree-optimization/32367 * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side @@ -1351,7 +3618,8 @@ 2007-06-19 Bob Wilson * config/xtensa/xtensa.c: Include "df.h". - (xtensa_builtin_saveregs): Use adjust_address instead of change_address. + (xtensa_builtin_saveregs): Use adjust_address instead of + change_address. (xtensa_va_start): Invoke make_tree with sizetype for expand_builtin_saveregs and then convert the result to a pointer. Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst. @@ -2053,7 +4321,8 @@ * opts.c (common_handle_option): Handle new option -fdbg-cnt-list. * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value to indicate an error. - (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions + (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): + New functions. (dbg_cnt_process_opt): Print an error on a bad argument. * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration. * common.opt (-fdbg-cnt-list): New. @@ -2162,8 +4431,8 @@ (reorder_var_tracking_notes): New function. (bfin_reorg): Pass no argument to split_all_insns. Don't call update_life_info. Call df_analyze after scheduling and bundle - generation. Call reorder_var_tracking_notes if generating these notes. - Call df_finish_pass at the end. + generation. Call reorder_var_tracking_notes if generating these + notes. Call df_finish_pass at the end. 2007-06-12 Dirk Mueller @@ -2416,7 +4685,7 @@ 2007-06-08 Harsha Jagasia Tony Linthicum - * 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. @@ -2658,13 +4927,15 @@ * tree-ssa.c (init_tree_ssa): Use type safe memory macros. * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as variable names. - * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros. + * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory + macros. (add_cost_one_coalesce): Likewise. * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as variable names. Rename orig to orig_name for consistency. - * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding - conventions. - (cprop_into_successor_phis): Avoid using C++ keywords as variable names. + * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the + coding conventions. + (cprop_into_successor_phis): Avoid using C++ keywords as variable + names. (record_equivalences_from_stmt): Likewise. * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to the coding conventions. @@ -2680,8 +4951,8 @@ (memref_hash): Likewise. (memref_eq): Likewise. (gather_mem_refs_stmt): Likewise. - * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++ - keywords as variable names. + * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid + using C++ keywords as variable names. (idx_find_step): Cast according to the coding conventions. (idx_record_use): Likewise. (find_depends): Likewise. @@ -2695,8 +4966,8 @@ * tree-ssa-math-opts.c (occ_new ): Likwise. * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory macros. - * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable - names. + * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as + variable names. (add_use_op): Likewise. (add_vop): Likewise. (add_vuse_op): Likewise. @@ -4497,7 +6768,8 @@ decimal_single_format, decimal_double_format, decimal_quad_format, c4x_single_format, c4x_extended_format, real_internal_format): Remove initialization of log2_b. - * real.h (i370_single_format, i370_double_format): Declarations removed. + * real.h (i370_single_format, i370_double_format): Declarations + removed. * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b field to always be one. @@ -4526,7 +6798,7 @@ * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. * ddg.c (create_ddg): LIkewise. - * final.c (final): Remove hunk moving line numbernotes around since + * final.c (final): Remove hunk moving line number notes around since they are no longer present at this stage. (final_scan_insn): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. @@ -4548,8 +6820,8 @@ * function.c (reorder_blocks_1): Likewise. (epilogue_done): Likewise. (reposition_prologue_and_epilogue_notes): Likewise. - * print-rtl.c (print_rtx): Likewise; drop code for printing line number - notes. + * print-rtl.c (print_rtx): Likewise; drop code for printing + line number notes. (print_rtl): Likewise. (print_rtl_single): Likewise. * gcse.c (insert_insn_start_bb): Likewise. @@ -4651,7 +6923,7 @@ float constant. (_m_to_float): Use C89 compatible assignment. -2007-04-20 Martin Michlmayr +2007-05-20 Martin Michlmayr PR target/32007 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines. @@ -4678,8 +6950,8 @@ (_mm_shufle_ps): Ditto. Add const to __mask argument. * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument. (_mm_slli_epi32): Ditto. - (_mm_srli_si128): Implement as always inlined function, not as a macro. - Add __inline to function declaration. + (_mm_srli_si128): Implement as always inlined function, not as a + macro. Add __inline to function declaration. (_mm_slli_si128): Ditto. 2007-05-19 Uros Bizjak @@ -5041,7 +7313,8 @@ * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize, pass_linear_transfom, pass_empty_loop, pass_complete_unroll, pass_iv_optimize): Add TODO_ggc_collect. - * function.h (struct function): Remove skip marker from x_current_loops. + * function.h (struct function): Remove skip marker from + x_current_loops. * cfgloop.c: Include ggc.h. (flow_loops_free, flow_loop_free): Free the loop descriptions in gc memory. @@ -5053,8 +7326,8 @@ (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect that head of exits list is now not a part of struct loop. (record_loop_exits): Allocate exits table in gc memory. - (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that - head of exits list is now not a part of struct loop. + (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect + that head of exits list is now not a part of struct loop. * cfgloop.h (struct lpt_decision, struct nb_iter_bound, struct loop_exit): Add GTY marker. (struct loop): Add GTY marker. Make superloops vector gc allocated. @@ -5063,8 +7336,8 @@ (struct loops): Add GTY marker. Make larray vector gc allocated. Add param marker to exits table. (get_loops): Type changed. - * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h - dependency. + * Makefile.in (tree-scalar-evolution.o): Add + gt-tree-scalar-evolution.h dependency. (cfgloop.o, loop-init.o): Add ggc.h dependency. (GTFILES): Add cfgloop.h and tree-scalar-evolution.c. * basic-block.h (struct basic_block_def): Remove skip marker from @@ -5133,8 +7406,8 @@ * c-format.c (check_format_types): Use unsigned_type_for instead of c_common_unsigned_type. * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove. - * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of - c_common_unsigned_type. + * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead + of c_common_unsigned_type. * convert.c (convert_to_integer): Use unsigned_type_for instead of lang_hooks.types.unsigned_type. * expmed.c (make_tree): Use unsigned_type_for instead of @@ -5197,10 +7470,10 @@ and dr_analyze_alias. (initialize_data_dependence_relation): Use dr_may_alias_p and object_address_invariant_in_loop_p. - (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr) - is chrec_dont_know. - (find_data_references_in_stmt): Restrict the analysis of data references - to the given loop nest. + (compute_self_dependence): Handle the case when + DDR_ARE_DEPENDENT (ddr) is chrec_dont_know. + (find_data_references_in_stmt): Restrict the analysis of data + references to the given loop nest. (find_data_references_in_loop): Made static. Pass loop nest to find_data_references_in_stmt. (compute_data_dependences_for_loop): Use DR_VOPS. @@ -5302,8 +7575,8 @@ superloops vector instead of "pred" array. (establish_preds): Take father loop as an argument. Initialize the superloops vector. - (flow_loop_tree_node_add): Pass father loop to establish_preds. Do not - initialize loop->outer. + (flow_loop_tree_node_add): Pass father loop to establish_preds. + Do not initialize loop->outer. (flow_loop_tree_node_remove): Truncate the superloops vector. * cfgloop.h (struct loop): Removed field "outer", fields "depth" and "pred" merged to "superloops" vector. @@ -5353,8 +7626,8 @@ 2007-05-10 Zdenek Dvorak PR tree-optimization/31885 - * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE - to be undetermined. + * tree-chrec.c (chrec_contains_undetermined): Do not consider + NULL_TREE to be undetermined. (automatically_generated_chrec_p): Return false for NULL. 2007-05-08 Bernd Schmidt @@ -5389,8 +7662,8 @@ 2007-05-09 Bob Wilson * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits - for floating-point values if HOST_BITS_PER_LONG > 32. Use split_double - instead of operand_subword. + for floating-point values if HOST_BITS_PER_LONG > 32. Use + split_double instead of operand_subword. 2007-05-08 Bernd Schmidt @@ -5666,7 +7939,7 @@ size never inline functions increasing caller size. (cgraph_early_inlining): Inline for size when optimizing for size. -2007-04-18 Bernd Schmidt +2007-05-04 Bernd Schmidt * config/bfin/bfin.md (di3): Now a define_expand which expands logical operations piecewise. @@ -5725,8 +7998,8 @@ 2007-05-03 Jan Hubicka - * fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y), - for pointer type in more cases than before. + * fold-const.c (fold_unary): Convert (T1)(X op Y) into + ((T1)X op (T1)Y), for pointer type in more cases than before. * gimplify.c (gimplify_expr): Fold (void *)&a + 4. @@ -5786,8 +8059,8 @@ 2007-05-03 Dorit Nuzman PR tree-optimization/31699 - * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong - code. + * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove + wrong code. (vect_enhance_data_refs_alignment): Compute peel amount using TYPE_VECTOR_SUBPARTS instead of vf. * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise. @@ -6110,8 +8383,8 @@ (reset_block_changes, record_block_change, finalize_block_changes, check_block_change, free_block_changes): Kill. * function.h (reset_block_changes, record_block_change, - finalize_block_changes, check_block_change, free_block_changes): Remove - prototypes. + finalize_block_changes, check_block_change, free_block_changes): + Remove prototypes. (struct function): Remove ib_boundaries_block. * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): Use curr_insn_locator to initialize locator. @@ -6271,8 +8544,8 @@ * tree-flow.h (disband_implicit_edges): Declaration removed. * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR branches. - (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle COND_EXPRs - without gotos. + (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle + COND_EXPRs without gotos. (disband_implicit_edges, has_label_p): Removed. (tree_verify_flow_info): Verify that COND_EXPR branches are empty. (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR @@ -6385,8 +8658,8 @@ 2007-04-25 Bob Wilson - * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an exception - for divide-by-zero. + * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an + exception for divide-by-zero. (__umodsi3, __modsi3): Likewise. 2007-04-25 Dirk Mueller @@ -6530,8 +8803,8 @@ 2007-04-24 Andreas Krebbel PR target/31641 - * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length - argument of 0 for memset. + * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant + length argument of 0 for memset. (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use unsigned shift instead of the signed variant. @@ -6601,8 +8874,8 @@ (reset_block_changes, record_block_change, finalize_block_changes, check_block_change, free_block_changes): Kill. * function.h (reset_block_changes, record_block_change, - finalize_block_changes, check_block_change, free_block_changes): Remove - prototypes. + finalize_block_changes, check_block_change, free_block_changes): + Remove prototypes. (struct function): Remove ib_boundaries_block. * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): Use curr_insn_locator to initialize locator. @@ -6804,8 +9077,8 @@ (reset_block_changes, record_block_change, finalize_block_changes, check_block_change, free_block_changes): Kill. * function.h (reset_block_changes, record_block_change, - finalize_block_changes, check_block_change, free_block_changes): Remove - prototypes. + finalize_block_changes, check_block_change, free_block_changes): + Remove prototypes. (struct function): Remove ib_boundaries_block. * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): Use curr_insn_locator to initialize locator. @@ -7458,8 +9731,8 @@ 2007-04-14 Jakub Jelinek PR c++/25874 - * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators, - post dominators and cleanup cfg before returning. + * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free + dominators, post dominators and cleanup cfg before returning. 2007-04-14 Bernd Schmidt @@ -7638,8 +9911,8 @@ * config/mips/mips.c (mips_global_symbol_p): New function. (mips_symbol_binds_local_p): Likewise. (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP - and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use mips_global_symbol_p - and mips_symbol_binds_local_p. + and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use + mips_global_symbol_p and mips_symbol_binds_local_p. (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns) (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP, SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to @@ -7815,7 +10088,8 @@ 2007-04-11 Sebastian Pop * tree-data-ref.c (affine_function_zero_p, constant_access_functions, - insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New. + insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): + New. (build_classic_dist_vector): Call add_distance_for_zero_overlaps. 2007-04-11 Zdenek Dvorak @@ -8616,8 +10890,8 @@ 2007-03-30 Zdenek Dvorak PR tree-optimization/31383 - * tree-data-ref.c (affine_function_equal_p): Do not require the vectors - to have the same length. + * tree-data-ref.c (affine_function_equal_p): Do not require the + vectors to have the same length. 2007-03-30 Jan Hubicka @@ -8733,8 +11007,8 @@ 2007-03-29 Andreas Krebbel - * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if - SRC->DEST replacement failed anyway. + * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair + action if SRC->DEST replacement failed anyway. 2007-03-28 Mike Stump @@ -8960,9 +11234,9 @@ * gengtype-lex.l: Distinguish unions from structures in the token type. Don't call find_structure; return the tag as a string. - * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION. - Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string. - Reorganize typedef_struct production accordingly. + * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and + ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is + string. Reorganize typedef_struct production accordingly. Use create_nested_ptr_option. * gengtype.c (create_nested_ptr_option): New function. * gengtype.h: Declare it. @@ -8979,8 +11253,8 @@ or scalar_nonchar as appropriate. (adjust_field_type): Look at scalar_is_char boolean to decide whether to use string_type. - (throughout): Use scalar_nonchar instead of calling create_scalar_type, - whenever possible. + (throughout): Use scalar_nonchar instead of calling + create_scalar_type, whenever possible. (main): Initialize scalar_char and scalar_nonchar before calling gen_rtx_next. * gengtype-lex.l: Adjust for removal of second argument to @@ -9566,9 +11840,9 @@ (fT0): New mode attribute. ("*movdi_64dfp", "*movdf_64dfp", "*neg2_nocc", "*abs2_nocc", "*negabs2_nocc", "copysign3"): Insn definitions added. - * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction - no secondary memory is needed when moving DFmode values between GPRs - and FPRs. + * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new + instruction no secondary memory is needed when moving DFmode values + between GPRs and FPRs. 2007-03-19 Andreas Krebbel @@ -9613,8 +11887,8 @@ 2007-03-18 John David Anglin * pa.md: Add fpstore_load and store_fpload instruction types. Provide - reservation, bypass and anti-bypass descriptions for these instructions. - Update move patterns. + reservation, bypass and anti-bypass descriptions for these + instructions. Update move patterns. * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and TYPE_FPSTORE. @@ -9923,9 +12197,9 @@ 2007-03-13 Jan Hubicka - * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes, - when profile esitmate is present, calls with very low frequency are - cold. + * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold + attributes, when profile esitmate is present, calls with very low + frequency are cold. 2007-03-13 Zdenek Dvorak @@ -10197,10 +12471,11 @@ 2007-03-09 John David Anglin - * pa.c (attr_length_call): Revise condition for long pc-relative branch. - (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local - calls on the SOM target. Don't use "LONG_PIC_PCREL" call sequence on - SOM target. + * pa.c (attr_length_call): Revise condition for long + pc-relative branch. + (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long + local calls on the SOM target. Don't use "LONG_PIC_PCREL" call + sequence on SOM target. 2007-03-09 Geoffrey Keating @@ -10624,7 +12899,8 @@ -mstack-size is used without providing -mstack-guard. (s390_emit_prologue): Choose stack_guard value automatically if not provided via command line. - * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size. + * doc/invoke.texi: Adjust description of -mstack-guard and + -mstack-size. 2007-03-07 Richard Sandiford @@ -10673,8 +12949,8 @@ 2007-03-06 Jan Hubicka * errors.h (warning, error, fatal, internal_error): Mark as cold. - * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions - are hot. + * predict.c (maybe_hot_bb): Cold functions are never hot; hot + functions are hot. (probably_cold_bb_p): Cold functions are cold. (probably_never_executed_bb_p): Cold functions are cold. (tree_bb_level_predictions): Predict calls to cold functions as not @@ -10704,8 +12980,8 @@ * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit. * cmodel.h: Add LARGE PIC. * i386.md (UNSPEC_PLTOFF): New. - (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as - needed. + (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other + unspecs as needed. (*call_1_rex64): Disable for large models. (*call_1_rex64_large): New. (*call_value_1_rex64): Disable for large models. @@ -10726,8 +13002,8 @@ (ix86_output_addr_diff_elt): Output 64bit tables when needed. (ix86_expand_move): Legitimize pic address when in PIC mode. (construct_plt_address): New function. - (ix86_expand_call): Offload the address to register and use GOT pointer - for large model. + (ix86_expand_call): Offload the address to register and use GOT + pointer for large model. * invoke.texi (mcmodel=large): Update documentation. 2007-03-06 Richard Henderson @@ -11317,10 +13593,10 @@ 2007-03-01 Zdenek Dvorak - * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the unroll - factor by the estimated number of iterations. - (loop_prefetch_arrays): Do not prefetch in loops that iterate less than - prefetch latency. + * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the + unroll factor by the estimated number of iterations. + (loop_prefetch_arrays): Do not prefetch in loops that iterate less + than prefetch latency. * config/i386/driver-i386.c (describe_cache, detect_caches_amd, decode_caches_intel, detect_caches_intel): New functions. @@ -11702,7 +13978,8 @@ 2007-02-24 Jan Hubicka PR middle-end/30509 - * tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining. + * tree-inline.c (copy_bb): Produce exact copy of EH info when + copying for inlining. 2007-02-24 Uros Bizjak Jan Hubicka @@ -12884,8 +15161,8 @@ * function.c (gimplify_parameters): Use build_call_expr. - * tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH - instead of TREE_CODE_LENGTH. + * tree-vectorizer.c (vect_is_simple_reduction): Use + TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators. (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR. @@ -13070,8 +15347,9 @@ * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR accessors. - * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR - instead of arglist. Use new CALL_EXPR accessors. Fix callers. + * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire + CALL_EXPR instead of arglist. Use new CALL_EXPR accessors. + Fix callers. (bfin_expand_unop_builtin): Likewise. (bfin_expand_builtin): Use new CALL_EXPR accessors. @@ -13893,8 +16171,8 @@ the new forwarder block. (make_forwarder_block): Only call new_bb_cbk if it is not NULL. Handle the case latch is NULL. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg modifications - when marking loop exits. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg + modifications when marking loop exits. * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot be modified. * loop-init.c (loop_optimizer_init): Do not modify cfg. Call @@ -14562,8 +16840,8 @@ 2007-02-02 Maxim Kuvyrkov PR target/29682 - * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to - general or fp registers. Add comments. + * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory + loads to general or fp registers. Add comments. * config/ia64/ia64.md (reg_pred_prefix): Add comment. 2007-02-02 Paolo Bonzini @@ -14631,8 +16909,8 @@ (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment. - (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration and - all callers. + (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration + and all callers. (dep_cost): Declare. * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks. @@ -14734,8 +17012,8 @@ * target.h (struct _dep): Declare to use in gcc_target.sched.is_costly_dependence. (struct gcc_target.sched.adjust_cost): Fix typo. - (struct gcc_target.sched.is_costly_dependence): Change signature to use - single dep_t parameter instead of an equivalent triad. + (struct gcc_target.sched.is_costly_dependence): Change signature to + use single dep_t parameter instead of an equivalent triad. (struct gcc_target.sched.adjust_cost_2): Remove. * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove. @@ -14757,8 +17035,8 @@ new scheduler dependencies lists. (ia64_gen_check): Ditto. - * config/mips/mips.c (vr4130_swap_insns_p): Update to use new scheduler - dependencies lists. + * config/mips/mips.c (vr4130_swap_insns_p): Update to use new + scheduler dependencies lists. * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change signature to correspond to the targetm.sched.is_costly_dependence hook. @@ -15103,8 +17381,8 @@ 2007-01-28 Jan Hubicka - * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add - variant handling histograms; add wrapper. + * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): + Add variant handling histograms; add wrapper. (clear_storage_via_libcall): Export. (emit_block_move_hints): Break out from ...; add histograms. (emit_block_move): ... this one. @@ -15116,8 +17394,8 @@ (set_storage_via_setmem): Update prototype. * doc/md.texi (movmem, setmem): Document new arguments. - * value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add - new histograms. + * value-prof.c (dump_histogram_value, tree_find_values_to_profile): + Add new histograms. (stringop_block_profile): New global function. (tree_stringops_values_to_profile): Profile block size and alignment. * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and @@ -15436,8 +17714,8 @@ * ipa-inline.c (initial_insns, max_insns): Delete. (compute_max_insns): New function. - (cgraph_decide_inlining_of_small_function): Use it; take minimal amount - of insns as base for code growth. + (cgraph_decide_inlining_of_small_function): Use it; take minimal + amount of insns as base for code growth. (cgraph_decide_inlining): Make initial_insns local; do not compute max_insns. * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60. @@ -15487,8 +17765,9 @@ * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with _uleb128_t and _Unwind_SWord with _sleb128_t. - * unwind-dw2.c (extract_cie_info, execute_stack_op, execute_cfa_program, - uw_frame_state_for, uw_update_context_1): Likewise. + * unwind-dw2.c (extract_cie_info, execute_stack_op, + execute_cfa_program, uw_frame_state_for, uw_update_context_1): + Likewise. * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise. * unwind-pe.h (read_uleb128, read_sleb128, read_encoded_value_with_base): Likewise. @@ -15501,7 +17780,8 @@ 2007-01-24 Jan Hubicka - * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS of calls. + * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS + of calls. 2007-01-24 Andreas Krebbel @@ -16538,14 +18818,16 @@ 2007-01-16 Jan Hubicka * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing - the names, just unlink the chain so we don't crash on dangling pointers + the names, just unlink the chain so we don't crash on dangling + pointers to dead SSA names. 2007-01-16 Jan Hubicka * cgraph.h (cgraph_decide_inlining_incrementally): Kill. * tree-pass.h: Reorder to make IPA passes appear toegher. - (pass_early_inline, pass_inline_parameters, pass_apply_inline): Declare. + (pass_early_inline, pass_inline_parameters, pass_apply_inline): + Declare. * cgraphunit.c (cgraph_finalize_function): Do not compute inling parameters, do not call early inliner. * ipa-inline.c: Update comments. Include tree-flow.h @@ -16821,7 +19103,8 @@ (set_single_exit): Removed. * cfgloop.h (struct loop_exit): New function. (struct loop): single_exit_ field replaced by exits field. - (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by LOOPS_HAVE_RECORDED_EXITS. + (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by + LOOPS_HAVE_RECORDED_EXITS. (struct loops): Added exits hash. (mark_single_exit_loops, set_single_exit): Declaration removed. (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare. @@ -17564,8 +19847,8 @@ Adjust register allocate order and update some macro define. * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store, mdx_block_move_straight, mdx_block_move_loop_head, - mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop, - mdx_block_move): Added. + mdx_block_move_loop_body, mdx_block_move_loop_foot, + mdx_block_move_loop, mdx_block_move): Added. (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi, mdp_limm): Updated and fix some bug and typo. * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.