+2007-10-03 Alexandre Oliva <aoliva@redhat.com>
+
+ * gcse.c (hash_scan_set): Insert set in insn before note at
+ the end of basic block.
+
+2007-10-03 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/33576
+ * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
+ * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
+ * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
+ (remove_iv): Declared.
+ * lambda-code.c (remove_iv): Not static.
+ (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
+ Don't remove ivs there, save ivs in the buffer.
+
+2007-10-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/15764
+ * tree-eh.c (same_handler_p): New fn.
+ (optimize_double_finally): New fn.
+ (refactor_eh_r): New fn.
+ (refactor_eh): New fn.
+ (pass_refactor_eh): New pass.
+ * tree-pass.h: Declare it.
+ * passes.c (init_optimization_passes): Add it.
+
+2007-10-03 Doug Kwan <dougkwan@google.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR debug/31899
+ * dwarf2out.c (reference_to_unused): Disable sanity checking,
+ be conservative instead.
+
+2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/26682
+ * doc/invoke.texi (-fwhole-program): Document that Fortran
+ doesn't support this option.
+
+2007-10-02 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ PR middle-end/33617
+ * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
+ expand_expr.
+
+2007-10-02 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
+ against constant zero.
+ * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero
+ operand.
+
+2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * ra-conflict.c: New file.
+ * ra.h: New file.
+ * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
+ usage to DF_LIVE usage.
+ * rtlanal.c (subreg_nregs_with_regno): New function.
+ * df-scan.c (df_def_record_1, df_uses_record): Add code to set
+ DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
+ (df_has_eh_preds): Removed.
+ (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
+ df_exit_block_uses_collect): Changed call from df_has_eh_preds to
+ bb_has_eh_pred.
+ * global.c (allocno, max_allocno, conflicts, allocno_row_words,
+ reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
+ (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
+ (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
+ mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
+ (global_alloc): Turn off rescanning insns after call to
+ global_conflicts and added call to set_preferences.
+ (global_conflicts): Moved to ra-alloc.c.
+ (set_preferences_1, set_preferences): New function.
+ (mirror_conflicts): Changed types for various variables.
+ (mark_elimination): Change DF_RA_LIVE
+ usage to DF_LIVE usage.
+ (build_insn_chain): Rewritten from scratch and made local.
+ (print_insn_chain, print_insn_chains): New functions.
+ (dump_conflicts): Do not print conflicts for fixed_regs.
+ (rest_of_handle_global_alloc): Turn off insn rescanning.
+ * hard-reg-set.h: Fixed comment.
+ * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
+ usage to DF_LIVE usage and delete refs to TOP sets.
+ (block_alloc): Mark regs as live if they are in the artificial
+ defs at top of block.
+ (find_stack_regs): New function.
+ (rest_of_handle_local_alloc): Changed urec problem to live
+ problem and do not turn off df rescanning.
+ * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
+ DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
+ df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
+ (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
+ (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
+ fields in df_ref_flags. The rest have been renumbered.
+ * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
+ at -O1.
+ * rtl.h (subreg_nregs_with_regno): New function.
+ * df-problems.c: (df_get_live_out, df_get_live_in,
+ df_get_live_top): Removed reference to DF_RA_LIVE.
+ (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
+ df_live_alloc, df_live_reset, df_live_local_finalize,
+ df_live_free): Make top set only if different from in set.
+ (df_lr_top_dump, df_live_top_dump): Only print top set if
+ different from in set.
+ (df_lr_bb_local_compute): Removed unnecessary check.
+ (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info,
+ df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass,
+ df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
+ df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
+ df_urec_local_compute, df_urec_init, df_urec_local_finalize,
+ df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
+ df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
+ df_urec_add_problem): Removed.
+ (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
+ bb_has_eh_pred.
+ * Makefile.in (ra-conflict.o, ra.h): New dependencies.
+ * basic_block.h (bb_has_abnormal_pred): New function.
+ * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
+ usage to DF_LIVE usage.
+
+2007-10-02 Revital Eres <eres@il.ibm.com>
+
+ * config/rs6000/predicates.md (easy_vector_constant): Return false
+ for 750CL paired vectors.
+ * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
+ vector constant.
+ (vec_initv2sf): Add new description.
+ (vconcatsf): Likewise.
+ * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
+ * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
+
+2007-10-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
+ sinking the last stmt in a BB.
+
+2007-10-01 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/22156
+ * tree-sra.c (struct sra_elt): Add in_bitfld_block.
+ (sra_hash_tree): Handle BIT_FIELD_REFs.
+ (sra_elt_hash): Don't hash bitfld blocks.
+ (sra_elt_eq): Skip them in parent compares as well. Handle
+ BIT_FIELD_REFs.
+ (build_element_name_1): Handle BIT_FIELD_REFs.
+ (instantiate_element): Propagate nowarn from parents. Create
+ BIT_FIELD_REF for variables that are widened by scalarization.
+ Gimple-zero-initialize all bit-field variables that are not
+ part of parameters that are going to be scalarized on entry.
+ (instantiate_missing_elements_1): Return the sra_elt.
+ (canon_type_for_field): New.
+ (try_instantiate_multiple_fields): New. Infer widest possible
+ access mode from decl or member type, but clip it at word
+ size, and only widen it if a field crosses an alignment
+ boundary.
+ (instantiate_missing_elements): Use them.
+ (generate_one_element_ref): Handle BIT_FIELD_REFs.
+ (scalar_bitfield_p): New.
+ (sra_build_assignment): Optimize assignments from scalarizable
+ BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift
+ counts.
+ (REPLDUP): New.
+ (sra_build_bf_assignment): New. Optimize assignments to
+ scalarizable BIT_FIELD_REFs.
+ (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF
+ assignments to full variables.
+ (generate_copy_inout): Use the new macros and functions.
+ (generate_element_copy): Likewise. Handle bitfld differences.
+ (generate_element_zero): Don't recurse for blocks. Use
+ sra_build_elt_assignment.
+ (generate_one_element_init): Take elt instead of var. Use
+ sra_build_elt_assignment.
+ (generate_element_init_1): Adjust.
+ (bitfield_overlap_info): New struct.
+ (bitfield_overlaps_p): New.
+ (sra_explode_bitfield_assignment): New. Adjust widened
+ variables to account for endianness.
+ (sra_sync_for_bitfield_assignment): New.
+ (scalarize_use): Re-expand assignment to/from scalarized
+ BIT_FIELD_REFs. Explode or sync needed members for
+ BIT_FIELD_REFs accesses or assignments. Use REPLDUP.
+ (scalarize_copy): Use REPLDUP.
+ (scalarize_ldst): Move assert before dereference. Adjust EH
+ handling.
+ (dump_sra_elt_name): Handle BIT_FIELD_REFs.
+
+2007-10-01 Paolo Bonzini <bonzini@gnu.org>
+
+ * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
+ Rename CR_* constants to CMP_*. Fix spacing.
+
+2007-10-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR other/33585
+ * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
+ to be processed with the special script doc/install.texi2html.
+
+2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * doc/invoke.texi (Wall): List the options enabled by Wall.
+ (Wstrict-aliasing): Add missing @option.
+
+2007-09-30 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
+ rather than gen_lowpart to change a register from DImode to DFmode.
+ (mips_cannot_change_mode_class): Only allow FPRs to change mode if
+ both FROM and TO are integer modes that are no bigger than 4 bytes.
+ (mips_mode_ok_for_mov_fmt_p): New function.
+ (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
+ (mips_secondary_reload_class): Tweak formatting and comments.
+ Use reg_class_subset_p instead of direct comparisons with
+ classes. Only allow direct FPR<->FPR moves for modes that
+ satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores
+ for 4- and 8-byte types. Handle reloads in which X is an FPR.
+ * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
+ (*movdi_64bit): Likewise.
+ (*movsi_internal): Likewise.
+ (*movhi_internal): Likewise.
+ (*movqi_internal): Likewise.
+
2007-09-30 Diego Novillo <dnovillo@google.com>
PR 33593