+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.