OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f025459..55694f0 100644 (file)
+2007-09-06  Richard Sandiford  <richard@codesourcery.com>
+
+       PR middle-end/33306
+       * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
+
+2007-09-06  Basile Starynkevitch  <basile@starynkevitch.net>
+
+       * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for 
+       robustness.
+
+2007-09-05  Ian Lance Taylor  <iant@google.com>
+
+       * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
+       when printing.
+       (dump_generic_node): Likewise.
+       * print-rtl.c (print_decl_name): Likewise.
+       * print-tree.c (print_node_brief): Likewise.
+       (print_node): Likewise.
+       * Makefile.in (RTL_BASE_H): Add alias.h.
+       (TREE_H): Likewise.
+
+2007-09-06  Jesper Nilsson  <jesper.nilsson@axis.com>
+
+       * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
+       Defined.
+       * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
+       * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
+
+2007-09-06  Jie Zhang  <jie.zhang@analog.com>
+
+       * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
+       (tm_defines): Define UCLIBC_DEFAULT to 1.
+       (extra_options): Add linux.opt.
+       * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
+       (CRT_CALL_STATIC_FUNCTION): Likewise.
+       (NO_IMPLICIT_EXTERN_C): Likewise.
+       (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
+       * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
+       * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
+       (ENDFILE_SPEC): Don't define.
+       (LIB_SPEC): Likewise.
+       (CRT_CALL_STATIC_FUNCTION): Likewise.
+       (NO_IMPLICIT_EXTERN_C): Likewise.
+       (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
+       (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
+
+2007-09-06  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
+       real_2expN.
+
+2007-09-06  Jan Hubicka  <jh@suse.cz>
+
+       * opts.c (common_handle_option): Enable inlining functions for
+       -fprofile-generate.
+
+2007-09-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * builtin-attrs.def (ATTR_NONNULL_3): New.
+       (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
+       ATTR_NOTHROW_NONNULL_##FA.
+       (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
+       (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
+       ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
+       ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
+       ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
+       ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
+       ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
+       New.
+       (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
+       ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
+       ATTR_FORMAT_NOTHROW_3_4): Remove.
+       * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
+       vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
+       __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
+       instead of ATTR_FORMAT_*_*.
+
+2007-09-06  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
+       parts re-used for REG_FRAME_RELATED_EXPR.
+
+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-05  Ian Lance Taylor  <iant@google.com>
+
+       * init-regs.c (initialize_uninitialized_regs): Call
+       emit_insn_before rather than add_insn_before.
+
+2007-09-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
+       * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
+       * tree-inline.h (copy_body_data): Add call_expr field.
+       * tree-inline.c (expand_call_inline): Initialize call_expr.
+       (copy_bb): Append anonymous inline fn arguments to arguments
+       when inlining a CALL_EXPR_VA_ARG_PACK call.
+       * builtins.c (expand_builtin): Issue an error if
+       BUILT_IN_VA_ARG_PACK is seen during expand.
+       (fold_call_expr, fold_builtin_call_array): Don't fold
+       CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
+       __builtin_va_arg_pack () call as last argument.
+       * gimplify.c (gimplify_call_expr): If last argument to a vararg
+       function is __builtin_va_arg_pack (), decrease number of call
+       arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
+       * expr.c (expand_expr_real_1): Issue an error if
+       CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
+       * tree-pretty-print.c (dump_generic_node): Handle printing
+       CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
+       * doc/extend.texi (__builtin_va_arg_pack): Document.
+
+2007-09-05  Adam Nemet  <anemet@caviumnetworks.com>
+
+       PR tree-optimization/21513
+       * builtins.c (build_builtin_expect_predicate): New function.
+       (fold_builtin_expect): Add argument for expected value.
+       Distribute __builtin_expect over short-circuiting operations.
+       Fold nested builtin_expects.
+       (fold_builtin_2): Adjust call to fold_builtin_expect.
+
+2007-09-05  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       PR web/32965
+       PR tree-optimization/13756
+       * doc/invoke.texi (Options That Control Optimization): Document
+       -ftree-dse.
+
+2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       * gcc/config/i386/cpuid.h: New file.
+       * gcc/config/i386/driver-i386.c: Include cpuid.h.
+       (describe_cache): Shrink size and line strings to 100 bytes.
+       (detect_caches_amd): Return "" for unsupported max_ext_level.
+       Use __cpuid function.
+       (detect_caches_intel): Return "" for unsupported max_level.
+       Use __cpuid function.
+       (host_detect_local_cpu): Change feature flag variables to
+       unsigned int.  Initialize only extended feature flag variables.
+       Use __get_cpuid_max to determine max supported cpuid level.
+       Use __cpuid function to determine supported features.  Fix
+       calculation of family id.  Remove is_amd and check signature
+       directly.  Check for Geode signature.  Handle family 4 id.
+       [PROCESSOR_GENERIC32]: New default for unknown family id.  Move
+       cpu discovery code to lower part of the function.
+       [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
+       for sub-architecture.
+       [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
+       [PROCESSOR_K8]: Add k8-sse3 architecture.
+       [PROCESSOR_NOCONA]: Remove.
+       [PROCESSOR_GENERIC64]: Ditto.
+       * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
+       * gcc/config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
+       to check for SSE and FXSAVE support.
+       * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
+       Add -minline-all-stringops.
+       * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
+       (x86_64-*-*): Ditto.
+
+2007-09-05  Jie Zhang  <jie.zhang@analog.com>
+
+       * config/bfin/linux-unwind.h: New file.
+       * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
+       * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
+
+2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
+
+       * Makefile.in (stmt.o): Add alloc-pool.h dependency.
+       * stmt.c: Include alloc-pool.h.
+       (struct case_node): Remove GTY marker.
+       (add_case_node): New parameter case_node_pool.  Use it for
+       allocation of r.
+       (expand_case): New allocation pool case_node_pool.  Initialize it,
+       pass to add_case_node and free it.
+
+2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
+           David Ung  <davidu@mips.com>
+            Nigel Stephens <nigel@mips.com>
+
+       Add mips16/nomips16 function attributes and -mflip-mips16 option
+       for testing mixed-mode compilation.
+
+       * config/mips/mips.opt (mflip-mips16): New.
+
+       * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
+       (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
+
+       * config/mips/mips.c (mips_base_target_flags): New.
+       (mips_base_mips16): New.
+       (mips_base_schedule_insns): New.
+       (mips_base_reorder_blocks_and_partition): New.
+       (mips_base_align_loops): New.
+       (mips_base_align_jumps): New.
+       (mips_base_align_functions): New.
+       (mips16_flipper): New.
+       (mips_attribute_table): Add "mips16" and "nomips16" entries.
+       (TARGET_SET_CURRENT_FUNCTION): Define.
+       (mips_mips16_type_p, mips_nomips16_type_p): New.
+       (mips_comp_type_attributes): Check mips16/nomips16 attributes.
+       (mips_function_ok_for_sibcall): Make it deal with functions with
+       mips16 attributes.
+       (mips_init_split_addresses): New, split out from override_options.
+       (mips_init_relocs): New, split out from override_options.
+       (was_mips16_p): New.
+       (mips_set_mips16_mode): New, split out from override_options.
+       (mips_set_current_function): New.
+       (override_options): Add sorry for unsupported mips16/pic
+       combination.  Remove error for mips16/dsp combination.  Save
+       base option settings.  
+       (mips_file_start): Move mips16 mode setting output from here....
+       (mips_output_function_prologue): ....to here.
+       (mips_output_mi_thunk): Check for mips16 function.
+       (build_mips16_function_stub): Don't set .mips16 here.
+       (build_mips16_call_stub): Likewise.
+       (mips_expand_builtin): Error in mips16 mode.
+       (mips_use_mips16_mode_p): New.
+       (mips_encode_section_info): Check for mips16 function, and set
+       SYMBOL_REF_FLAGS accordingly.
+
+       * doc/extend.texi (Function Attributes): Document new
+       mips16/nomips16 attributes.
+       * doc/invoke.texi (Option Summary): Add -mflip-mips16.
+       (MIPS Options): Document -mflip-mips16.
+
+2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
+       if we encounter TLS address in MIPS16 mode.
+       (mips_legitimize_const_move): Check cannot_force_const_mem for
+       the (const (plus symbol offset)) case; this forces invalid TLS
+       address in MIPS16 mode to be caught by the above call to sorry.
+       (override_options): Don't reset targetm.have_tls in MIPS16 mode,
+       because that now enables emutls, which is not ABI compatible
+       with native TLS in non-MIPS16 mode.
+
+2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
+
+       Add target hook invoked when cfun changes.
+
+       * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
+       * target.h (struct gcc_target): Add set_current_function.
+       * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
+       (TARGET_INITIALIZER): Add initializer for set_current_function.
+       * tree.h (push_struct_function): New.
+       * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
+       * function.h: Here.
+       (set_cfun): Declare.
+       * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
+       * function.c: Here.
+       (push_function_context_to): Use allocate_struct_function
+       to create null context, not init_dummy_function_start.  Use set_cfun.
+       (pop_function_context_from): Use set_cfun.
+       (in_dummy_function): New.
+       (invoke_set_current_function_hook): New.
+       (set_cfun): New.
+       (push_cfun, pop_cfun): Use set_cfun.
+       (push_struct_function): New.
+       (allocate_struct_function): Call invoke_set_current_function_hook
+       before returning.
+       (prepare_function_start): Don't set cfun here.  Remove unused
+       argument; fix all callers.
+       (init_dummy_function_start): Fiddle with in_dummy_function.  Call
+       push_struct_function.
+       (init_function_start): Set cfun here.
+       (expand_dummy_function_end): Fiddle with in_dummy_function.  Pop cfun.
+       * omp-low.c (create_omp_child_function): Use push_struct_function
+       and pop_cfun to save/restore state.
+       (expand_omp_parallel): Remove unused saved_cfun variable.
+       * cgraphunit.c (ipa_passes): Use set_cfun.
+       * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
+       * dwarf2out.c (dwarf2out_abstract_function): Likewise.
+       * matrix-reorg.c (transform_allocation_sites): Likewise.
+       (matrix_reorg): Use set_cfun.
+       * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
+       * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
+       assignment to cfun; use set_cfun for the other.
+       * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
+       (dump_function_to_file): Use push_cfun/pop_cfun here.
+       * c-decl.c (finish_function): Use set_cfun.
+
+2007-09-05  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * regrename.c (rerename_optimize): Use deferred rescanning and
+       insert explicit calls to rescan insns when changed.
+       
+2007-09-05  Jan Hubicka  <jh@suse.cz>
+
+       * optabs.c (libfunc_entry): Change optab to integer.
+       (hash_libfunc, convert_optab_libfunc, optab_libfunc,
+       set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
+       of pointers for hashing.
+
+2007-09-05  Jan Hubicka  <jh@suse.cz>
+
+       * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
+       verifier.
+       * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
+       * see.c (pass_see): Likewise.
+       * tracer.c (pass_tracer): Likewise.
+       * postreload-gcse.c (pass_gcse2): Likewise.
+       * postreload.c (pass_postreload_cse): Likewise.
+       * mode-switching.c (pass_mode_switching): Likewise.
+       * modulo-sched.c (pass_sms): Likewise.
+       * cse.c (cse_insn): Likewise.
+       * web.c (pass_web): Likweise.
+       * combine-stack-adj.c (pass_stack_adjustments): Likewise.
+       * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
+       * loop-init.c (pass_rtl_loop_init): Likewise.
+       (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
+       pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
+       * global.c (pass_global_alloc): Likewise.
+       * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
+       pass_if_after_reload): Likewise.
+       * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
+       * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
+       * regmove.c (pass_regmove): Likewise.
+       * function.c (pass_thread_prologugues_epilogues): Likewise.
+       * gcse.c (pass_gcse): Likewise.
+       * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
+       * lower-subreg.c (pass_lower_subreg2): Likewise.
+       * bt-load.c (pass_branch_target_load): Likewise.
+       * emit-rtl.c (pass_unshare_all_rtl): Likewise.
+       * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
+       * combine.c (pass_combine): Likewise.
+       * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
+       (pass_partition_blocks): Likewise.
+       * var-tracking.c (pass_variable_track): Likewise.
+       * reg-stack.c (pass_stack_regs_run): Likewise.
+       * sched-rgn.c (pass_sched, pass_sched2): Likewise.
+       * passes.c (pass_postreload): Likewise.
+       (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
+       * tree-pass.h (TODO_verify_rtl_sharing): New.
+       (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
+       TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
+       TODO_set_props, TODO_df_finish, TODO_df_verify,
+       TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
+
+2007-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
+       fold_real_zero_addition_p, reorder_operands_p,
+       div_if_zero_remainder, fold_undefer_overflow_warnings,
+       int_binop_types_match_p, fold_convert_const_int_from_int,
+       fold_convert_const_int_from_real,
+       fold_convert_const_int_from_fixed,
+       fold_convert_const_real_from_real,
+       fold_convert_const_real_from_fixed,
+       fold_convert_const_fixed_from_fixed,
+       fold_convert_const_fixed_from_int,
+       fold_convert_const_fixed_from_real, maybe_lvalue_p,
+       fold_checksum_tree, fold_check_failed, print_fold_checksum,
+       debug_fold_checksum, multiple_of_p): Constify.
+       * tree-flow-inline.h (get_lineno): Likewise.
+       * tree-flow.h (get_lineno): Likewise.
+       * tree-object-size.c (compute_object_offset, addr_object_size,
+       alloc_object_size, pass_through_call): Likewise.
+       * tree-pretty-print.c (op_symbol, print_call_name,
+       print_struct_decl, do_niy): Likewise.
+       * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
+       debug_fold_checksum): Likewise.
+
+2007-09-04  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR middle-end/33029
+       * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
+       note, remove the associated REG_RETVAL note.
+
+2007-09-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * config.gcc (powerpc*-*-*): Install
+       spu2vmx.h, vec_types.h, and si2vmx.h headers.
+       * config/rs6000/spu2vmx.h: New header.
+       * config/rs6000/si2vmx.h: New header.
+       * config/rs6000/vec_types.h: New header.
+
+2007-09-05  Ben Elliston  <bje@au.ibm.com>
+
+       * varasm.c (initializer_constant_valid_p): Fix comment typo.
+
+2007-09-05  Ben Elliston  <bje@au.ibm.com>
+
+       * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
+       not `m' for *ptrp.
+       (__stdcx): Make asm volatile.
+       (__stwcx, __stdcx): Return only 0 or 1.
+
+2007-09-05  Jan Hubicka  <jh@suse.cz>
+
+       Revert:
+
+       2007-09-04  Jan Hubicka  <jh@suse.cz>
+       * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
+
+       2007-09-04  Richard Guenther  <rguenther@suse.de>
+       * tree-ssa-operands.c (add_virtual_operand): Only mark
+       stores as has_volatile_ops if alias information is not available.
+
+2007-09-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/tramp.asm: Include config.h.
+       Check __PIC__ or __pic__ macro instead of SHARED.
+
+       PR rtl-optimization/32300
+       * see.c (see_copy_insn): New function.
+       (see_def_extension_not_merged, see_merge_one_use_extension,
+       see_merge_one_def_extension): Use it.  Avoid changing
+       PREV_INSN/NEXT_INSN chains directly, insted emit insns
+       into sequences.  Call df_insn_delete on temporary insns
+       that won't be emitted into the insn stream.
+       (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
+       and run df_process_deferred_rescans () before run_fast_dce.
+
+       PR tree-optimization/33017
+       * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
+       recurse for pure or const function calls.
+
+2007-09-04  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
+
+       * c-format.c: Include alloc-pool.h.
+       (check_format_info_main): New argument fwt_alloc.  Use allocation
+       pool instead of GC.  Remove GC deallocation code.
+       (check_format_arg): Create allocation pool, pass it to
+       check_format_info_main and free it afterwards.
+       * Makefile.in (c-format.o): Add alloc-pool.h dependency.
+
+2007-09-05  Ben Elliston  <bje@au.ibm.com>
+
+       * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
+       Rename count macro arugment for clarity.
+       (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
+       (__protected_stream_set): Likewise, pass 0.
+
+2007-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
+
+2007-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * invoke.texi (-finline-small-functions): Document.
+       * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
+       when deciding what is inlinable.
+       (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
+       (cgraph_decide_inlining_of_small_function): Handle new flags.
+       (cgraph_decide_inlining_incrementally): Likewise.
+       * opts.c (decode_options): Enable flag_inline_small_functions at -O2
+       * common.opt (finline-small-functions): New.
+       * Makefile.in (build/gengtype.o-warn): Work around PR29478
+
+2007-09-04  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-operands.c (add_virtual_operand): Only mark
+       stores as has_volatile_ops if alias information is not available.
+
+2007-09-04  Andrew Haley  <aph@redhat.com>
+
+        * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
+
+2007-09-04  Andrew Haley  <aph@redhat.com>
+
+       * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
+       * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
+       * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
+
+2007-09-04  Emmanuel Thome  <Emmanuel.Thome@inria.fr>
+
+       PR c++/14178
+       * common.opt: Mention ABI version 2 in comment.
+
+2007-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * optabs.c (debug_optab_libfunc): Update; make available to gdb.
+       (libfunc_entry): New structure.
+       (libfunc_hash): New hashtable.
+       (hash_libfunc): New function.
+       (eq_libfunc): New function.
+       (convert_optab_libfunc): New function.
+       (optab_libfunc): New function.
+       (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
+       expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
+       expand_float, expand_fix, new_optab, new_convert_optab):
+        Update for new libfunc API.
+       (init_libfunc, init_integral_libfuncs,
+       init_floating_libfuncs, init_interclass_conv_libfuncs
+       init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
+       (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
+       gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
+       gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
+       gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
+       gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
+       gen_extend_conv_libfunc): New.
+       (init_one_libfunc): Revamp for hashtables.
+       (set_conv_libfunc): Likewise.
+       (init_optabs): Initialize hashtable; use lazy initialization where
+       possible.
+       * optabs.h (optab_handlers): Move out of GGC.
+       (optab, convert_optab): Move out of GGC; add lazy gen info.
+       (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
+       (optab_libfunc, convert_optab_libfunc): New.
+       * builtins.c (expand_builtin_powi): Update for new API.
+       * expr.c (convert_move): Likewise.
+       * expmed.c (expand_divmod): Likewise.
+
+2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
+       GOT pointer only if there is a constant pool.  Use the allocated space
+       for SPE also.
+
+2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
+       typo for AltiVec.
+
+2007-09-04  Revital Eres  <eres@il.ibm.com>
+           Richard Guenther  <rguenther@suse.de>
+           R. Clint Whaley  <whaley@cs.utsa.edu>
+
+       * doc/invoke.texi (-fassociative-math, -freciprocal-math):
+       Document new flags.
+       * tree-tailcall.c (process_assignment): Use -fassociative-math
+       when reodering operands of floating-point type.
+       * fold-const.c (fold_comparison, fold_binary): Use
+       -fassociative-math and -freciprocal-math instead of
+       -funsafe-math-optimization flag.
+       * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
+       * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
+       -freciprocal-math instead of -funsafe-math-optimizations.
+       * opts.c (set_fast_math_flags): Set -freciprocal-math and
+       -fassociative-math when -ffast-math is set.
+       (set_unsafe_math_optimizations_flags): New Function
+       to set -freciprocal-math and -fassociative-math when
+       -funsafe-math-optimizations is set.
+       (common_handle_option): Call it.
+       * tree-vectorizer.c (vect_is_simple_reduction): Use
+       -fassociative-math when doing reduction on floats.
+       * loop-unroll.c (analyze_insn_to_expand_var): Use
+       -fassociative-math when expanding an accumulator of type float.
+       * simplify-rtx.c (simplify_binary_operation_1): Use
+       -fassociative-math and -freciprocal-math when reordeing operands
+       of floating-point type.
+       * combine.c (combine_simplify_rtx): Likewise.
+       * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
+       Likewise.
+       * common.opt (-fassociative-math, -freciprocal-math): New flags.
+
+2007-09-04  Paolo Carlini  <pcarlini@suse.de>
+
+       PR c++/18608
+       * doc/install.texi (--enable-__cxa_atexit): Fix typo.
+
+2007-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
+
+2007-09-04  Jan Hubicka  <jh@suse.cz>
+
+       * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
+       and corresponding MATCH_DUP.
+
+2007-09-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR middle-end/33187
+       * combine.c (subst): Do not try to simplify X if it represents load
+       of FP constant from the constant pool via float extension.
+
+2007-09-04  Ben Elliston  <bje@au.ibm.com>
+
+       * c-opts.c: Include "tm_p.h".
+       * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
+
+2007-09-04  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/33291
+       * tree-pretty-print.c (dump_generic_node): Dump all
+       qualifiers for pointer types, not only first.  Dump
+       qualifiers for aggregate types as well.
+       * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
+       use the canonical type for building ARRAY_REFs.
+       * gimplify.c (canonicalize_addr_expr): Clean up.  The
+       correct validness check is compatibility of the pointer
+       types.  Always use the canonical type for building
+       ARRAY_REFs and ADDR_EXPRs.
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
+       change that disabled propagation of ADDR_EXPRs into statements
+       with volatile ops.
+
+2007-09-03  Zack Weinberg  <zack@codesourcery.com>
+
+       * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
+       (umulsi3_highpart): Make into expanders; existing insns are
+       now named *[insn]_nov6.  Add stars to existing [insn]_v6
+       counterparts' names.
+
+2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
+       (unprotoize.o): Remove SHLIB_MULTILIB.
+
+2007-09-03  Eric Weddington  <eweddington@cso.atmel.com>
+
+       * doc/extend.texi: Document progmem attribute for AVR.
+
+2007-09-03  Anatoly Sokolov <aesok@post.ru>
+
+       PR target/28902
+       * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
+
+2007-09-03  Zack Weinberg  <zack@codesourcery.com>
+
+       * optabs.c (expand_ffs): Initialize val and defined_at_zero
+       to avoid warnings.
+
+       * optabs.c: Remove unnecessary forward declarations.
+       (expand_unop_direct): New, broken out of expand_unop.
+       (expand_doubleword_clz): New.
+       (expand_ctz): Move above expand_ffs.  Use
+       start_sequence, end_sequence, add_equal_note, and
+       expand_unop_direct.  Add more commentary.
+       (expand_ffs): Try both ctz optab and expand_ctz.
+       Generate a test and branch if the hardware doesn't give us
+       a useful value for input zero.  Style improvements similar to
+       expand_ctz.
+
+       * config/arm/arm.md (ffssi2, ctzsi2): Delete.
+
+2007-09-03  Zack Weinberg  <zack@codesourcery.com>
+
+       * config.gcc: Delete stanza for arm-semi-aof and
+       armel-semi-aof targets.
+       * config/arm/arm-protos.h
+       * config/arm/arm.c
+       * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
+       make all #ifndef AOF_ASSEMBLER blocks unconditional.  Also
+       delete aof_pic_label and remove mention of AOF in comments.
+       * config/arm/arm.md: Delete patterns used only for AOF assembly.
+       * config/arm/aof.h
+       * config/arm/semiaof.h
+       * config/arm/t-semi: Delete file.
+
+2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
+       CONST_CAST_BB): New macros for type-specific casts.
+       (CONST_CAST): Add a TYPE parameter and define it in terms of
+       CONST_CAST2.
+
+       * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
+       * c-lex.c (cb_ident, lex_string): Likewise,
+       * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
+       * config/i386/i386.c (ix86_function_regparm,
+       ix86_function_sseregparm): Use CONST_CAST_TREE.
+       * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
+       CONST_CAST.
+       * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
+       give_switch, set_multilib_dir): Likewise,
+       * gengtype-parse.c (string_seq, typedef_name): Likewise,
+       * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
+       * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
+       * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
+       * prefix.c (update_path): Likewise,
+       * pretty-print.c (pp_base_destroy_prefix): Likewise,
+       * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
+       * tree-cfg.c (tree_can_merge_blocks_p,
+       tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
+       * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
+       * tree.c (build_string): Supply a TYPE for CONST_CAST.
+       (attribute_list_contained): Use CONST_CAST_TREE.
+
+2007-09-03  Krister Walfridsson  <cato@df.lth.se>
+
+       * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
+
+2007-09-03  Richard Sandiford  <richard@codesourcery.com>
+
+       PR middle-end/33290
+       * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
+       before forcing them into a register.
+
+2007-09-03  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.md (fetchop_bit): Use define_code_iterator
+       rather than define_code_macro.
+
+2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * gcc.c (xputenv): New function.
+       (putenv_from_prefixes): Use xputenv instead of putenv.
+       (process_command): Use xputenv instead of putenv.
+       (set_collect_gcc_options): Use xputenv instead of putenv.
+       (main): Use xputenv instead of putenv.
+
+2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
+
+       * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
+       availability of swap instruction.
+       * config/cris/cris.md (bswapsi2): Implement using swap instruction.
+
+2007-09-03  Revital Eres  <eres@il.ibm.com>
+
+       * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
+       Documentation.
+
+2007-09-03  Vladimir Yanovsky  <yanov@il.ibm.com>
+            Ayal Zaks  <zaks@il.ibm.com>
+            Revital Eres  <eres@il.ibm.com>
+
+       * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
+       compute_split_row): New functions.
+       (ps_unschedule_node): Remove.
+       (normalize_sched_times): Iterate over the already scheduled
+       insns instead of the number of nodes.
+       (MAX_SPLIT_NUM): New definition.
+       (sms_schedule_by_order): Change the scheduling heuristic to
+       avoid useless increases of initiation interval ii.
+       (get_sched_window): Add dump printouts.
+
+2007-09-02  David Daney  <ddaney@avtrex.com>
+
+       * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
+       UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
+       (optab, insn): Add more attributes.
+       (fetchop_bit): New code macro.
+       (immediate_insn): New code macro attribute.
+       (sync): Change condition to ISA_HAS_SYNC.
+       (rdhwr): Change predicate for operand 0 to register_operand.
+       (memory_barrier): New expand.
+       (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
+       sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
+       sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
+       sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
+       sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
+       * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
+       (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
+       MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
+       MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
+       
+2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
+           Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
+       Defined to describe availability and behavior of CLZ.
+       * config/cris/cris.md (clzsi2): Implement using lz instruction.
+       * config/cris/cris.opt: Tweak comment for "-metrax4".
+       * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
+       * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
+       (count_leading_zeros): Define.
+
+2007-09-01  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
+
+       * ggc-page.c (ggc_pch_read): Call validate_free_objects.
+
+2007-09-02  Joseph Myers  <joseph@codesourcery.com>
+
+       PR middle-end/33272
+       * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
+       decayed from array.
+
+2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
+       config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
+       ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
+       sched-deps.c, sched-int.h, system.h, target.h,
+       tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
+       tree.def: Fix comment typos.
+
+2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
+       (override_options): Turn on -mstrict-align on non-ColdFire
+       targets.
+       * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
+
+2007-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.c (const_strip_array_types): Delete.
+       * c-common.h (const_strip_array_types): Likewise.
+       * emit-rtl.c (const_next_insn, const_previous_insn,
+       const_next_nonnote_insn, const_prev_nonnote_insn,
+       const_next_real_insn, const_prev_real_insn,
+       const_next_active_insn, const_prev_active_insn, const_next_label,
+       const_prev_label): Delete.
+       * gimple-low.c (block_may_fallthru): Use expr_last.
+       * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
+       * rtl.h (const_previous_insn, const_next_insn,
+       const_prev_nonnote_insn, const_next_nonnote_insn,
+       const_prev_real_insn, const_next_real_insn,
+       const_prev_active_insn, const_next_active_insn, const_prev_label,
+       const_next_label): Delete.
+       * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
+       * system.h (CONST_CAST): Update comment.
+       * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
+       (const_first_stmt, const_last_stmt): Delete.
+       (tree_block_ends_with_condjump_p): Use last_stmt.
+       * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
+       * tree-iterator.c (const_expr_first, const_expr_last,
+       const_expr_only): Delete.
+       * tree.c (const_lookup_attribute): Likewise.
+       (attribute_list_contained): Use lookup_attribute.
+       * tree.h (const_lookup_attribute, const_expr_first,
+       const_expr_last, const_expr_only): Delete.
+
+2007-09-01  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
+       instead of TREE_THIS_VOLATILE.
+       * tree-ssa-operands.c (add_virtual_operand): Do not set
+       has_volatile_ops.  Do not check s_ann for NULL.
+       (get_indirect_ref_operands): Likewise.
+       (get_expr_operands): Likewise.  For all reference trees
+       set has_volatile_ops based on TREE_THIS_VOLATILE.  Also
+       check base of reference for TREE_THIS_VOLATILE.
+
+2007-09-01  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (verify_gimple_expr): Fix check for conversions
+       between integral types.  Also allow conversions between
+       pointer types.
+
+2007-08-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * optabs.c (prepare_float_lib_cmp): Use
+       libgcc_cmp_return_mode instead of word_mode.
+       * config/dfp-bit.h: Likewise.
+       * config/fp-bit.h: Likewise.
+       * config/spu/spu.c (spu_libgcc_cmp_return_mode):
+       New function.
+       (spu_libgcc_shift_count_mode): New function.
+       (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
+       (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
+
+2007-08-31  Joseph Myers  <joseph@codesourcery.com>
+
+       * tree-pretty-print.c: Include output.h.
+       (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
+       HOST_WIDE_INT_PRINT_DEC.
+       * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
+
+2007-08-31  Zdenek Dvorak  <ook@ucw.cz>
+
+       PR rtl-optimization/33224
+       * loop-iv.c (latch_dominating_def): Check that the definition belongs
+       to the analysed region.
+
+2007-08-31  Richard Guenther  <rguenther@suse.de>
+
+       * function.c (allocate_struct_function): Do not set
+       current_function_returns_pointer.
+       * function.h (struct var_refs_queue): Remove.
+       (struct simple_obstack_stack): Likewise.
+       (struct function): Remove fixup_var_refs_queue member.
+       Remove returns_pointer flag.
+       (current_function_returns_pointer): Remove define.
+
+2007-08-31  Nick Clifton  <nickc@redhat.com>
+
+       * tree-ssa-coalesce.c (compare_pairs): Use the elements as
+       secondary keys in order to obtain a stable sort.
+
+2007-08-31  Nick Clifton  <nickc@redhat.com>
+
+       PR target/33132
+       * config/m32r/constraints.md: Add W constraint for integer zero.
+       * config/m32r/m32r.md (get_pc): Use W and i constraints.
+       Fix length calculation by using alternatives.
+
+2007-08-31  Richard Sandiford  <richard@codesourcery.com>
+
+       * optabs.c (shift_optab_p, commutative_optab_p): New functions,
+       split out from expand_binop.
+       (avoid_expensive_constant): New function.
+       (expand_binop_directly): Remove commutative_op argument and
+       (expand_binop_directly): Remove commutative_op argument and
+       call cummutative_optab_p instead.  Do not change op0 or op1
+       when swapping xop0 and xop1.  Apply avoid_expensive_constant
+       to each argument after potential swapping.  Enforce the
+       canonical order of commutative operands.
+       (expand_binop): Use shift_optab_p and commutative_optab_p.
+       Update the calls to expand_binop_directly.  Only force constants
+       into registers when widening an operation.  Only swap operands
+       once a direct expansion has been rejected.
+       (expand_twoval_binop): Only force constants into registers when
+       using a direct expansion.
+
+2007-08-31  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
+       (sched_analyze_insn): Don't postprocess speculative dependencies when
+       target has no scheduling.
+       * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
+       'uninitialized' warning.
+
+2007-08-31  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (build_complex_type): Always set TYPE_NAME for
+       comples types.
+
+2007-08-31  Olivier Hainque  <hainque@adacore.com>
+
+       * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
+       internal macro. Default alignment factor for csect directives, chosen
+       to match what BIGGEST_ALIGNMENT allows.
+       (DATA_SECTION_ASM_OP): Use it.
+       * config/rs6000/rs6000.c
+       (rs6000_xcoff_output_readonly_section_asm_op):
+       Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
+       (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
+       
+2007-08-31  Olivier Hainque  <hainque@adacore.com>
+
+       * dbxout.c (dbxout_block): Move declaration within the first
+       #if defined (DBX_DEBUGGING_INFO) block.  Rearrange another such
+       block to include the definition, together with the associated
+       helpers.
+
+2007-08-31  David Edelsohn  <edelsohn@gnu.org>
+            Revital Eres  <eres@il.ibm.com>
+
+        * doc/invoke.texi (-mpaired): Document flag.
+        * config.gcc: Include paired.h in powerpc extra_headers and
+        750cl.h in powerpc-*-linux*paired*.
+        * config/rs6000/rs6000.opt (-mpaired): New flag.
+        * config/rs6000/rs6000.c (paired_init_builtins,
+        paired_expand_builtin, paired_expand_lv_builtin,
+        paired_expand_stv_builtin, paired_expand_predicate_builtin):
+        New functions to support the paired single builtin functions.
+        (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
+        (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
+        single builtins.
+        (bdesc_paired_preds): New structure for paired predicate
+        instructions.
+        (rs6000_expand_builtin): Expand paired single builtins.
+        (rs6000_init_builtins): Init paired single builtins.
+        (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
+        Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
+        and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf.  Add new types
+        v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
+        (rs6000_vector_mode_supported_p): Support paired vector mode.
+        * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
+        PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
+        New.
+        (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
+        (DATA_ALIGNMENT): Likewise.
+        (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
+        (rs6000_builtins): Add PAIRED builtins.
+        * config/rs6000/rs6000.md: Include paired.md.
+        * config/rs6000/paired.h: New.
+        * config/rs6000/paired.md: New.
+        * config/rs6000/750cl.h: New.
+        * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
+
+2007-08-30  Ollie Wild  <aaw@google.com>
+
+       * c-opts.c (c_common_handle_option): Support -fno-directives-only.
+       * gcc.c (default_compilers): Add -fno-directives-only to
+       @assembler-with-cpp.
+
+2007-08-30  Sandra Loosemore  <sandra@codesourcery.com>
+
+       PR middle-end/33211
+
+       * regclass.c (initial_fixed_regs): Revert previous change and make
+       it const again.
+       (initial_call_used_regs): Likewise.
+       (initial_call_really_used_regs): Delete, reverting previous addition.
+       (initial_reg_names): Likewise.
+       (init_reg_sets): Revert previous change.
+       (saved_fixed_regs): New.
+       (saved_call_used_regs): New.
+       (saved_call_really_used_regs): New.
+       (saved_reg_names): New.
+       (save_register_info): New.
+       (restore_register_info): New.
+       (init_reg_sets_1): Replace reset of register info with call to
+       restore_register_info.
+       * rtl.h (save_register_info): Declare.
+       * toplev.c (backend_init): Call save_register_info.
+
+2007-08-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
+
+       * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
+       from the original statement.
+
+2007-08-30  Chao-ying Fu  <fu@mips.com>
+
+       * c-lex.c (interpret_fixed): Declare.
+       (interpret_float): Process _Fract and _Accum.
+       (interpret_fixed): New function.
+       * final.c (output_addr_const): Process CONST_FIXED.
+       * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
+       (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
+       SS_DIV, US_DIV.
+       (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
+       US_DIV, US_ASHIFT.
+       (simplify_immed_subreg): Support CONST_FIXED.
+       Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
+       (simplify_subreg): Support CONST_FIXED.
+
+2007-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * config/rs6000/ppu_intrinsics.h: New file.
+       * config.gcc (powerpc*-*-* <extra_headers>): Install
+       ppu_intrinsics.h.
+
+2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * cfg.c (dump_flow_info): Change to also print entry and exit
+       block info.
+       * print-rtl.c (print_rtl_single): Allow to print rtl with
+       -fdump-unnumbered.
+       
+2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * df-core.h (df_dump_region): New function.
+       * df.h (df_dump_region): New function.
+       * loop-invariant.c (find_defs): Add call to df_dump_region.
+       * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
+       df_dump_region.
+       
+2007-08-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/33168
+       * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
+       true if any of the compare_section_name calls returned true,
+       rather than if any returned false.
+
+2007-08-30  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/33199
+       * tree-ssa-structalias.c (handle_lhs_call): New function.
+       (find_func_aliases): In non-IPA mode make sure that for
+       calls that return a pointer we add a constraint for the
+       result to point to anything.
+
+2007-08-30  Richard Guenther  <rguenther@suse.de>
+
+       * doc/invoke.texi (-mveclibabi): Document new target option.
+       * config/i386/i386.opt (-mveclibabi): New target option.
+       * config/i386/i386.c (ix86_veclib_handler): Handler for
+       vectorization library support.
+       (override_options): Handle the -mveclibabi option, initialize
+       the vectorization library handler.
+       (ix86_builtin_vectorized_function): As fallback call the
+       vectorization library handler, if set.
+       (ix86_veclibabi_acml): New static function for ACML ABI style
+       vectorization support.
+
 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
 
        * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
 
        * toplev.c (init_alignments): New, split out from...
        (process_options): ...here.
-       (backend_init_target):  New, split out from...
+       (backend_init_target): New, split out from...
        (backend_init): ...here.
-       (lang_dependent_init_target):  New, split out from...
+       (lang_dependent_init_target): New, split out from...
        (lang_dependent_init): ...here.
        (target_reinit): New.
        * toplev.h (target_reinit): Declare.
 
 2007-08-11  David Daney  <ddaney@avtrex.com>
 
-       * config/mips/mips.c (mips_sched_reorder):  Mark cycle parameter
+       * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
        as ATTRIBUTE_UNUSED.
 
 2007-08-11  David Edelsohn  <edelsohn@gnu.org>
 
 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
 
-       * config/mips/mips.opt (mhard-float, msoft-float):  Make these
+       * config/mips/mips.opt (mhard-float, msoft-float): Make these
        control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
        than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.  
        * config/mips/mips.h (mips16_hard_float): Delete.
-       (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI):  Delete these
+       (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
        definitions, and replace with....
        (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
        * config/mips/mips.c (mips16_hard_float): Delete.  Replace
        all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
        (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
-       (override_options):  Replace MASK_SOFT_FLOAT references with
+       (override_options): Replace MASK_SOFT_FLOAT references with
        MASK_SOFT_FLOAT_ABI.  Delete twiddling with MASK_SOFT_FLOAT
        and mips16_hard_float when TARGET_MIPS16.
        
        tri-state integer.
        * optabs.c (expand_ffs, expand_ctz): New functions to compute
        ffs and ctz using clz.
-       (expand_unop):  Call them.
+       (expand_unop): Call them.
        * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
        result value.
        (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
 
 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
 
-       * reload.c (find_reloads_address_part):  Pass correct MEMREFLOC
+       * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
        argument to find_reloads_address.
 
 2007-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
 
 2007-07-31  Sandra Loosemore  <sandra@codesourcery.com>
 
-       * config/mips/mips.h (ISA_HAS_SYNCI):  Add !TARGET_MIPS16 test.
+       * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
 
 2007-07-31  Revital Eres  <eres@il.ibm.com>
 
 
 2007-07-18  Caroline Tice  <ctice@apple.com>
        
-       * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
+       * var-tracking.c (find_src_status): Check for  COND_EXEC insns
        and handle them correctly; check that src is not NULL before
        trying to use it.
        (find_src_set_src): Likewise.
 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
            Nigel Stephens  <nigel@mips.com>
 
-       * config/mips/mips.md:  Include 20kc.md.
+       * config/mips/mips.md: Include 20kc.md.
        * config/mips/20kc.md: New file.
        * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
        (mips_adjust_cost): Tweak for 20Kc.
        PR tree-optimization/19590
        * tree-vrp.c (adjust_range_with_scev): Set the range when the result
        of scev is a constant.
-       * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
 
 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
        df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
        (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
-       problem_NOTE):  Initialize free_blocks_on_set_blocks.
+       problem_NOTE): Initialize free_blocks_on_set_blocks.
        (df_lr_bb_local_compute): Recompute luids if df_live problem is
        not active.
        (df_live_set_all_dirty, df_note_alloc): New function.
        * tree-ssa.c (tree_ssa_useless_type_conversion_1):
        Convert the MIN/MAX of the inner type to the outer
        type before comparing them.
-       * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
+       * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
        POINTER_PLUS_EXPR instead of PLUS_EXPR.
        (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
        of PLUS_EXPR for pointers.
        * config/mn10300/mn10300.md: Include.
        * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
        Fix up for removed macro.
-       * config/mn10300/predicates.md (call_address_operand):  Ditto.
+       * config/mn10300/predicates.md (call_address_operand): Ditto.
        * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
        (CONST_OK_FOR_I): Ditto.
        (CONST_OK_FOR_J): Ditto.
        * doc/extend.texi (Function Attributes): Document MIPS "near" and
        "far" attributes.
 
-       * testsuite/gcc.target/mips/near-far-1.c:  New test case.
-       * testsuite/gcc.target/mips/near-far-2.c:  New test case.
-       * testsuite/gcc.target/mips/near-far-3.c:  New test case.
-       * testsuite/gcc.target/mips/near-far-4.c:  New test case.
+       * testsuite/gcc.target/mips/near-far-1.c: New test case.
+       * testsuite/gcc.target/mips/near-far-2.c: New test case.
+       * testsuite/gcc.target/mips/near-far-3.c: New test case.
+       * testsuite/gcc.target/mips/near-far-4.c: New test case.
 
 2007-05-25  Eric Christopher  <echristo@apple.com>
 
        stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
        * Makefile.in (tree-predcom.o): Add.
        (tree-affine.o): Add TREE_GIMPLE_H dependency.
-       * passes.c (init_optimization_passes):  Add dceloop after
+       * passes.c (init_optimization_passes): Add dceloop after
        copy propagation in loop optimizer.  Add predictive commoning
        to loop optimizer passes.
 
 
 2007-05-14  Dave Korn  <dave.korn@artimi.com>
 
-       * genautomata.c (gen_regexp_el):  Allocate correct size for regexp.
+       * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
 
 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
 
 
 2007-04-26  Steve Ellcey  <sje@cup.hp.com>
 
-       * config/ia64/ia64.md (ip_value):  Fix itanium_class attribute.
+       * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
 
 2007-04-26  Richard Guenther  <rguenther@suse.de>
 
        (create_phi_node): Use set_phi_nodes.
        * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
        * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
-       (combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
+       (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
        * tree-flow-inline.h (phi_nodes, set_phi_nodes,
        (bsi_start, bsi_last): Use bb_stmt_list.
        (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
        * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
        estimate_reg_pressure_cost.  Add number of ivs.
        (determine_set_costs): Dump target_reg_cost.
-       * loop-invariant.c (gain_for_invariant):  Use
+       * loop-invariant.c (gain_for_invariant): Use
        estimate_reg_pressure_cost.  Removed n_inv_uses argument.
        (best_gain_for_invariant, find_invariants_to_move): Remove
        n_inv_uses.
 2007-04-07  Bruce Korb  <bkorb@gnu.org>
 
        * c.opt: Add -Wformat-contains-nul.
-       * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
+       * c-format.c (set_Wformat): Set warn_format_contains_nul to the
          -Wformat setting.
        (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
        the NUL byte warning.
        argument "reliable".
        (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
        Add argument "reliable".  Propagate it through calls.
-       (infer_loop_bounds_from_undefined):  Derive number of iterations
+       (infer_loop_bounds_from_undefined): Derive number of iterations
        estimates from references in blocks that do not dominate loop latch.
        (gcov_type_to_double_int): New function.
        (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
        (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
        and 2 builtins.
        (bdesc_map): Add one field of unsupported_target_flags.
-       (bdesc_arrays):  Update entries to have extra fields.  Add
+       (bdesc_arrays): Update entries to have extra fields.  Add
        dsp_32only_bdesc.
        (mips_init_builtins): Initialize new function types.
        Check unsupported_target_fileds to filter out builtins.
 
 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
 
-       * tree-ssa-loop-prefetch.c (determine_unroll_factor):  Bound the
+       * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
        unroll factor by the estimated number of iterations.
        (loop_prefetch_arrays): Do not prefetch in loops that iterate less
        than prefetch latency.
 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
 
        PR debug/29614
-       * varpool.c (varpool_assemble_pending_decls):  Set
+       * varpool.c (varpool_assemble_pending_decls): Set
        varpool_last_needed_node to null.
 
 2007-02-23  DJ Delorie  <dj@redhat.com>
        * config/spu/spu-protos.h (spu_init_expanders): Declare.
        * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
        HARD_FRAME_POINTER_REGNUM.
-       (spu_legitimate_address):  Use regno_aligned_for_reload.
-       (regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
+       (spu_legitimate_address): Use regno_aligned_for_reload.
+       (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
        aligned when frame_pointer_needed is true.
        (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
        to 8 bits.
        rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
        rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
        spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
-       (lshr<mode>3_reg):  Fix rtl description.
+       (lshr<mode>3_reg): Fix rtl description.
 
        Make sure mulhisi immediate operands are valid.
        * config/spu/predicates.md (imm_K_operand): Add.
        * config/spu/spu.c (print_operand): Handle HIGH correctly.
        (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
        (immediate_load_p): Allow symbols that use 2 instructions to create.
-       (classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
+       (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
        with symbols when flag_pic is set.
        (const_vector_immediate_p): New.
        (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
        * config/spu/spu_internals.h: Ditto.
 
        Fix incorrect operand modifiers.
-       * config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
-       * config/spu/spu.md (xor<mode>3):  Change %S to %J.
+       * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
+       * config/spu/spu.md (xor<mode>3): Change %S to %J.
 
        Optimize one case of zero_extend of a vec_select.
-       * config/spu/spu.md (_vec_extractv8hi_ze):  Add.
+       * config/spu/spu.md (_vec_extractv8hi_ze): Add.
 
        Accept any immediate for hbr.
-       * config/spu/spu.md (hbr):  Change s constraints to i.
+       * config/spu/spu.md (hbr): Change s constraints to i.
 
 2007-02-21  Paul Brook  <paul@codesourcery.com>
 
 2007-02-18  Roger Sayle  <roger@eyesopen.com>
 
        PR rtl-optimization/28173
-       * simplify-rtx.c (simplify_binary_operation_1) <IOR>:  Optimize
+       * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
        (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
        Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
        Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
        of an arglist.  Change return type to bool.  Use new CALL_EXPR
        accessors.
 
-       (fold_builtin_strstr):  Pass call arguments individually instead
+       (fold_builtin_strstr): Pass call arguments individually instead
        of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
        accessors and constructors.  Return NULL_TREE instead of 0.
        (fold_builtin_strchr): Likewise.
        (fold_ternary): Remove CALL_EXPR case, since they are no longer
        ternary expressions.
        (fold): Add logic for tcc_vl_exp.
-       (fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
+       (fold_checksum_tree): Make it know about tcc_vl_exp.  Use
        TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
        (fold_build3_stat): Add assertion to flag broken interface for
        constructing CALL_EXPRs.
        * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
        (vrp_visit_stmt): Likewise.
 
-       * tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
+       * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
        know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
        TREE_CODE_LENGTH.
        (force_move_till_expr): Likewise.
        (estimate_num_insns_1): Use new CALL_EXPR accessors.
        (expand_call_inline): Tidy up call to initialize_inlined_parameters.
 
-       * tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
+       * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
        TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
        (vectorizable_reduction): Likewise.
        (vectorizable_call): Use new CALL_EXPR iterators.
        (arm_expand_unop_builtin): Likewise.
        (arm_expand_builtin): Use new CALL_EXPR accessors.
 
-       * config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
+       * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
        accessors.
 
        * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
        * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
        test whether one constant integer is a multiple of another.  Instead
        call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
-       * fold-const.c (multiple_of_p):  We've determined both TOP and
+       * fold-const.c (multiple_of_p): We've determined both TOP and
        BOTTOM are integer constants so we can call int_const_binop directly
        instead of the more generic const_binop.
 
 
        PR other/30182
        * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
-       * config/ia64/ia64.c (ia64_init_builtins):  Ditto.
+       * config/ia64/ia64.c (ia64_init_builtins): Ditto.
 
 2007-01-25  Richard Guenther  <rguenther@suse.de>
 
        * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
        ColdFire alternatives.
        * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
-       * config/m68k/m68k.md (clzsi2):  Define for ColdFire
+       * config/m68k/m68k.md (clzsi2): Define for ColdFire
        architectures that support ff1 instruction.
 
 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
 
 2007-01-02  Steve Ellcey  <sje@cup.hp.com>
 
-       * sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
+       * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
        HOST_BITS_PER_LONGLONG
 
 2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>