+2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
+ and -Wfatal-errors together.
+
+2007-10-20 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/33812
+ * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
+ change for vrsave, ie restore after frame pop.
+
+2007-10-19 David S. Miller <davem@davemloft.net>
+
+ * config/sparc/niagara2.md: Fix copyright notice.
+
+2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/23820
+ PR tree-optimization/24309
+ PR tree-optimization/33766
+ * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
+ * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
+ * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
+ * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
+ * tree-loop-linear.c (perfect_loop_nest_depth): New.
+ (linear_transform_loops): Use perfect_loop_nest_depth.
+ * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
+ should have a single condition: their exit.
+
+2007-10-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/33816
+ PR middle-end/32921
+ * stor-layout.c (layout_type): Assert that aggregates do not
+ have their alias sets set.
+ * alias.c (get_alias_set): Return alias set zero for incomplete
+ types, return the alias set of the element for incomplete array
+ types, but do not remember these.
+
+2007-10-19 Richard Guenther <rguenther@suse.de>
+
+ Revert
+ 2007-10-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32921
+ * tree.c (build_array_type): Do not re-layout unbound array
+ types.
+
+2007-10-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32921
+ * tree.c (build_array_type): Do not re-layout unbound array
+ types.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_canonicalize_comparison): Check
+ mips_relational_operand_ok_p before trying to rewrite the test.
+ Only calculate PLUS_ONE if needed.
+ (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
+ here.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
+ calculation.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
+ the call uses the incoming value of $2.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
+ rather then gen_rtx_MEM.
+ (mips_setup_incoming_varargs): Use gen_frame_mem rather than
+ gen_rtx_MEM.
+ (mips_set_return_address): Likewise.
+ (mips_restore_gp): Likewise.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (gpr_mode): Delete.
+ (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
+ instead of gpr_mode.
+ (mips_for_each_saved_reg): Likewise.
+ (mips_expand_prologue, mips_expand_epilogue): Likewise.
+ (override_options): Don't initialize gpr_mode.
+ * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
+ case last.
+ (mips_class_max_nregs): Calculate the smallest consituent register
+ size and use that to determine an upper bound on the number of
+ registers.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
+ split out from...
+ (mips_expand_epilogue): ...here.
+ (mips_mdebug_abi_name): New function, split out from...
+ (mips_file_start): ...here.
+ (mips_hard_regno_mode_ok_p): New function, split out from...
+ (override_options): ...here.
+ (mips_expand_builtin_1): New function, split out from...
+ (mips_expand_buitin): ...here. Abort if we don't recognize
+ the function.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (build_mips16_function_stub): Load the
+ target address into $1 before transfering the arguments.
+ Don't use ".set noreorder".
+ (build_mips16_call_stub): Likewise.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_output_32bit_xfer): New function.
+ (mips_output_64bit_xfer): Likewise.
+ (mips16_fp_args): Rename to...
+ (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
+ with a DIRECTION argument. Use mips_output_32bit_xfer and
+ mips_output_64bit_xfer.
+ (build_mips16_function_stub): Update accordingly.
+ (mips16_fpret_double): Delete.
+ (build_mips16_call_stub): Update after above changes.
+ Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
+ of mips16_fpret_double. Use GP_REG_RETURN.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
+ use asm_out_file instead.
+ (build_mips16_function_stub): Likewise.
+ (build_mips16_call_stub, mips_output_function_prologue): Update
+ accordingly.
+
+2007-10-18 David S. Miller <davem@davemloft.net>
+
+ Add Niagara-2 support.
+ * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
+ * config.gcc: Add niagara2 to cpu and tune lists for sparc.
+ * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
+ (include): Add inclusion of niagara2.md
+ * config/sparc/sparc.c (niagara2_costs): New.
+ (sparc_override_options): Add niagara2 entry to cpu_default[]
+ and cpu_table[]. Set align_functions to 32 on Niagara2. Use
+ niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
+ PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
+ (sparc_initialize_trampoline): Handle niagara2 like niagara.
+ (sparc64_initialize_trampoline): Likewise.
+ (sparc_use_sched_lookahead): Likewise.
+ (sparc_issue_rate): Likewise.
+ * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
+ mcpu=niagara2
+ * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
+ ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
+ TARGET_CPU_niagara2.
+ (PROCESSOR_NIAGARA2): New.
+ (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
+ (BRANCH_COST): Likewise.
+ * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
+ * config/sparc/sol2.h: Likewise.
+ * config/sparc/niagara2.md: New file.
+
+2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
+ and fp_reg_size.
+ (mips_compute_frame_info): Remove associated code.
+ (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
+
+2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips-protos.h (compute_frame_size): Delete.
+ * config/mips/mips.h: Update comments.
+ * config/mips/mips.c (mips_frame_info): Remove initialized.
+ (compute_frame_size): Rename to...
+ (mips_compute_frame_info): ...this and make static. Remove the
+ SIZE argument and return no value. Remove the setting of initialized.
+ Update rest of file accordingly.
+ (mips_set_return_address): Don't call compute_frame_size.
+ (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
+ Don't call compute_frame_size.
+
+2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
+ * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
+ mips_hard_frame_pointer_required.
+ (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
+ large MIPS16 frames.
+ * config/mips/mips.c (mips_frame_pointer_required): New function.
+
+2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
+ and hard_frame_pointer_offset.
+ (mips_debugger_offset): Use hard_frame_pointer_offset.
+ (mips16e_collect_argument_save_p): Likewise.
+ (compute_frame_size): Initialize arg_pointer_offset and
+ hard_frame_pointer_offset.
+ (mips_initial_elimination_offset): Use them.
+ (mips_output_function_prologue): Use hard_frame_pointer_offset.
+ (mips_expand_prologue, mips_expand_epilogue): Likewise.
+
+2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
+ profiling code.
+ * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
+ "unsigned int" rather than "int" and put them with the other
+ register-related fields. Put expanded comments above fields
+ rather than to their right.
+ (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
+ with a NUM_REGS_PTR argument.
+ (mips16e_save_restore_pattern_p): Update accordingly.
+ (compute_frame_size): Clarify frame diagram. Rewrite.
+
+2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * config/mips/mips-ftypes.def: New file.
+ * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
+ (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
+ (mips_function_type): Redefine using mips-ftypes.def.
+ (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
+ (mips_builtin_vector_type): New function.
+ (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
+ (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
+ (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
+ (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
+ macros.
+ (mips_build_function_type): New function.
+ (mips_init_builtins): Use it to create types lazily.
+
2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
* config/mips/mips.h (set_volatile): Delete.