OSDN Git Service

2007-09-07 Zdenek Dvorak <ook@ucw.cz>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 39caec6..22c3c6a 100644 (file)
@@ -1,3 +1,533 @@
+2007-09-07  Zdenek Dvorak  <ook@ucw.cz>
+
+       PR tree-optimization/32183
+       * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).
+
+       * tree-ssa-reassoc.c: Include cfgloop.h.
+       (is_reassociable_op): Add a loop argument and return true only
+       for inside loop.
+       (linearize_expr): Updated.
+       (should_break_up_subtract): Likewise.
+       (linearize_expr_tree): Likewise.
+       (init_reassoc): Call loop_optimizer_init with
+       AVOID_CFG_MODIFICATIONS.  Remove calculate_dominance_info call
+       with CDI_DOMINATORS.
+       (fini_reassoc): Call loop_optimizer_finalize.
+
+2007-09-07  Sterling Augustine  <sterling@tensilica.com>
+
+       * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
+       if there is no i-cache.
+
+2007-09-07  Richard Guenther  <rguenther@suse.de>
+
+       Reapply
+       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  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/33286
+       * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
+       (__gthread_active,__gthread_start, __gthread_active_init): New.
+       * gthr-posix95.h: Likewise.
+
+2007-09-07  Roman Zippel <zippel@linux-m68k.org>
+
+       * function.h (struct function): Rename calls_unwind_init
+       to saves_all_registers.
+       (current_function_saves_all_registers): Renamed from
+       current_function_calls_unwind_init.
+       * reload1.c (reload): Set current_function_saves_all_registers.
+       * except.c (expand_builtin_unwind_init): Likewise.
+       * config/m68k/m68k.c (m68k_save_reg): Use
+       current_function_saves_all_registers to save pic register.
+
+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