+2007-09-07 Janis Johnson <janis187@us.ibm.com>
+
+ config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
+ config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.
+
+ Reapply reverted changes:
+
+ 2007-09-06 Jan Hubicka <jh@suse.cz>
+
+ * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call of
+ real_2expN.
+
+ 2007-09-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
+ (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
+
+ 2007-09-05 Janis Johnson <janis187@us.ibm.com>
+
+ * optabs.c (expand_float): Convert unsigned integer as signed only
+ if it provides sufficient accuracy; add mode argument to real_2expN.
+ (expand_fix): Fix comment typos; extend binary float into mode
+ wider than destination for converion to unsigned integer; add mode
+ argument to real_2expN.
+ * real.c (real_2expN): Add mode argument to special-case decimal
+ float values.
+ * real.h (real_2expN): Ditto.
+ * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
+ real_2expN.
+ (fixed_from_string): Ditto.
+ (fixed_to_decimal): Ditto.
+ (fixed_convert_from_real): Ditto.
+ (real_convert_from_fixed): Ditto.
+ * config/rs6000/rs6000.md (FP): Include DD and TD modes.
+ * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
+ muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
+ floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
+
+2007-09-07 Diego Novillo <dnovillo@google.com>
+
+ * tree-flow.h (const_block_stmt_iterator): Remove.
+ Update all users to use block_stmt_iterator.
+ * tree-iterator.h (const_tree_stmt_iterator): Remove.
+ Update all users to use tree_stmt_iterator.
+
+2007-09-07 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/mips/mips.c (mips_set_current_function): Temporarily
+ make this a no-op to fix bootstrap errors, pending rewrite.
+
+2007-09-07 Jan Hubicka <jh@suse.cz>
+
+ * reorg.c (dbr_schedule): Move code removing placeholder USEs later
+ in the pass.
+
+2007-09-07 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/33299
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Update uses
+ for all relevant loop-exit phis, not just the first.
+
+2007-09-07 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/33330
+ * tree-ssa-operands.c (access_can_touch_variable): An access
+ of the form (*p)[0] can touch a variable of same size.
+
+2007-09-07 Jan Hubicka <jh@suse.cz>
+
+ * passes.c (init_optimization_passes): Add simple dce and addressable
+ passes.
+ * tree-ssa.c (execute_update_addresses_taken): New function.
+ (pass_update_address_taken): New.
+ * tree-ssa-dse.c (execute_simple_dse): New function.
+ (pass_simple_dse): New.
+ * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
+
+2007-09-07 Tobias Burnus <burnus@net-b.de>
+
+ PR middle-end/33321
+ * doc/invoke.texi: Fix -Wstrict-overflow= table.
+
+2007-09-07 Richard Guenther <rguenther@suse.de>
+
+ Revert
+ 2007-09-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/32586
+ * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
+ folding if nothing changed.
+ (simplify_unary_expression): New function. Do tree combining
+ on conversion like codes.
+ (try_to_simplify): Call it.
+
+2007-09-07 Richard Guenther <rguenther@suse.de>
+ Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/32821
+ * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
+ NULL in the call to set_bb_stmt_list.
+
+2007-09-07 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (build_mips16_call_stub): Emit all direct
+ float calls here, rather than leaving some to the caller.
+ Use call_internal_direct and call_value_internal_direct.
+ * config/mips/mips.md (call_internal_direct): New pattern.
+ (call_value_internal_direct): Likewise.
+
+2007-09-07 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
+ (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
+ to 0 for MIPS16.
+ (override_options): Set mips_base_move_loop_invariants.
+
+2007-09-07 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.opt (mcode-readable=): Move to keep list
+ alphabetical.
+
+2007-09-07 Richard Sandiford <richard@codesourcery.com>
+
+ * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
+ and -mgpopt options. Adjust the -G documentation to match.
+ * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
+ * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
+ function, split out from mips_classify_symbol. Return false for
+ !TARGET_LOCAL_SDATA.
+ (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
+ Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
+ (override_options): Check whether the -mgpopt setting is consistent
+ with the other flags.
+ (symbolic_expression_p): Delete.
+ (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
+ and default_elf_select_rtx_section.
+ (mips_in_small_data_p): Honor section attributes for MIPS16 too.
+ Return false for local data unless TARGET_LOCAL_SDATA. Likewise
+ external data and TARGET_EXTERN_SDATA.
+
+2007-09-07 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/33303
+ * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
+
+2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
+ FOR_BB_INSNS_SAFE instead of for loop.
+ * cse.c (cse_extended_basic_block): Likewise.
+ * postreload.c (reload_cse_regs_1): New variable next. Make sure
+ that the for loop does not invoke NEXT_INSN on a deleted insn.
+ * function.c (instantiate_virtual_regs): Likewise.
+ * lower-subreg.c (remove_retval_note): Likewise.
+ (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
+ FOR_BB_INSNS.
+ * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
+ a deleted insn.
+ * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
+ insn, if it's a jump.
+ (try_redirect_by_replacing_jump): New variable jump_p. Call
+ tablejump_p before delete_insn_chain.
+ * reload1.c (reload): New variable next. Make sure that the for
+ loop does not invoke NEXT_INSN on a deleted insn.
+ (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
+ (delete_output_reload): New variable prev. Make sure the the for
+ loops do not invoke PREV_INSN on a deleted insn.
+
+2007-09-06 Zdenek Dvorak <ook@ucw.cz>
+
+ * cgraphbuild.c (rebuild_cgraph_edges): Export.
+ * cgraph.h (rebuild_cgraph_edges): Declare.
+ * tree-pass.h (pass_expand_omp_ssa): New.
+ * omp-low.c (find_omp_clause): Export.
+ (copy_var_decl): Split from omp_copy_decl_2.
+ (build_omp_barrier): Return the call to emit instead of emitting
+ it directly.
+ (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
+ build_omp_barrier.
+ (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
+ expand_omp_for_generic, expand_omp_for_static_nochunk,
+ expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
+ Adapted to work on SSA form.
+ (execute_expand_omp): Do not invalidate dominance information.
+ (gate_expand_omp): Do not run with -fopenmp-ssa flag.
+ (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
+ * gimplify.c (gimplify_omp_for): Ensure that the control variable is
+ a gimple_reg.
+ (force_gimple_operand): Allow gimplifying code expressions without
+ value.
+ * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
+ * common.opt (fopenmp-ssa): New.
+ * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
+ * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
+ * tree-cfg.c: Include tree-inline.h.
+ (struct move_stmt_d): Replace vars_to_remove by vars_map field.
+ (replace_by_duplicate_decl, replace_ssa_name,
+ mark_virtual_ops_in_region): New functions.
+ (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
+ to work on SSA form.
+ * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
+ * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
+ constructs.
+
+2007-09-06 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * tree-loop-linear.c: Include obstack.h.
+ (linear_transform_loops): New obstack lambda_obstack.
+ Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
+ lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
+ and free afterwards.
+ * lambda.h (struct obstack): New forward declaration.
+ (lambda_linear_expression_new): New parameter of type struct
+ obstack *.
+ (lambda_loopnest_new): Likewise.
+ (lambda_loopnest_transform): Likewise.
+ (lambda_body_vector_new): Likewise.
+ (lambda_body_vector_compute_new): Likewise.
+ (gcc_loopnest_to_lambda_loopnest): Likewise.
+ (lambda_loopnest_to_gcc_loopnest): Likewise.
+ * lambda-code.c: Include obstack.h.
+ (lambda_lattice_new): New parameter lambda_obstack. Use it for
+ allocation of ret.
+ (lambda_body_vector_new): Likewise.
+ (lambda_linear_expression_new): Likewise.
+ (lambda_lattice_new): Likewise.
+ (lambda_loopnest_new): Likewise. Additionally use obstack to
+ allocate LN_LOOPS(ret).
+ (lambda_lattice_compute_base): New parameter lambda_obstack. Pass
+ it to lambda_lattice_new.
+ (lambda_body_vector_compute_new): New parameter lambda_obstack.
+ Pass it to lambda_body_vector_new.
+ (lambda_lattice_compute_base): New paramater lambda_obstack. Pass
+ it to lambda_lattice_new.
+ (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
+ Pass it to lambda_loopnest_new, lambda_linear_expression_new.
+ (lambda_compute_target_space): Likewise.
+ (lambda_compute_auxillary_space): New parameter lambda_obstack.
+ Pass it to lambda_lattice_compute_base and
+ compute_nest_using_fourieer_motzkin.
+ (lambda_loopnest_transform): New parameter lambda_obstack. Pass
+ it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
+ and lambda_lattice_compute_target_space.
+ (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
+ Pass it to lambda_linear_expression_new.
+ (gcc_loop_to_lambda_loop): New parameter lambda_obstack. Pass it
+ to gcc_tree_to_linear_expression.
+ (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
+ Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
+ (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
+ Pass it to lambda_body_vector_new and
+ lambda_body_vector_compute_new.
+ * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
+ (lambda-code.o): Likewise.
+
+2007-09-06 Chao-ying Fu <fu@mips.com>
+
+ * ginclude/stdfix.h: New file.
+ * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
+ (convert.o): Add dependence on fixed-value.h.
+ * c-convert.c (convert): Support FIXED_POINT_TYPE.
+ * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
+ to define fixed-point constants.
+ (c_cpp_builtins): Define fixed-point constants.
+ * convert.c (fixed-value.h): New include.
+ (convert_to_real): Update comment to include fixed-point.
+ Support FIXED_POINT_TYPE.
+ (convert_to_integer): Update comment to include fixed-point.
+ Support FIXED_POINT_TYPE.
+ (convert_to_complex): Support FIXED_POINT_TYPE.
+ (convert_to_fixed): New function.
+ * convert.h (convert_to_fixed): Declare.
+ * genopinit.c: Add comment about $Q for only fixed-point modes.
+ (optabs): Add fract_optab, fractuns_optab, satfract_optab,
+ satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
+ sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
+ ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
+ usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
+ usneg_optab for fixed-point modes.
+ (gen_insn): Add force_fixed to track the $Q format for all fixed-point
+ modes.
+ * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
+ PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
+ unsigned saturation optabs, when type is saturating.
+ (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
+ (expand_fixed_convert): New function.
+ (gen_fixed_libfunc, gen_signed_fixed_libfunc,
+ gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
+ gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
+ gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
+ gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
+ gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
+ functions.
+ (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
+ ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
+ usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
+ ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
+ usneg_optab, fract_optab, fractuns_optab, satfract_optab,
+ satfractuns_optab.
+ Initialize fixed-point libraries, including add, ssadd, usadd, sub,
+ sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
+ ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
+ fractuns, satfractuns.
+ * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
+ OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
+ OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
+ OTI_ssmsub_widen, OTI_usmsub_widen.
+ (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
+ usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
+ ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
+ umsub_widen_optab, usmsub_widen_optab): Define.
+ (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
+ COI_satfractuns.
+ (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
+ Define.
+ (expand_fixed_convert): Declare.
+ * expr.c (convert_move): Support the move of fixed-point modes.
+ (emit_move_insn_1): Handle fixed-point mode to move via integer.
+ (categorize_ctor_elements_1): Handle FIXED_CST.
+ (count_type_elements): Handle FIXED_POINT_TYPE.
+ (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
+ MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
+ Support FIXED_CST.
+ For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
+ multiply and add/subtract for fixed-point types.
+ For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
+ mode, we jump to binop directly.
+ Support FIXED_CONVERT_EXPR.
+ (do_store_flag): Check FIXED_CST to put a constant second.
+ (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
+ MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
+ (const_vector_from_tree): Support FIXED_CST.
+ * doc/extend.texi (Fixed-Point): New node.
+ * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
+ ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
+ satfract, fractuns, satfractuns): Document them.
+
+2007-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
+ addresses into I registers.
+
+2007-09-06 Jan Hubicka <jh@suse.cz>
+ Andreas Tobler <a.tobler@schweiz.org>
+
+ * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
+ sharing.
+ (machopic_legitimize_pic_address): Likewise.
+
+2007-09-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Jan Hubicka <jh@suse.cz>
+
+ * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
+ instead of ufloat_optab->handlers directly.
+ (floatdidf2): Likewise.
+
+2007-09-06 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/mips/mips.c: Include diagnostic.h.
+ (mips_set_current_function): Check errorcount and sorrycount
+ before generating RTL.
+
+2007-09-06 Richard Sandiford <richard@codesourcery.com>
+
+ PR target/33256
+ * config/mips/mips.c (mips_classify_symbolic_expression): New function.
+ (mips_classify_address): Use it instead of mips_symbolic_constant_p.
+ (print_operand_reloc): Likewise.
+
+2007-09-06 Janis Johnson <janis187@us.ibm.com>
+
+ Revert:
+
+ 2007-09-06 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
+ real_2expN.
+
+ 2007-09-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
+ (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
+
+ 2007-09-05 Janis Johnson <janis187@us.ibm.com>
+
+ * optabs.c (expand_float): Convert unsigned integer as signed only
+ if it provides sufficient accuracy; add mode argument to real_2expN.
+ (expand_fix): Fix comment typos; extend binary float into mode
+ wider than destination for converion to unsigned integer; add mode
+ argument to real_2expN.
+ * real.c (real_2expN): Add mode argument to special-case decimal
+ float values.
+ * real.h (real_2expN): Ditto.
+ * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
+ real_2expN.
+ (fixed_from_string): Ditto.
+ (fixed_to_decimal): Ditto.
+ (fixed_convert_from_real): Ditto.
+ (real_convert_from_fixed): Ditto.
+ * config/rs6000/rs6000.md (FP): Include DD and TD modes.
+ * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
+ muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
+ floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
+
+2007-09-06 Tom Tromey <tromey@redhat.com>
+
+ * tree-cfg.c (remove_bb): Only warn if line is non-zero.
+ * c-pch.c (c_common_read_pch): Restore current location after
+ reading PCH file.
+ * tree.c (expand_location): Update.
+ (expr_filename): Changed return type. Unified the two cases.
+ (expr_lineno): Likewise.
+ (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
+ as lvalues.
+ * toplev.c (line_table): Changed type.
+ (general_init): Update.
+ (realloc_for_line_map): New function.
+ (general_init): Allocate line_table using GC.
+ * fix-header.c (line_table): Changed type.
+ (read_scan_file): Update.
+ (read_scan_file): Update.
+ * c-ppoutput.c (maybe_print_line): Update.
+ (print_line): Update.
+ (cb_line_change): Update.
+ (cb_define): Update.
+ (pp_file_change): Update.
+ * c-opts.c (c_common_init_options): Update.
+ (finish_options): Update.
+ (push_command_line_include): Update.
+ * c-lex.c (cb_line_change): Update.
+ (cb_def_pragma): Update.
+ (cb_define): Update.
+ (cb_undef): Update.
+ (c_lex_with_flags): Use cpp_get_token_with_location.
+ * input.h (line_table): Changed type.
+ (location_from_locus): New macro.
+ * tree.h (EXPR_FILENAME): No longer an lvalue.
+ (EXPR_LINENO): Likewise.
+ (expr_locus, set_expr_locus): Declare separately for
+ USE_MAPPED_LOCATION.
+ (expr_filename, expr_lineno): Changed return type.
+ * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
+ * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
+ (expand_gimple_basic_block): Likewise.
+ * final.c (final_scan_insn): Use expanded_location.
+
+2007-09-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/32586
+ * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
+ folding if nothing changed.
+ (simplify_unary_expression): New function. Do tree combining
+ on conversion like codes.
+ (try_to_simplify): Call it.
+ * builtins.c (fold_builtin_cexp): Fold the built expressions.
+ * fold-const.c (fold_unary): Test result of get_callee_fndecl().
+
+2007-09-06 Jan Hubicka <jh@suse.cz>
+
+ PR target/33318
+ * cse.c (fold_rtx): Avoid invalid sharing.
+
+2007-09-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
+ (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
+
+2007-09-06 Revital Eres <eres@il.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
+ Fix offsettable memory reference for 750CL.
+
+2007-09-06 Pat Haugen <pthaugen@us.ibm.com>
+
+ * reload.c (find_reloads_address_1): Try to preserve original
+ base/index regclass of operands.
+ * regrename.c (scan_rtx_address): Likewise.
+ (replace_oldest_value_addr): Likewise.
+
+2007-09-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/33302
+ * domwalk.c (walk_dominator_tree): The exit block is
+ interesting even if it is not reachable.
+
+2007-09-06 Richard Sandiford <richard@codesourcery.com>
+
+ PR middle-end/33306
+ * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
+
+2007-09-06 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for
+ robustness.
+
+2007-09-05 Ian Lance Taylor <iant@google.com>
+
+ * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
+ when printing.
+ (dump_generic_node): Likewise.
+ * print-rtl.c (print_decl_name): Likewise.
+ * print-tree.c (print_node_brief): Likewise.
+ (print_node): Likewise.
+ * Makefile.in (RTL_BASE_H): Add alias.h.
+ (TREE_H): Likewise.
+
+2007-09-06 Jesper Nilsson <jesper.nilsson@axis.com>
+
+ * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
+ Defined.
+ * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
+ * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
+
+2007-09-06 Jie Zhang <jie.zhang@analog.com>
+
+ * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
+ (tm_defines): Define UCLIBC_DEFAULT to 1.
+ (extra_options): Add linux.opt.
+ * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
+ (CRT_CALL_STATIC_FUNCTION): Likewise.
+ (NO_IMPLICIT_EXTERN_C): Likewise.
+ (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
+ * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
+ * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
+ (ENDFILE_SPEC): Don't define.
+ (LIB_SPEC): Likewise.
+ (CRT_CALL_STATIC_FUNCTION): Likewise.
+ (NO_IMPLICIT_EXTERN_C): Likewise.
+ (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
+ (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
+
+2007-09-06 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
+ real_2expN.
+
+2007-09-06 Jan Hubicka <jh@suse.cz>
+
+ * opts.c (common_handle_option): Enable inlining functions for
+ -fprofile-generate.
+
+2007-09-06 Jakub Jelinek <jakub@redhat.com>
+
+ * builtin-attrs.def (ATTR_NONNULL_3): New.
+ (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
+ ATTR_NOTHROW_NONNULL_##FA.
+ (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
+ (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
+ ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
+ ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
+ ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
+ ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
+ ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
+ New.
+ (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
+ ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
+ ATTR_FORMAT_NOTHROW_3_4): Remove.
+ * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
+ vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
+ __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
+ instead of ATTR_FORMAT_*_*.
+
+2007-09-06 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
+ parts re-used for REG_FRAME_RELATED_EXPR.
+
+2007-09-05 Janis Johnson <janis187@us.ibm.com>
+
+ * optabs.c (expand_float): Convert unsigned integer as signed only
+ if it provides sufficient accuracy; add mode argument to real_2expN.
+ (expand_fix): Fix comment typos; extend binary float into mode
+ wider than destination for converion to unsigned integer; add mode
+ argument to real_2expN.
+ * real.c (real_2expN): Add mode argument to special-case decimal
+ float values.
+ * real.h (real_2expN): Ditto.
+ * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
+ real_2expN.
+ (fixed_from_string): Ditto.
+ (fixed_to_decimal): Ditto.
+ (fixed_convert_from_real): Ditto.
+ (real_convert_from_fixed): Ditto.
+ * config/rs6000/rs6000.md (FP): Include DD and TD modes.
+ * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
+ muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
+ floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
+
+2007-09-05 Ian Lance Taylor <iant@google.com>
+
+ * init-regs.c (initialize_uninitialized_regs): Call
+ emit_insn_before rather than add_insn_before.
+
+2007-09-05 Jakub Jelinek <jakub@redhat.com>
+
+ * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
+ * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
+ * tree-inline.h (copy_body_data): Add call_expr field.
+ * tree-inline.c (expand_call_inline): Initialize call_expr.
+ (copy_bb): Append anonymous inline fn arguments to arguments
+ when inlining a CALL_EXPR_VA_ARG_PACK call.
+ * builtins.c (expand_builtin): Issue an error if
+ BUILT_IN_VA_ARG_PACK is seen during expand.
+ (fold_call_expr, fold_builtin_call_array): Don't fold
+ CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
+ __builtin_va_arg_pack () call as last argument.
+ * gimplify.c (gimplify_call_expr): If last argument to a vararg
+ function is __builtin_va_arg_pack (), decrease number of call
+ arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
+ * expr.c (expand_expr_real_1): Issue an error if
+ CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
+ * tree-pretty-print.c (dump_generic_node): Handle printing
+ CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
+ * doc/extend.texi (__builtin_va_arg_pack): Document.
+
+2007-09-05 Adam Nemet <anemet@caviumnetworks.com>
+
+ PR tree-optimization/21513
+ * builtins.c (build_builtin_expect_predicate): New function.
+ (fold_builtin_expect): Add argument for expected value.
+ Distribute __builtin_expect over short-circuiting operations.
+ Fold nested builtin_expects.
+ (fold_builtin_2): Adjust call to fold_builtin_expect.
+
+2007-09-05 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ PR web/32965
+ PR tree-optimization/13756
+ * doc/invoke.texi (Options That Control Optimization): Document
+ -ftree-dse.
+
+2007-09-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc/config/i386/cpuid.h: New file.
+ * gcc/config/i386/driver-i386.c: Include cpuid.h.
+ (describe_cache): Shrink size and line strings to 100 bytes.
+ (detect_caches_amd): Return "" for unsupported max_ext_level.
+ Use __cpuid function.
+ (detect_caches_intel): Return "" for unsupported max_level.
+ Use __cpuid function.
+ (host_detect_local_cpu): Change feature flag variables to
+ unsigned int. Initialize only extended feature flag variables.
+ Use __get_cpuid_max to determine max supported cpuid level.
+ Use __cpuid function to determine supported features. Fix
+ calculation of family id. Remove is_amd and check signature
+ directly. Check for Geode signature. Handle family 4 id.
+ [PROCESSOR_GENERIC32]: New default for unknown family id. Move
+ cpu discovery code to lower part of the function.
+ [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
+ for sub-architecture.
+ [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
+ [PROCESSOR_K8]: Add k8-sse3 architecture.
+ [PROCESSOR_NOCONA]: Remove.
+ [PROCESSOR_GENERIC64]: Ditto.
+ * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
+ * gcc/config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid
+ to check for SSE and FXSAVE support.
+ * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
+ Add -minline-all-stringops.
+ * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
+ (x86_64-*-*): Ditto.
+
+2007-09-05 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin/linux-unwind.h: New file.
+ * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
+ * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
+
+2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * Makefile.in (stmt.o): Add alloc-pool.h dependency.
+ * stmt.c: Include alloc-pool.h.
+ (struct case_node): Remove GTY marker.
+ (add_case_node): New parameter case_node_pool. Use it for
+ allocation of r.
+ (expand_case): New allocation pool case_node_pool. Initialize it,
+ pass to add_case_node and free it.
+
+2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
+ David Ung <davidu@mips.com>
+ Nigel Stephens <nigel@mips.com>
+
+ Add mips16/nomips16 function attributes and -mflip-mips16 option
+ for testing mixed-mode compilation.
+
+ * config/mips/mips.opt (mflip-mips16): New.
+
+ * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
+ (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
+
+ * config/mips/mips.c (mips_base_target_flags): New.
+ (mips_base_mips16): New.
+ (mips_base_schedule_insns): New.
+ (mips_base_reorder_blocks_and_partition): New.
+ (mips_base_align_loops): New.
+ (mips_base_align_jumps): New.
+ (mips_base_align_functions): New.
+ (mips16_flipper): New.
+ (mips_attribute_table): Add "mips16" and "nomips16" entries.
+ (TARGET_SET_CURRENT_FUNCTION): Define.
+ (mips_mips16_type_p, mips_nomips16_type_p): New.
+ (mips_comp_type_attributes): Check mips16/nomips16 attributes.
+ (mips_function_ok_for_sibcall): Make it deal with functions with
+ mips16 attributes.
+ (mips_init_split_addresses): New, split out from override_options.
+ (mips_init_relocs): New, split out from override_options.
+ (was_mips16_p): New.
+ (mips_set_mips16_mode): New, split out from override_options.
+ (mips_set_current_function): New.
+ (override_options): Add sorry for unsupported mips16/pic
+ combination. Remove error for mips16/dsp combination. Save
+ base option settings.
+ (mips_file_start): Move mips16 mode setting output from here....
+ (mips_output_function_prologue): ....to here.
+ (mips_output_mi_thunk): Check for mips16 function.
+ (build_mips16_function_stub): Don't set .mips16 here.
+ (build_mips16_call_stub): Likewise.
+ (mips_expand_builtin): Error in mips16 mode.
+ (mips_use_mips16_mode_p): New.
+ (mips_encode_section_info): Check for mips16 function, and set
+ SYMBOL_REF_FLAGS accordingly.
+
+ * doc/extend.texi (Function Attributes): Document new
+ mips16/nomips16 attributes.
+ * doc/invoke.texi (Option Summary): Add -mflip-mips16.
+ (MIPS Options): Document -mflip-mips16.
+
+2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
+ if we encounter TLS address in MIPS16 mode.
+ (mips_legitimize_const_move): Check cannot_force_const_mem for
+ the (const (plus symbol offset)) case; this forces invalid TLS
+ address in MIPS16 mode to be caught by the above call to sorry.
+ (override_options): Don't reset targetm.have_tls in MIPS16 mode,
+ because that now enables emutls, which is not ABI compatible
+ with native TLS in non-MIPS16 mode.
+
+2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
+
+ Add target hook invoked when cfun changes.
+
+ * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
+ * target.h (struct gcc_target): Add set_current_function.
+ * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
+ (TARGET_INITIALIZER): Add initializer for set_current_function.
+ * tree.h (push_struct_function): New.
+ * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
+ * function.h: Here.
+ (set_cfun): Declare.
+ * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
+ * function.c: Here.
+ (push_function_context_to): Use allocate_struct_function
+ to create null context, not init_dummy_function_start. Use set_cfun.
+ (pop_function_context_from): Use set_cfun.
+ (in_dummy_function): New.
+ (invoke_set_current_function_hook): New.
+ (set_cfun): New.
+ (push_cfun, pop_cfun): Use set_cfun.
+ (push_struct_function): New.
+ (allocate_struct_function): Call invoke_set_current_function_hook
+ before returning.
+ (prepare_function_start): Don't set cfun here. Remove unused
+ argument; fix all callers.
+ (init_dummy_function_start): Fiddle with in_dummy_function. Call
+ push_struct_function.
+ (init_function_start): Set cfun here.
+ (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun.
+ * omp-low.c (create_omp_child_function): Use push_struct_function
+ and pop_cfun to save/restore state.
+ (expand_omp_parallel): Remove unused saved_cfun variable.
+ * cgraphunit.c (ipa_passes): Use set_cfun.
+ * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
+ * dwarf2out.c (dwarf2out_abstract_function): Likewise.
+ * matrix-reorg.c (transform_allocation_sites): Likewise.
+ (matrix_reorg): Use set_cfun.
+ * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
+ * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
+ assignment to cfun; use set_cfun for the other.
+ * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
+ (dump_function_to_file): Use push_cfun/pop_cfun here.
+ * c-decl.c (finish_function): Use set_cfun.
+
+2007-09-05 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * regrename.c (rerename_optimize): Use deferred rescanning and
+ insert explicit calls to rescan insns when changed.
+
+2007-09-05 Jan Hubicka <jh@suse.cz>
+
+ * optabs.c (libfunc_entry): Change optab to integer.
+ (hash_libfunc, convert_optab_libfunc, optab_libfunc,
+ set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
+ of pointers for hashing.
+
+2007-09-05 Jan Hubicka <jh@suse.cz>
+
+ * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
+ verifier.
+ * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
+ * see.c (pass_see): Likewise.
+ * tracer.c (pass_tracer): Likewise.
+ * postreload-gcse.c (pass_gcse2): Likewise.
+ * postreload.c (pass_postreload_cse): Likewise.
+ * mode-switching.c (pass_mode_switching): Likewise.
+ * modulo-sched.c (pass_sms): Likewise.
+ * cse.c (cse_insn): Likewise.
+ * web.c (pass_web): Likweise.
+ * combine-stack-adj.c (pass_stack_adjustments): Likewise.
+ * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
+ * loop-init.c (pass_rtl_loop_init): Likewise.
+ (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
+ pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
+ * global.c (pass_global_alloc): Likewise.
+ * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
+ pass_if_after_reload): Likewise.
+ * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
+ * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
+ * regmove.c (pass_regmove): Likewise.
+ * function.c (pass_thread_prologugues_epilogues): Likewise.
+ * gcse.c (pass_gcse): Likewise.
+ * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
+ * lower-subreg.c (pass_lower_subreg2): Likewise.
+ * bt-load.c (pass_branch_target_load): Likewise.
+ * emit-rtl.c (pass_unshare_all_rtl): Likewise.
+ * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
+ * combine.c (pass_combine): Likewise.
+ * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
+ (pass_partition_blocks): Likewise.
+ * var-tracking.c (pass_variable_track): Likewise.
+ * reg-stack.c (pass_stack_regs_run): Likewise.
+ * sched-rgn.c (pass_sched, pass_sched2): Likewise.
+ * passes.c (pass_postreload): Likewise.
+ (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
+ * tree-pass.h (TODO_verify_rtl_sharing): New.
+ (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
+ TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
+ TODO_set_props, TODO_df_finish, TODO_df_verify,
+ TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
+
+2007-09-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
+ fold_real_zero_addition_p, reorder_operands_p,
+ div_if_zero_remainder, fold_undefer_overflow_warnings,
+ int_binop_types_match_p, fold_convert_const_int_from_int,
+ fold_convert_const_int_from_real,
+ fold_convert_const_int_from_fixed,
+ fold_convert_const_real_from_real,
+ fold_convert_const_real_from_fixed,
+ fold_convert_const_fixed_from_fixed,
+ fold_convert_const_fixed_from_int,
+ fold_convert_const_fixed_from_real, maybe_lvalue_p,
+ fold_checksum_tree, fold_check_failed, print_fold_checksum,
+ debug_fold_checksum, multiple_of_p): Constify.
+ * tree-flow-inline.h (get_lineno): Likewise.
+ * tree-flow.h (get_lineno): Likewise.
+ * tree-object-size.c (compute_object_offset, addr_object_size,
+ alloc_object_size, pass_through_call): Likewise.
+ * tree-pretty-print.c (op_symbol, print_call_name,
+ print_struct_decl, do_niy): Likewise.
+ * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
+ debug_fold_checksum): Likewise.
+
+2007-09-04 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR middle-end/33029
+ * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
+ note, remove the associated REG_RETVAL note.
+
+2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config.gcc (powerpc*-*-*): Install
+ spu2vmx.h, vec_types.h, and si2vmx.h headers.
+ * config/rs6000/spu2vmx.h: New header.
+ * config/rs6000/si2vmx.h: New header.
+ * config/rs6000/vec_types.h: New header.
+
+2007-09-05 Ben Elliston <bje@au.ibm.com>
+
+ * varasm.c (initializer_constant_valid_p): Fix comment typo.
+
+2007-09-05 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
+ not `m' for *ptrp.
+ (__stdcx): Make asm volatile.
+ (__stwcx, __stdcx): Return only 0 or 1.
+
+2007-09-05 Jan Hubicka <jh@suse.cz>
+
+ Revert:
+
+ 2007-09-04 Jan Hubicka <jh@suse.cz>
+ * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
+
+ 2007-09-04 Richard Guenther <rguenther@suse.de>
+ * tree-ssa-operands.c (add_virtual_operand): Only mark
+ stores as has_volatile_ops if alias information is not available.
+
+2007-09-05 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/tramp.asm: Include config.h.
+ Check __PIC__ or __pic__ macro instead of SHARED.
+
+ PR rtl-optimization/32300
+ * see.c (see_copy_insn): New function.
+ (see_def_extension_not_merged, see_merge_one_use_extension,
+ see_merge_one_def_extension): Use it. Avoid changing
+ PREV_INSN/NEXT_INSN chains directly, insted emit insns
+ into sequences. Call df_insn_delete on temporary insns
+ that won't be emitted into the insn stream.
+ (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
+ and run df_process_deferred_rescans () before run_fast_dce.
+
+ PR tree-optimization/33017
+ * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
+ recurse for pure or const function calls.
+
+2007-09-04 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * c-format.c: Include alloc-pool.h.
+ (check_format_info_main): New argument fwt_alloc. Use allocation
+ pool instead of GC. Remove GC deallocation code.
+ (check_format_arg): Create allocation pool, pass it to
+ check_format_info_main and free it afterwards.
+ * Makefile.in (c-format.o): Add alloc-pool.h dependency.
+
+2007-09-05 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
+ Rename count macro arugment for clarity.
+ (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
+ (__protected_stream_set): Likewise, pass 0.
+
2007-09-04 Jan Hubicka <jh@suse.cz>
* tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
2007-08-30 Jakub Jelinek <jakub@redhat.com>
- * decl.c (start_preparsed_function): Set
- DECL_DISREGARD_INLINE_LIMITS for GNU_INLINE_P functions.
-
PR target/33168
* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
true if any of the compare_section_name calls returned true,
* toplev.c (init_alignments): New, split out from...
(process_options): ...here.
- (backend_init_target): New, split out from...
+ (backend_init_target): New, split out from...
(backend_init): ...here.
- (lang_dependent_init_target): New, split out from...
+ (lang_dependent_init_target): New, split out from...
(lang_dependent_init): ...here.
(target_reinit): New.
* toplev.h (target_reinit): Declare.
2007-08-11 David Daney <ddaney@avtrex.com>
- * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
+ * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
as ATTRIBUTE_UNUSED.
2007-08-11 David Edelsohn <edelsohn@gnu.org>
2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
- * config/mips/mips.opt (mhard-float, msoft-float): Make these
+ * config/mips/mips.opt (mhard-float, msoft-float): Make these
control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
* config/mips/mips.h (mips16_hard_float): Delete.
- (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
+ (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
definitions, and replace with....
(TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
* config/mips/mips.c (mips16_hard_float): Delete. Replace
all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
(MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
- (override_options): Replace MASK_SOFT_FLOAT references with
+ (override_options): Replace MASK_SOFT_FLOAT references with
MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
and mips16_hard_float when TARGET_MIPS16.
tri-state integer.
* optabs.c (expand_ffs, expand_ctz): New functions to compute
ffs and ctz using clz.
- (expand_unop): Call them.
+ (expand_unop): Call them.
* config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
result value.
(CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
- * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
+ * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
argument to find_reloads_address.
2007-08-01 Daniel Jacobowitz <dan@codesourcery.com>
2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
- * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
+ * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
2007-07-31 Revital Eres <eres@il.ibm.com>
2007-07-18 Caroline Tice <ctice@apple.com>
- * var-tracking.c (find_src_status): Check for COND_EXEC insns
+ * 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-16 Sandra Loosemore <sandra@codesourcery.com>
Nigel Stephens <nigel@mips.com>
- * config/mips/mips.md: Include 20kc.md.
+ * 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.
PR tree-optimization/19590
* tree-vrp.c (adjust_range_with_scev): Set the range when the result
of scev is a constant.
- * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
(problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
- problem_NOTE): Initialize free_blocks_on_set_blocks.
+ problem_NOTE): Initialize free_blocks_on_set_blocks.
(df_lr_bb_local_compute): Recompute luids if df_live problem is
not active.
(df_live_set_all_dirty, df_note_alloc): New function.
* tree-ssa.c (tree_ssa_useless_type_conversion_1):
Convert the MIN/MAX of the inner type to the outer
type before comparing them.
- * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
+ * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
POINTER_PLUS_EXPR instead of PLUS_EXPR.
(issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
of PLUS_EXPR for pointers.
* config/mn10300/mn10300.md: Include.
* config/mn10300/mn10300.c(mn10300_secondary_reload_class):
Fix up for removed macro.
- * config/mn10300/predicates.md (call_address_operand): Ditto.
+ * config/mn10300/predicates.md (call_address_operand): Ditto.
* config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
(CONST_OK_FOR_I): Ditto.
(CONST_OK_FOR_J): Ditto.
* doc/extend.texi (Function Attributes): Document MIPS "near" and
"far" attributes.
- * testsuite/gcc.target/mips/near-far-1.c: New test case.
- * testsuite/gcc.target/mips/near-far-2.c: New test case.
- * testsuite/gcc.target/mips/near-far-3.c: New test case.
- * testsuite/gcc.target/mips/near-far-4.c: New test case.
+ * testsuite/gcc.target/mips/near-far-1.c: New test case.
+ * testsuite/gcc.target/mips/near-far-2.c: New test case.
+ * testsuite/gcc.target/mips/near-far-3.c: New test case.
+ * testsuite/gcc.target/mips/near-far-4.c: New test case.
2007-05-25 Eric Christopher <echristo@apple.com>
stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
* Makefile.in (tree-predcom.o): Add.
(tree-affine.o): Add TREE_GIMPLE_H dependency.
- * passes.c (init_optimization_passes): Add dceloop after
+ * passes.c (init_optimization_passes): Add dceloop after
copy propagation in loop optimizer. Add predictive commoning
to loop optimizer passes.
2007-05-14 Dave Korn <dave.korn@artimi.com>
- * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
+ * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
2007-05-14 Rafael Avila de Espindola <espindola@google.com>
2007-04-26 Steve Ellcey <sje@cup.hp.com>
- * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
+ * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
2007-04-26 Richard Guenther <rguenther@suse.de>
(create_phi_node): Use set_phi_nodes.
* omp-low.c (expand_omp_parallel): Use bb_stmt_list.
* tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
- (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
+ (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
* tree-flow-inline.h (phi_nodes, set_phi_nodes,
(bsi_start, bsi_last): Use bb_stmt_list.
(phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
* tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
estimate_reg_pressure_cost. Add number of ivs.
(determine_set_costs): Dump target_reg_cost.
- * loop-invariant.c (gain_for_invariant): Use
+ * loop-invariant.c (gain_for_invariant): Use
estimate_reg_pressure_cost. Removed n_inv_uses argument.
(best_gain_for_invariant, find_invariants_to_move): Remove
n_inv_uses.
2007-04-07 Bruce Korb <bkorb@gnu.org>
* c.opt: Add -Wformat-contains-nul.
- * c-format.c (set_Wformat): Set warn_format_contains_nul to the
+ * c-format.c (set_Wformat): Set warn_format_contains_nul to the
-Wformat setting.
(check_format_info_main): Check OPT_Wformat_contains_nul before emitting
the NUL byte warning.
argument "reliable".
(infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
Add argument "reliable". Propagate it through calls.
- (infer_loop_bounds_from_undefined): Derive number of iterations
+ (infer_loop_bounds_from_undefined): Derive number of iterations
estimates from references in blocks that do not dominate loop latch.
(gcov_type_to_double_int): New function.
(estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
(dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
and 2 builtins.
(bdesc_map): Add one field of unsupported_target_flags.
- (bdesc_arrays): Update entries to have extra fields. Add
+ (bdesc_arrays): Update entries to have extra fields. Add
dsp_32only_bdesc.
(mips_init_builtins): Initialize new function types.
Check unsupported_target_fileds to filter out builtins.
2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
- * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
+ * 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.
2007-02-23 Steve Ellcey <sje@cup.hp.com>
PR debug/29614
- * varpool.c (varpool_assemble_pending_decls): Set
+ * varpool.c (varpool_assemble_pending_decls): Set
varpool_last_needed_node to null.
2007-02-23 DJ Delorie <dj@redhat.com>
* config/spu/spu-protos.h (spu_init_expanders): Declare.
* config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
HARD_FRAME_POINTER_REGNUM.
- (spu_legitimate_address): Use regno_aligned_for_reload.
- (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
+ (spu_legitimate_address): Use regno_aligned_for_reload.
+ (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
aligned when frame_pointer_needed is true.
(spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
to 8 bits.
rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
- (lshr<mode>3_reg): Fix rtl description.
+ (lshr<mode>3_reg): Fix rtl description.
Make sure mulhisi immediate operands are valid.
* config/spu/predicates.md (imm_K_operand): Add.
* config/spu/spu.c (print_operand): Handle HIGH correctly.
(spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
(immediate_load_p): Allow symbols that use 2 instructions to create.
- (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
+ (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
with symbols when flag_pic is set.
(const_vector_immediate_p): New.
(logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
* config/spu/spu_internals.h: Ditto.
Fix incorrect operand modifiers.
- * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
- * config/spu/spu.md (xor<mode>3): Change %S to %J.
+ * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
+ * config/spu/spu.md (xor<mode>3): Change %S to %J.
Optimize one case of zero_extend of a vec_select.
- * config/spu/spu.md (_vec_extractv8hi_ze): Add.
+ * config/spu/spu.md (_vec_extractv8hi_ze): Add.
Accept any immediate for hbr.
- * config/spu/spu.md (hbr): Change s constraints to i.
+ * config/spu/spu.md (hbr): Change s constraints to i.
2007-02-21 Paul Brook <paul@codesourcery.com>
2007-02-18 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/28173
- * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
+ * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
(X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
of an arglist. Change return type to bool. Use new CALL_EXPR
accessors.
- (fold_builtin_strstr): Pass call arguments individually instead
+ (fold_builtin_strstr): Pass call arguments individually instead
of as an arglist, fixing callers appropriately. Use new CALL_EXPR
accessors and constructors. Return NULL_TREE instead of 0.
(fold_builtin_strchr): Likewise.
(fold_ternary): Remove CALL_EXPR case, since they are no longer
ternary expressions.
(fold): Add logic for tcc_vl_exp.
- (fold_checksum_tree): Make it know about tcc_vl_exp. Use
+ (fold_checksum_tree): Make it know about tcc_vl_exp. Use
TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
(fold_build3_stat): Add assertion to flag broken interface for
constructing CALL_EXPRs.
* tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
(vrp_visit_stmt): Likewise.
- * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
+ * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
TREE_CODE_LENGTH.
(force_move_till_expr): Likewise.
(estimate_num_insns_1): Use new CALL_EXPR accessors.
(expand_call_inline): Tidy up call to initialize_inlined_parameters.
- * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
(vectorizable_reduction): Likewise.
(vectorizable_call): Use new CALL_EXPR iterators.
(arm_expand_unop_builtin): Likewise.
(arm_expand_builtin): Use new CALL_EXPR accessors.
- * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
+ * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
accessors.
* config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
* tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
test whether one constant integer is a multiple of another. Instead
call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
- * fold-const.c (multiple_of_p): We've determined both TOP and
+ * fold-const.c (multiple_of_p): We've determined both TOP and
BOTTOM are integer constants so we can call int_const_binop directly
instead of the more generic const_binop.
PR other/30182
* config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
- * config/ia64/ia64.c (ia64_init_builtins): Ditto.
+ * config/ia64/ia64.c (ia64_init_builtins): Ditto.
2007-01-25 Richard Guenther <rguenther@suse.de>
* longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
ColdFire alternatives.
* config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
- * config/m68k/m68k.md (clzsi2): Define for ColdFire
+ * config/m68k/m68k.md (clzsi2): Define for ColdFire
architectures that support ff1 instruction.
2007-01-19 Richard Sandiford <richard@codesourcery.com>
2007-01-02 Steve Ellcey <sje@cup.hp.com>
- * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
+ * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
HOST_BITS_PER_LONGLONG
2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>