+2007-08-08 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/x-rs6000: New file.
+ * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
+ * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
+ (EXTRA_SPEC_FUNCTIONS): Define.
+ (HAVE_LOCAL_CPU_DETECT): Define.
+ (CC1_CPU_SPEC): Define.
+ * config/rs6000/driver-rs6000.c: New file.
+ * config/rs6000/aix.h (CC1_SPEC): Define.
+ * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
+ * config.host: Add x-rs6000 to host_xmake_file if host and target
+ are rs6000 or powerpc.
+
+2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
+
+ * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+ Chao-ying Fu <fu@mips.com>
+ Nigel Stephens <nigel@mips.com>
+ David Ung <davidu@mips.com>
+
+ * doc/invoke.texi (-mcode-readable): Document.
+ * config/mips/mips.opt (mcode-readable): New option.
+ * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
+ * config/mips/mips.h (mips_code_readable_setting): New enum.
+ (mips_code_readable): Declare.
+ (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
+ (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
+ (JUMP_TABLES_IN_TEXT_SECTION): Use it.
+ (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove
+ boiler-plate comments.
+ (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
+ * config/mips/mips.c (mips_code_readable): New variable.
+ (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
+ MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the
+ context and -mcode-readable setting to restrict the use of
+ SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
+ Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
+ (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
+ (mips_blocks_for_constant_p): Only return false for
+ TARGET_MIPS16_PCREL_LOADS.
+ (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
+ for MIPS16. Handle SYMBOL_32_HIGH.
+ (mips_const_insns): Allow HIGHs for MIPS16 too.
+ (mips_unspec_address_offset): New function, split out from...
+ (mips_unspec_address): ...here.
+ (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load
+ 16-bit symbolic constants. Assert approropiate conditions for
+ using the "la" and "dla" macros.
+ (mips_handle_option): Handle -mcode-readable=.
+ (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
+ Set up mips_lo_relocs[SYMBOL_32_HIGH].
+ (mips_strip_unspec_address): New function, split out from...
+ (print_operand_reloc): ...here.
+ (print_operand): Pass constants through mips_strip_unspec_address.
+ (print_operand_address): Likewise.
+ (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
+ (mips_select_rtx_section): Remove MIPS16 handling.
+ (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
+ (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
+ (mips16_lay_out_constants): Do nothing unless
+ TARGET_MIPS16_PCREL_LOADS.
+ (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
+ * config/mips/mips.md: Split HIGHs for MIPS16.
+ (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (mips_emit_move): Declare.
+ * config/mips/mips.c (mips_emit_move): New function.
+ (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
+ (mips_legitimize_const_move): Likewise.
+ (mips_legitimize_move): Likewise.
+ (mips_split_64bit_move): Likewise.
+ (mips_restore_gp): Likewise.
+ (mips_load_call_address): Likewise.
+ (mips_emit_fcc_reload): Likewise.
+ (mips_set_return_address): Likewise.
+ (mips_block_move_straight): Likewise.
+ (mips_block_move_loop): Likewise.
+ (mips_setup_incoming_varargs): Likewise.
+ (mips_save_reg): Likewise.
+ (mips_expand_prologue): Likewise.
+ (mips_restore_reg): Likewise.
+ (mips_expand_epilogue): Likewise.
+ (mips_output_mi_thunk): Likewise.
+ (build_mips16_call_stub): Likewise.
+ (mips_builtin_branch_and_move): Likewise.
+ * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
+ * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
+ (fixuns_truncdfdi2): Likewise.
+ (fixuns_truncsfsi2): Likewise.
+ (fixuns_truncsfdi2): Likewise.
+ (loadgp_absolute): Likewise.
+ (builtin_setjmp_setup): Likewise.
+ (builtin_longjmp): Likewise.
+ (untyped_call): Likewise.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
+ an "rtx *" argument. Return a bool.
+ * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
+ values and return true if they can be split. Take the same kind of
+ mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter
+ and store the lo_sum there if nonnull. Use the symbol type to
+ determine whether a $gp or HIGH is needed.
+ (mips_legitimize_address): Update call to mips_split_symbol and
+ simplify accordingly.
+ (mips_legitimize_const_move): Likewise.
+ * config/mips/mips.md: In the combine define_split,
+ check mips_split_symbol instead of splittable_symbolic_operand.
+ Update use of mips_split_symbol in the generator code.
+ * config/mips/predicates.md (splittable_symbolic_operand): Delete.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (mips_symbolic_address_p): Delete.
+ (mips_symbol_insns_1): New function, split out from...
+ (mips_symbol_insns): ...here. Take a mode argument. Treat loads
+ and stores separately from load addresses.
+ (mips_classify_address): Replace uses of mips_symbolic_address_p
+ with uses of mips_symbol_insns.
+ (mips_address_insns): Update calls to mips_symbol_insns.
+ (mips_const_insns): Likewise.
+ (mips_legitimize_address): Likewise.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
+ * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
+ block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
+ Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
+ non-call contexts if TARGET_MIPS16.
+ (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
+ (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16
+ code for SYMBOL_ABSOLUTE.
+ (mips_symbol_insns): Likewise.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
+ * config/mips/mips.c (mips_classify_symbol): Take a context argument.
+ (mips_symbolic_constant_p): Likewise. Update the call to
+ mips_classify_symbol.
+ (mips_classify_address): Update the calls to mips_symbolic_constant_p.
+ (mips_const_insns): Likewise. Update the call to mips_classify_symbol.
+ (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
+ (print_operand_reloc): Add a context argument. Update the call to
+ mips_symbolic_constant_p.
+ (print_operand): Update the calls to print_operand_reloc.
+ (print_operand_address): Use print_operand_reloc rather than
+ print_operand.
+ (mips_rewrite_small_data_p): Add a context argument. Update the call
+ to mips_symbolic_constant_p.
+ (mips_small_data_pattern_1): Make DATA the containing mem.
+ Update the call to mips_rewrite_small_data_p.
+ (mips_rewrite_small_data_1): Likewise.
+ (mips_use_anchors_for_symbol_p): Update the call to
+ mips_symbolic_constant_p.
+ * config/mips/predicates.md (const_call_insn_operand): Likewise.
+ (splittable_symbolic_operand): Likewise.
+ (move_operand): Likewise.
+ (absolute_symbolic_operand): Likewise.
+ (got_disp_operand): Likewise.
+ (got_page_ofst_operand): Likewise.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
+ (SYMBOL_ABSOLUTE): ...this.
+ (SYMBOL_SMALL_DATA): Rename to...
+ (SYMBOL_GP_RELATIVE): ...this.
+ (SYMBOL_CONSTANT_POOL): Rename to...
+ (SYMBOL_PC_RELATIVE): ...this.
+ * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
+ (mips_symbolic_address_p, mips_symbol_insns, override_options)
+ (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
+ after above changes.
+ * config/mips/predicates.md (const_call_insn_operand): Likewise.
+ (general_symbolic_operand): Rename to...
+ (absolute_symbolic_operand): ...this.
+ * config/mips/mips.md: Update after above changes.
+
+2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
+
+ * ddg.c (print_ddg): Add dump information.
+ * modulo-sched.c (print_node_sched_params): Add parameter and
+ verbosity.
+ (calculate_maxii): Remove function.
+ (undo_generate_reg_moves): Likewise.
+ (undo_permute_partial_schedule): Likewise.
+ (kernel_number_of_cycles): Likewise.
+ (MAXII_FACTOR): New definition to calculate the upper bound of II.
+ (sms_schedule): Use it. Remove profitability checks.
+ (sms_schedule_by_order): Fix order of nodes within the cycle.
+
+2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * gcc/config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
+ -profile option, add pie support.
+ (ENDFILE_SPEC): New spec.
+ * gcc/config/gnu.h (LIB_SPEC): Add -profile option.
+
+2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * gcc/config/i386/gnu.h (CPP_SPEC): Add -pthread option.
+ * gcc/config/gnu.h (LIB_SPEC): Likewise.
+
+2007-08-07 Yaz Saito <saito@google.com>
+ Ian Lance Taylor <iant@google.com>
+
+ * common.opt (finstrument-functions-exclude-function-list): New
+ option.
+ (finstrument-functions-exclude-file-list): New option.
+ * opts.c (char_p): Define and DEF_VEC.
+ (flag_instrument_functions_exclude_functions): New static
+ variable.
+ (flag_instrument_functions_exclude_files): New static variable.
+ (add_instrument_functions_exclude_list): New static function.
+ (flag_instrument_functions_exclude_p): New function.
+ (common_handle_option): Handle new options.
+ * flags.h (flag_instrument_functions_exclude_p): Declare.
+ * gimplify.c (gimplify_function_tree): Call
+ flag_instrument_functions_exclude_p.
+ * doc/invoke.texi (Option Summary): Mention new options.
+ (Code Gen Options): Document new options.
+
+2007-08-07 Ian Lance Taylor <iant@google.com>
+
+ PR rtl-optimization/32776
+ * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
+ (resolve_use): Likewise.
+ (decompose_multiword_subregs): Remove "changed" local variable.
+
+2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
+
+ * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
+ spec string.
+
+2007-08-07 Ian Lance Taylor <iant@google.com>
+
+ * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
+ note, just delete the insn.
+
+2007-08-07 Andreas Schwab <schwab@suse.de>
+
+ PR bootstrap/32973
+ * gengtype-lex.l: Ignore backslash/newline pair while scanning a
+ struct definition.
+
+2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * lower-subreg.c (resolve_subreg_use): Remove assertion.
+ (find_decomposable_shift_zext, resolve_shift_zext): New functions.
+ (decompose_multiword_subregs): Use the functions above to decompose
+ multiword shifts and zero-extends.
+
2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
* doc/sourcebuild.texi (Test Directives): Fix "compile" and