From 1b408ba139d671e02b69aa5447e24f0801097442 Mon Sep 17 00:00:00 2001 From: Sterling Augustine Date: Thu, 27 May 2010 21:10:54 +0000 Subject: [PATCH] invoke.texi (xtensa options): Add -mforce-no-pic. 2010-05-27 Sterling Augustine * doc/invoke.texi (xtensa options): Add -mforce-no-pic. * config/xtensa/xtensa.c (override_options): Check TARGET_FORCE_NO_PIC and set flag_pic. * config/xtensa/xtensa.opt: Document -mforce-no-pic From-SVN: r159950 --- gcc/ChangeLog | 11640 +++++++++++++++++++++++++++++++++ gcc/config/xtensa/xtensa.c | 2 + gcc/config/xtensa/xtensa.opt | 4 + gcc/doc/invoke.texi | 7 + 4 files changed, 11653 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 35ddd14982a..c32fcc3f9af 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-05-27 Sterling Augustine + + * doc/invoke.texi (xtensa options): Add -mforce-no-pic. + * config/xtensa/xtensa.c (override_options): Check + TARGET_FORCE_NO_PIC and set flag_pic. + * config/xtensa/xtensa.opt: Document -mforce-no-pic + 2010-05-27 Kai Tietz PR bootstrap/44299 @@ -11629,6 +11636,11639 @@ Copyright (C) 2010 Free Software Foundation, Inc. +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + + PR bootstrap/44299 + * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine. + * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise. + +2010-05-27 Joseph Myers + + * diagnostic-core.h: New. Contents moved from diagnostic.h and + toplev.h. + * diagnostic.c: Don't include toplev.h. + (progname): Define. Moved from toplev.c. + (seen_error): New function. + * diagnostic.h: Include diagnostic-core.h. + (diagnostic_t, emit_diagnostic): Don't declare here. + * toplev.c (progname): Move to toplev.c. + (emit_debug_global_declarations, compile_file, finalize, + do_compile, toplev_main): Use seen_error. + * toplev.h: Include diagnostic-core.h. + (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG, + internal_error, warning, warning_at, error, error_n, error_at, + fatal_error, pedwarn, permerror, sorry, inform, inform_n, + verbatim, fnotice, progname): Move to diagnostic-core.h. + * builtins.c: Include diagnostic-core.h instead of diagnostic.h. + (expand_builtin_expect): Use seen_error. + * c-decl.c: Include diagnostic-core.h instead of diagnostic.h. + (c_make_fname_decl, c_write_global_declarations): Use seen_error. + * c-format.c: Include diagnostic-core.h instead of diagnostic.h. + * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h. + * c-lang.c: Include diagnostic-core.h instead of diagnostic.h. + * c-lex.c (c_lex_with_flags, interpret_float): Don't increment + errorcount for errors. + * c-opts.c (c_common_finish): Use seen_error. + * cgraph.c: Include diagnostic-core.h instead of diagnostic.h. + * cgraphunit.c (verify_cgraph_node, verify_cgraph, + cgraph_output_pending_asms, cgraph_optimize): Use seen_error. + * coverage.c: Include diagnostic-core.h instead of diagnostic.h. + (get_coverage_counts): Use seen_error. + * dwarf2out.c (dwarf2out_finish): Use seen_error. + * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup, + gimplify_body): Use seen_error. + * ipa-inline.c (cgraph_early_inlining): Use seen_error. + * ipa-pure-const.c (gate_pure_const): Use seen_error. + * ipa-reference.c (gate_reference): Use seen_error. + * jump.c: Include diagnostic-core.h instead of diagnostic.h. + * lambda-code.c: Include diagnostic-core.h instead of + diagnostic.h. + * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h. + * lto-compress.c: Include diagnostic-core.h instead of + diagnostic.h. + * lto-section-in.c: Include diagnostic-core.h instead of + diagnostic.h. + * lto-streamer-out.c: Include diagnostic-core.h instead of + diagnostic.h. + * lto-streamer.c: Include diagnostic-core.h instead of + diagnostic.h. + (gate_lto_out): Use seen_error. + * matrix-reorg.c: Include diagnostic-core.h instead of + diagnostic.h. + * omega.c: Include diagnostic-core.h instead of diagnostic.h. + * omp-low.c: Include diagnostic-core.h instead of diagnostic.h. + (gate_expand_omp, lower_omp_1): Use seen_error. + * passes.c: Include diagnostic-core.h instead of diagnostic.h. + (rest_of_decl_compilation, rest_of_type_compilation, + gate_rest_of_compilation, ipa_write_summaries): Use seen_error. + * tree-cfg.c (label_to_block_fn): Use seen_error. + * tree-inline.c (optimize_inline_calls): Use seen_error. + * tree-mudflap.c (mudflap_finish_file): Use + seen_error. + * tree-optimize.c (gate_all_optimizations, + gate_all_early_local_passes, gate_all_early_optimizations): Use + seen_error. + * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error. + * varpool.c: Include diagnostic-core.h instead of diagnostic.h. + (varpool_remove_unreferenced_decls, + varpool_assemble_pending_decls): Use seen_error. + * Makefile.in (DIAGNOSTIC_CORE_H): Define. + (TOPLEV_H, DIAGNOSTIC_H): Update. + (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o, + lto-streamer-out.o, lto-section-in.o, lto-streamer.o, + c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o, + builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o, + coverage.o, lambda-code.o): Update dependencies. + +2010-05-25 Dodji Seketeli + + PR c++/44188 + * c-common.c (is_typedef_decl): Move this definition ... + * tree.c (is_typedef_decl): ... here. + (typdef_variant_p): Move definition here from gcc/cp/tree.c. + * c-common.h (is_typedef_decl): Move this declaration ... + * tree.h (is_typedef_decl): ... here. + (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h + * dwarf2out.c (is_naming_typedef_decl): New function. + (gen_tagged_type_die): Split out of ... + (gen_type_die_with_usage): ... this function. When an anonymous + tagged type is named by a typedef, make sure a DW_TAG_typedef DIE + is emitted for the typedef. + (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming + anonymous tagged types. + +2010-05-27 Jason Merrill + + * print-tree.c (debug_vec_tree): New fn. + (print_vec_tree): New fn. + * tree.h: Declare them. + * gdbinit.in (pvt): New command. + + * print-tree.c (print_node) [TREE_VEC]: Print elements normally. + + * gdbinit.in (pdd): New command. + +2010-05-27 Jan Hubicka + + * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline. + (update_caller_keys): Return early if there are no callers; + only update fibheap when decresing the key. + (update_callee_keys): Avoid recursion. + (decide_inlining_of_small_functions): When badness does not match; + re-insert into fibheap. + +2010-05-27 Steven Bosscher + + * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS. + (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects. + (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects. + (ALL_HOST_OBJS): Now a union of the above two. +
: Add -DIN_GCC_FRONTEND for + all files in ALL_HOST_FRONTEND_OBJS. + * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined. + + * c-common.c: Pretend to be a backend file by undefining + IN_GCC_FRONTEND (still need rtl.h here). + +2010-05-27 Jan Hubicka + + * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)). + * cgraphunit.c (clone_of_p): Compile only when checking is enabled. + +2010-05-27 Jan Hubicka + + * sched-ebb.c: Rename struct deps to struct deps_desc. + * ddg.c: Likewise. + * sel-sched-ir.c: Likewise. + * sched-deps.c: Likewise. + * sched-int.h: Likewise. + * sched-rgn.c: Likewise. + +2010-05-27 Jon Beniston + + PR 43726 + * config/lm32/lm32.h: Remove definition of + GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year. + +2010-05-27 Eric Botcazou + + PR lto/44230 + * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message. + +2010-05-27 Richard Guenther + + PR tree-optimization/44284 + * tree-vect-stmts.c (vectorizable_assignment): Handle + sign-changing conversions as simple copy. + +2010-05-27 Maxim Kuvyrkov + + * gthr-posix.h (pthread_cancel): Don't declare if compiling against + Bionic C library. + (__gthread_active_p): Check for pthread_create if compiling against + Bionic C library. + +2010-05-27 Maxim Kuvyrkov + + Support compilation for Android platform. Reimplement -mandroid. + + * config.gcc (*linux*): Include linux-android.h and linux-android.opt. + (*android*): Set ANDROID_DEFAULT. + (arm*-*-linux*): Include linux-android.h. + (arm*-*-eabi*): Don't include previous -mandroid implementation. + * config/arm/eabi.h: Remove, move Android-specific parts ... + * config/linux-android.h: ... here. New file. + * config/arm/eabi.opt: Rename to ... + * config/linux-android.opt: ... this. + (mandroid): Allow -mno-android option. Initialize based on + ANDROID_DEFAULT. + * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC): + Move logic to corresponding LINUX_TARGET_* macros. + (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate. + * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,) + (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and + Android definitions. + (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID. + * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld): + Document. + +2010-05-27 Maxim Kuvyrkov + + Add support for Bionic C library + + * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define + macro. + (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*. + (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update. + + * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define. + (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC. + (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier + to support multiple C libraries. Handle Bionic. + (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,) + (BIONIC_DYNAMIC_LINKER64): Define. + (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): + Update. + (TARGET_HAS_SINCOS): Enable for Bionic. + + * config/linux.opt: Rewrite to handle more than 2 C libraries. Make + the last option specified on command line take effect. + (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC. + (mbionic): New. + (mglibc, muclibc): Update. + + * config/alpha/linux-elf.h, config/rs6000/linux64.h, + * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use + DEFAULT_LIBC. + + * doc/invoke.texi (-mglibc, -muclibc): Update. + (-mbionic): Document. + +2010-05-27 Ulrich Weigand + + * c-common.h (c_register_addr_space): Add prototype. + (ADDR_SPACE_KEYWORD): Remove. + * c-common.c (c_register_addr_space): New function. + (c_addr_space_name): Reimplement. + (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS. + + * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove. + (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space. + + * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space. + Remove TARGET_ADDR_SPACE_KEYWORDS. + +2010-05-27 Joseph Myers + + * input.c: New file. + * input.h (main_input_filename): Move declaration to toplev.h. + * toplev.c (input_location, line_table): Move to input.c + * toplev.h (main_input_filename): Move declaration from input.h. + * tree.c (expand_location): Move to input.c. + * Makefile.in (OBJS-common): Add input.o. + (input.o): Add dependencies. + +2010-05-27 Richard Guenther + + * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure + for non-existant files. + (fork_execute): Mark args_name file as deleted. + +2010-05-27 Kai Tietz + + PR bootstrp/44287 + * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE. + (narrow_signed_type): Likewise. + +2010-05-26 Jan Hubicka + + * cgraphunit.c (verify_cgraph_node): Do checking that DECL match + edge only when checking is enabled; check using former_clone_of; + check inline clones too. + (cgraph_materialize_clone): Record former_clone_of pointer. + (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not + combining redirections; dump args_to_skip bitmap + (cgraph_materialize_all_clones): Do no redirection here. + * ipa-inline.c (inline_transform): Do redirection here. + * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled + cheking only). + +2010-05-26 Steven Bosscher + + * config/avr/avr-c.c: Do not include regs.h. + Include cpplib.h for cpp_define and tree.h for c-common.h. + * config/avr/avr-devices.c (avr_mcu_types): Fix initializer. + * config/avr/t-avr: Fix dependencies for avr-c.o. + +2010-05-26 Steven Bosscher + + * explow.c (set_stack_check_libfunc): Adjust to accept name as a + string instead of SYMBOL_REF rtx. + * rtl.h (set_stack_check_libfunc): Move prototype from here... + * libfuncs.h: ...to here. Adjust for explow.c change. + +2010-05-26 Joseph Myers + + * pretty-print.c: Don't include ggc.h. + (identifier_to_locale_alloc, identifier_to_locale_free): Define. + (identifier_to_locale): Use them for allocation. + * pretty-print.h (identifier_to_locale_alloc, + identifier_to_locale_free): Declare. + * toplev.c (alloc_for_identifier_to_locale): New. + (general_init): Set identifier_to_locale_alloc and + identifier_to_locale_free. + * Makefile.in (pretty-print.o): Update dependencies. + +2010-05-26 Eric Botcazou + + * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and + pointer types if they have different alignment or mode. + +2010-05-26 Anatoly Sokolov + + * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE, + LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros. + * config/sparc/sparc-protos.h (function_value): Remove declaration. + * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value, + sparc_function_value_regno_p): New functions. + (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, + TARGET_FUNCTION_VALUE_REGNO_P): Define. + (function_value): Rename to... + (sparc_function_value_1): ... this. Make static. Change 'incoming_p' + argument to 'outgoing'. + (function_arg_record_value, function_arg_union_value, + function_arg_vector_value): Update comment. + +2010-05-26 Eric Botcazou + + * dwarf2out.c (struct dw_fde_struct): Reorder flags. + (fde_needed_for_eh_p): New predicate. + (output_call_frame_info): Use it throughout to decide whether FDEs + are needed for EH purpose. + (dwarf2out_begin_prologue): Reorder assignments. + +2010-05-26 Sebastian Pop + + * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not + special case loop->header. + (is_predicated): New. + (if_convertible_loop_p): Call it. + +2010-05-26 Sebastian Pop + + * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet + iterator in parameter. Do not generate code during the analysis. + (tree_if_convert_cond_stmt): Removed. + (tree_if_convert_stmt): Removed. + (predicate_bbs): New. + (if_convertible_loop_p): Call predicate_bbs. + (tree_if_conversion): Simplify the top-level logic as predicate_bbs + now contains all the analysis part. + +2010-05-26 Sebastian Pop + + * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove + statements in the analysis part. + (tree_if_convert_stmt): Update comment. + (remove_conditions_and_labels): New. + (combine_blocks): Call remove_conditions_and_labels. + (tree_if_conversion): Update comment. + +2010-05-26 Sebastian Pop + + * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more + than 2 predecessors or more than 2 successors. + +2010-05-26 Sebastian Pop + + * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion + of loops in which the data dependence analysis fails. + +2010-05-26 Sebastian Pop + + * tree-if-conv.c (if_convertible_loop_p): Do not compute/free + CDI_POST_DOMINATORS. + (tree_if_conversion): Same. + +2010-05-26 Sebastian Pop + + * tree-if-conv.c (tree_if_conversion): Do not return a bool. + +2010-05-26 Sebastian Pop + + * tree-if-conv.c: Update copyright years. Fix comments. + Fix indentation. + +2010-05-26 Kai Tietz + + * builtin-types.def (BT_INT128): New primitive type. + (BT_UINT128): Likewise. + * c-common.c (c_common_r): Add __int128 keyword. + (c_common_type_for_size): Handle __int128. + (c_common_type_for_mode): Likewise. + (c_common_signed_or_unsigned_type): Likewise. + (c_common_nodes_and_builtins): Add builtin type + if target supports 128-bit integer scalar. + * c-common.h (enum rid): Add RID_INT128. + * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__ + if target supports 128-bit integer scalar. + * c-decl.c (declspecs_add_type): Handle new keyword __int128. + (finish_declspecs): Likewise. + * c-parser.c (c_token_starts_typename): Handle RID_INT128. + (c_token_starts_declspecs): Likewise. + (c_parser_declspecs): Likewise. + (c_parser_attributes): Likewise. + (c_parser_objc_selector): Likewise. + * c-pretty-print.c (pp_c_integer_constant): Handle __int128. + * c-tree.h (enum c_typespec_keyword): Add cts_int128. + * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types. + * tree.c (make_or_reuse_type): Likewise. + (make_unsigned_type): Likewise. + (build_common_tree_nodes_2): Likewise. + * tree.h (enum integer_type_kind): Add itk_int128 and + itk_unsigned_int128. + (int128_integer_type_node): New define. + (int128_unsigned_type_node): New define. + * doc/extend.texi: Add documentation about __int128 type. + +2010-05-26 Richard Guenther + + * tree-ssa-sccvn.c (copy_nary): Adjust. + (copy_phis): Rename to ... + (copy_phi): ... this. Adjust. + (copy_references): Rename to ... + (copy_reference): ... this. Adjust. + (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the + result into the valid table. + +2010-05-26 Steven Bosscher + + * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h, + insn-config.h, insn-codes.h, recog.h, and optabs.h. + +2010-05-26 Laurynas Biveinis + + * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove. + +2010-05-26 Richard Guenther + + * opts.c (common_handle_option): Handle OPT_Ofast. + +2010-05-26 Joseph Myers + + * diagnostic.c: Don't include opts.h. + (permissive_error_option): Define. + (diagnostic_initialize): Take n_opts parameter. Allocate memory + for classify_diagnostic. Don't use memset for + classify_diagnostic. Initialize new and recently added fields. + (diagnostic_classify_diagnostic): Use context->n_opts instead of + N_OPTS. + (diagnostic_report_diagnostic): Pass context parameter to + diagnostic_report_warnings_p. Use option_enabled and option_name + hooks from context. + (emit_diagnostic): Use permissive_error_option. + (permerror): Likewise. + * diagnostic.h: Don't include options.h. + (struct diagnostic_context): Add n_opts, opt_permissive, + inhibit_warnings, warn_system_headers, option_enabled and + option_name fields. Change classify_diagnostic to a pointer. + * opts-diagnostic.h: New file. + * opts.c: Include opts-diagnostic.h. + (common_handle_option): Set global_dc fields for -Wfatal-errors, + -Wsystem-headers, -fshow-column, -pedantic-errors and -w. + (option_name): New function. + * c-opts.c (c_common_init_options): Set global_dc->opt_permissive. + (c_common_handle_option): Set global_dc->permissive for + -fpermissive. + * c-common.c (c_cpp_error): Save and restore + global_dc->warn_system_headers, not variable warn_system_headers. + * toplev.c: Include opts-diagnostic.h. + (general_init): Update call to diagnostic_initialize. Set + global_dc->show_column, global_dc->option_enabled and + global_dc->option_name. + (process_options): Don't set global_dc fields here. + * Makefile.in (DIAGNOSTIC_H): Remove options.h. + (diagnostic.o, opts.o, toplev.o): Update dependencies. + +2010-04-30 Hariharan Sandanagobalane + + * config/picochip/picochip.md (movsi): Split a movsi from a + const after reload. + +2010-05-26 Laurynas Biveinis + + * ggc-zone.c: Update copyright year. + (poison_region): Mark memory for Valgrind as undefined before + memset () call and inaccessible afterwards. + (ggc_pch_total_size): Change type of i to int. + +2010-05-26 Laurynas Biveinis + + * ggc-common.c (ggc_free_overhead): Allow empty slot. + +2010-05-26 Laurynas Biveinis + + * ggc-common.c: Update copyright year. + (ggc_rlimit_bound): Remove prototype. Compile only if + !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT. + (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING + && !ENABLE_GC_ALWAYS_COLLECT. Make static. + (ggc_min_heapsize_heuristic): Likewise. + +2010-05-26 Richard Guenther + + PR rtl-optimization/44164 + * tree-ssa-alias.c (aliasing_component_refs_p): Fix the + no-common access-path disambiguation. + (indirect_ref_may_alias_decl_p): Adjust. + (indirect_refs_may_alias_p): Likewise. + (refs_may_alias_p_1): Likewise. + +2010-05-26 Steven Bosscher + + * c-typeck.c: Do not include expr.h. + +2010-05-26 Steven Bosscher + + * rtl.h (decl_default_tls_model): Move prototype from here... + * output.h: ...to here. + * c-decl.c: Do not include rtl.h. + * c-pragma.c: Likewise. + * c-parser.c: Likewise. + * c-gimplify.c: Likewise. And also not hard-reg-set. + * c-common.c: Do not include rtl.h. Include tm_p.h and add a + FIXME note for it. Add a FIXME note for expr.h. + * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list, + ix86_canonical_va_list_type): Make visible even if RTX_CODE is not + defined. + +2010-05-26 Jakub Jelinek + + PR target/44199 + * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca + or total_size is larger than red zone size for non-V4 ABI, emit a + stack_tie resp. frame_tie insn before stack pointer restore. + * config/rs6000/rs6000.md (frame_tie): New insn. + +2010-05-25 Eric Botcazou + + * function.h (struct function): Add can_throw_non_call_exceptions bit. + * lto-streamer-in.c (input_function): Stream it in. + * lto-streamer-out.c (output_function): Stream it out. + * function.c (allocate_struct_function): Set it. + (expand_function_end): Substitute cfun->can_throw_non_call_exceptions + for flag_non_call_exceptions. + * cfgbuild.c (control_flow_insn_p): Likewise. + (make_edges): Likewise. + * cfgexpand.c (expand_stack_alignment): Likewise. + * combine.c (distribute_notes): Likewise. + * cse.c (cse_extended_basic_block): Likewise. + * except.c (insn_could_throw_p): Likewise. + * gcse.c (simple_mem): Likewise. + * ipa-pure-const.c (check_call): Likewise. + (check_stmt ): Likewise. + * lower-subreg.c (lower-subreg.c): Likewise. + * optabs.c (emit_libcall_block): Likewise. + (prepare_cmp_insn): Likewise. + * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise. + * postreload.c (rest_of_handle_postreload): Likewise. + * reload1.c (reload_as_needed): Likewise. + (emit_input_reload_insns): Likewise. + (emit_output_reload_insns): Likewise. + (fixup_abnormal_edges): Likewise. + * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise. + * store-motion.c (find_moveable_store): Likewise. + * tree-eh.c (stmt_could_throw_p): Likewise. + (tree_could_throw_p): Likewise. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. + * config/arm/arm.c (arm_expand_prologue): Likewise. + (thumb1_expand_prologue): Likewise. + * config/rx/rx.md (cbranchsf4): Likewise. + (cmpsf): Likewise. + * config/s390/s390.c (s390_emit_prologue): Likewise. + * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions. + (inline_forbidden_into_p): New predicate. + (expand_call_inline): Use it to forbid inlining. + (tree_can_inline_p): Likewise. + +2010-05-25 Steven Bosscher + + * config/i386/i386-c.c: Do not include rtl.h. + * config/i386/t-i386: Update dependencies. + +2010-05-25 Steven Bosscher + + * attribs.c: Do not include rtl.h. + * Makefile.in: Update dependencies. + +2010-05-25 Anatoly Sokolov + + * double-int.h (double_int_and): New. + * combine.c (try_combine): Clean up, use double_int_* and + immed_double_int_const functions. + +2010-05-25 Rainer Orth + + * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout, + stderr to /dev/null instead of grep -q. + * configure: Regenerate. + +2010-05-25 Steven Bosscher + + * Makefile.in (EXCEPT_H): Fix typo. + +2010-05-25 Vladimir Makarov + + * ira-build.c (update_conflict_hard_reg_costs): New. + (ira_build): Call update_conflict_hard_reg_costs. + +2010-05-25 Jakub Jelinek + + PR debug/41371 + * var-tracking.c (find_loc_in_1pdv): Guard asserts with + ENABLE_CHECKING. + (intersect_loc_chains): Walk the s2var's loc_chain together + with s1node chain as long as the locations are equal, don't + call find_loc_in_1pdv in that case. + + PR debug/42801 + * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here... + (copy_bind_expr): ... instead of here. + (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK + if the block hasn't been remapped. + * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When + emitting concrete instance of abstract VLA, add DW_AT_type attribute. + +2010-05-25 Richard Guenther + + PR middle-end/44069 + * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating + out-of-bounds array accesses. + +2010-05-25 Richard Guenther + + * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize. + (lto_wrapper_exit): Unlink all LTRANS temporary files on error. + (run_gcc): Re-organize to make cleanup easier. + +2010-05-25 Andreas Krebbel + + * config/s390/s390.c (optimization_options): Fix and move the + flag_prefetch_loop_arrays override ... + (override_options): ... here. + +2010-05-25 Joseph Myers + + * diagnostic.c: Don't include plugin.h. + (diagnostic_report_diagnostic): Don't handle plugins specially + here. Pass context to internal_error callback. + * diagnostic.h (struct diagnostic_context): Add context parameter + to internal_error callback. + * plugin.c (warn_if_plugins, plugins_internal_error_function): New. + * plugin.h (struct diagnostic_context): Declare. + (warn_if_plugins, plugins_internal_error_function): Declare. + * toplev.c (general_init): Set global_dc->internal_error. + * Makefile.in (diagnostic.o): Update dependencies. + +2010-05-25 Iain Sandoe + + * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC. + * config/rs6000/t-darwin64: New. + * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64, + build crt2. + +2010-05-25 Christian Borntraeger + + PR 44203 + * tree-ssa-loop-prefetch.c: Fix logic for step calculation to + match the original (and intended) behaviour before r159557. This + changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong + in two ways. + +2010-05-25 Richard Guenther + + * doc/invoke.texi: Document -Ofast. + * target.h (struct gcc_target): Add handle_ofast. + * target-def.h (TARGET_HANDLE_OFAST): Add. + (TARGET_INITIALIZER): Adjust. + * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it. + * common.opt (Ofast): Add. + +2010-05-25 Paolo Bonzini + + * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns. + * doc/md.texi (cstoreXX4): Update for cond-optab changes. + +2010-05-25 Paolo Bonzini + + PR target/43610 + * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison + even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and + false_rtx. Use false_rtx to compute the correct *ptest for reversed + comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL. + +2010-05-25 Jakub Jelinek + + * dwarf2out.c (loc_descr_plus_const): When offset is negative, use + DW_OP_minus with negated offset instead of DW_OP_plus. + (loc_list_from_tree): Don't test whether second operand is INTEGER_CST. + +2010-05-25 Wei Guozhi + + * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to + tst instruction and a new alternative. + * config/arm/constraints.md (Pu): New constraint. + +2010-05-24 Sebastian Pop + + * function.c (assign_stack_local_1): Initialize variable + to avoid warning when bootstrapping at -O3. + +2010-05-24 Steven Bosscher + + * configure.ac (all_lang_makefiles): Remove everything related to it. + * configure: Regenerate. + * Makefile.in: Fix reference to ada Make-lang.in. + Remove support for LANG_MAKEFILES. + +2010-05-24 Daniel Jacobowitz + Sandra Loosemore + + * config/arm/neon-testgen.ml: Use dg-add-options arm_neon. + * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok + description. Add arm_neon_fp16_ok. + (Add Options): Add arm_neon and arm_neon_fp16. + +2010-05-24 Joseph Myers + + * diagnostic.c: Don't include flags.h. + (pedantic_warning_kind, permissive_error_kind): Take diagnostic + context parameters. Check flags in the context passed as a parameter. + (diagnostic_build_prefix): Add context parameter. Check + show_column flag in context. + (diagnostic_action_after_output): Check fatal_errors flag in context. + (diagnostic_report_current_module): Check show_column flag in context. + (default_diagnostic_starter): Update call to + diagnostic_build_prefix. + (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind. + (emit_diagnostic): Pass context to permissive_error_kind. + (permerror): Pass context to permissive_error_kind. + * diagnostic.h (struct diagnostic_context): Add show_column, + pedantic_errors, permissive and fatal_errors fields. + (diagnostic_build_prefix): Update prototype. + * langhooks.c + * toplev.c (process_options): Set flags in global_dc from + flag_show_column, flag_pedantic_errors, flag_permissive, + flag_fatal_errors. + * tree-diagnostic.c (default_tree_diagnostic_starter): Update call + to diagnostic_build_prefix. + * Makefile.in (diagnostic.o): Update dependencies. + +2010-05-24 H.J. Lu + + * config/i386/ia32intrin.h (__crc32q): Define only if + __SSE4_2__ is defined. + +2010-05-24 Iain Sandoe + + PR target/44132 + PR middle-end/43602 + * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P, + DECL_VISIBILITY_SPECIFIED. + (emutls_decl): Set DECL_PRESERVE_P and copy + DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P. + (emutls_finalize_control_var): New callback. + (emutls_finish): Finalize emutls control variables. + * toplev.c (compile_file): Move the call to emutls_finish () + before varpool_assemble_pending_decls (). + +2010-05-24 Daniel Gutson + + * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__ + added to the preprocessor condition. + +2010-05-24 Paul Brook + + * gengtype-lex.l: Add HARD_REG_SET. + * expr.c (expand_expr_real_1): Record writes to hard registers. + * function.c (rtl_data): Add asm_clobbers. + * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers. + (ira_setup_eliminable_regset): Remove regs_asm_clobbered. + Use crtl->asm_clobbers. + +2010-05-24 Ralf Wildenhues + + * doc/makefile.texi (Makefile): Mention stages 'profile' + and 'feedback' for profiledbootstrap. + +2010-05-23 H.J. Lu + + PR target/44245 + * config/i386/i386.c (def_builtin): Properly check + OPTION_MASK_ISA_64BIT. + +2010-05-23 Joseph Myers + + * c-decl.c (diagnose_mismatched_decls): Give error for duplicate + typedefs with different but compatible types. Allow duplicate + typedefs with the same type except for pedantic non-C1X, but give + warning for variably modified types. + * c-typeck.c (tagged_types_tu_compatible_p, + function_types_compatible_p, type_lists_compatible_p, + comptypes_internal): Add parameter different_types_p; set + *different_types_p for different but compatible types. All + callers changed. + (comptypes_check_different_types): New. + * c-tree.h (comptypes_check_different_types): Declare. + +2010-05-23 Steven Bosscher + + * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h. + * jump.c: Include basic-block.h. + * profile.c: Likewise. + * tree-profile.c: Likewise. + * coverage.c: Likewise. + * basic-block.h (optimize_function_for_size_p): Move to function.h. + (optimize_function_for_speed_p): Likewise. + * function.h (optimize_function_for_size_p, + optimize_function_for_speed_p): Moved here from basic-block.h. + * Makefile.in: Update dependencies. + +2010-05-23 Ralf Wildenhues + + * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS + before calling make; allow override through $MAKE. + * doc/invoke.texi (Optimize Options): Document override. + +2010-05-23 Anatoly Sokolov + + * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New. + (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + (rs6000_mode_dependent_address_ptr): Make static. + * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. + * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr): + Remove. + +2010-05-23 Maarten Lankhorst + + PR target/43869 + * config/i386/i386.c: Make sure that the correct regparm is passed. + +2010-05-23 Steven Bosscher + + * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here... + * sbitmap.c: ...to here to internalize sbitmap element access. + Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h. + Explain why basic-block.h is included. + * function.h: Include tm.h for CUMULATIVE_ARGS. + * Makefile.in: Update dependencies. + +2010-05-22 Steven Bosscher + + * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap): + New core types. + * sbitmap.h (struct sbitmap_def): Do not typedef here. + * sbitmap.c: Include sbitmap.h. + * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h, + hard-reg-set.h. Split everything related to regsets out from here... + * regset.h: ...to here. New file. + * df.h: Include regset.h and sbitmap.h. + * tree-flow.h: Likewise. + * cfgloop.h: Likewise. + * except.h: Do not include sbitmap.h. Include hashtab.h. + * cgraph.h: Include vec.h and function.h. + * reload.h (struct insn_chain): Change types of live_throughout + and dead_or_set from regset_head to bitmap_head. + (compute_use_by_pseudos): Be defined also if regset.h is not included. + * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of + spilled_regs from regset_head to bitmap_head to avoid dependency + in regset.h. + * sel-sched-ir.h: Include regset.h. + * reload.c: Include df.h before reload.h. + * caller-save.c: Likewise. + * reload1.c: Likewise. + * ira.c: Likewise. + (mark_elimination): Update type of r to bitmap, consistent with + DF_LR_IN. + * dominance.c: Include bitmap.h. + * modulo-sched.c: Include df.h. + * cfganal.c: Include bitmap.h and sbitmap.h. + * cfgbuild.c: Include sbitmap.h. + * lcm.c: Include sbitmap.h. + * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET. + * domwalk.c: Include sbitmap.h, exclude ggc.h. + * cfgexpand.c: Inlcude bitmap.h and sbitmap.h. + * cselib.c: Include bitmap.h. + * tree-optimize.c: Include regset.h. + * stmt.c: Include bitmap.h. + * Makefile.in: Update dependencies. + +2010-05-22 Jan Hubicka + + * cgraph.h (struct varpool_node): Add same_comdat_group. + * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group + pointer. + (output_varpool): Update call of lto_output_varpool_node. + (input_varpool): Read same_comdat_group pointer. + (input_varpool_1): Fixup same_comdat_group pointer. + * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat + group is needed, all are. + * varpool.c (varpool_remove_node): Remove node from same comdat group + linklist too. + (varpool_analyze_pending_decls): Walk same comdat groups. + +2010-05-22 Steven Bosscher + + * rtl.h (union rtunion_def): Remove rt_bit member. + (XBITMAP, X0BITMAP, XCBITMAP): Remove. + * print-rtl (print_rtx): Do not print the member. + * gengtype.c (adjust_field_rtx_def): Do not handle it. + * gengenrtl.c (type_from_format): Likewise. + (accessor_from_format): Likewise. + +2010-05-22 Joseph Myers + + * dbgcnt.c: Include toplev.h instead of errors.h. + * ira-emit.c: Don't include errors.h. + * ira.c: Include toplev.h instead of errors.h. + * lto-compress.c: Include toplev.h instead of errors.h. + * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o, + ira.o, dbgcnt.o): Update dependencies. + +2010-05-22 Richard Guenther + + * gimple.c (gimple_types_compatible_p): Check type qualifications + before merging pointer to complete and pointer to incomplete type. + * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure + we use our own resolution algorithm. The gold linker plugin + doesn't do the job we want it to do here. + +2010-05-22 Anatoly Sokolov + + * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. + * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. + (sparc_mode_dependent_address_p): New function. + +2010-05-21 Steven Bosscher + + * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars. + + * timevar.c: Do not include any core headers. + (timevar_print): De-i18n-ize. + (print_time): Likewise. + * timevar.h (timevar_push, timevar_pop): Make inline functions. + +2010-05-21 Joseph Myers + + * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or + langhooks-def.h. + (diagnostic_initialize): Initialize x_data not last_function. + (diagnostic_report_current_function): Move to tree-diagnostic.c. + (default_diagnostic_starter): Call + diagnostic_report_current_module not + diagnostic_report_current_function. + (diagnostic_report_diagnostic): Initialize x_data not + abstract_origin. + (verbatim): Likewise. + * diagnostic.h (struct diagnostic_info): Change abstract_origin to + x_data. + (struct diagnostic_context): Change last_function to x_data. + (diagnostic_auxiliary_data): Replace with + diagnostic_context_auxiliary_data and + diagnostic_info_auxiliary_data. + (diagnostic_last_function_changed, diagnostic_set_last_function, + diagnostic_report_current_function): Move to tree-diagnostic.h. + (print_declaration, dump_generic_node, print_generic_stmt, + print_generic_stmt_indented, print_generic_expr, + print_generic_decl, debug_c_tree, dump_omp_clauses, + print_call_name, debug_generic_expr, debug_generic_stmt, + debug_tree_chain, default_tree_printer): Move to + tree-pretty-print.h. + (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq, + print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to + gimple-pretty-print.h. + * pretty-print.c: Don't include tree.h + (pp_base_format): Don't handle %K here. + (pp_base_tree_identifier): Move to tree-pretty-print.c. + * pretty-print.h (text_info): Change abstract_origin to x_data. + (pp_tree_identifier, pp_unsupported_tree, + pp_base_tree_identifier): Move to tree-pretty-print.h. + * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h, + tree-pretty-print.h: New files. + * tree-pretty-print.c: Include tree-pretty-print.h. + (percent_K_format): New. Moved from pretty-print.c. + (pp_base_tree_identifier): Move from pretty-print.c. + * c-objc-common.c: Include tree-pretty-print.h. + (c_tree_printer): Handle %K here. + * langhooks.c: Include tree-diagnostic.h. + (lhd_print_error_function): Use diagnostic_abstract_origin macro. + * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h. + (default_tree_printer): Handle %K using percent_K_format. + (general_init): Use default_tree_diagnostic_starter. + * tree.c: Include tree-diagnostic.h and tree-pretty-print.h. + (free_lang_data): Use default_tree_diagnostic_starter. + * c-pretty-print.c: Include tree-pretty-print.h. + * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h. + * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h. + * dwarf2out.c: Include tree-pretty-print.h. + * except.c: Include tree-pretty-print.h. + * gimple-pretty-print.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * gimplify.c: Include tree-pretty-print.h. + * graphite-poly.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * ipa-cp.c: Include tree-pretty-print.h. + * ipa-inline.c: Include gimple-pretty-print.h. + * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h. + * ipa-pure-const.c: Include gimple-pretty-print.h. + * ipa-struct-reorg.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * ipa-type-escape.c: Include tree-pretty-print.h. + * print-rtl.c: Include tree-pretty-print.h. + * print-tree.c: Include gimple-pretty-print.h. + * sese.c: Include tree-pretty-print.h. + * tree-affine.c: Include tree-pretty-print.h. + * tree-browser.c: Include tree-pretty-print.h. + * tree-call-cdce.c: Include gimple-pretty-print.h. + * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h. + * tree-chrec.c: Include tree-pretty-print.h. + * tree-data-ref.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-dfa.c: Include tree-pretty-print.h. + * tree-if-conv.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-inline.c: Include tree-pretty-print.h. + * tree-into-ssa.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-nrv.c: Include tree-pretty-print.h. + * tree-object-size.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-outof-ssa.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-parloops.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-predcom.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-scalar-evolution.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-sra.c: Include tree-pretty-print.h. + * tree-ssa-address.c: Include tree-pretty-print.h. + * tree-ssa-alias.c: Include tree-pretty-print.h. + * tree-ssa-ccp.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-coalesce.c: Include tree-pretty-print.h. + * tree-ssa-copy.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-copyrename.c: Include tree-pretty-print.h. + * tree-ssa-dce.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-dom.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-dse.c: Include gimple-pretty-print.h. + * tree-ssa-forwprop.c: Include tree-pretty-print.h. + * tree-ssa-ifcombine.c: Include tree-pretty-print.h. + * tree-ssa-live.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-loop-im.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-loop-niter.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h. + * tree-ssa-math-opts.c: Include gimple-pretty-print.h. + * tree-ssa-operands.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-phiprop.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-pre.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-propagate.c: Include gimple-pretty-print.h. + * tree-ssa-reassoc.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-sccvn.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-sink.c: Include gimple-pretty-print.h. + * tree-ssa-ter.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-ssa-uninit.c: Include gimple-pretty-print.h. + * tree-ssa.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-stdarg.c: Include gimple-pretty-print.h. + * tree-switch-conversion.c: Include gimple-pretty-print.h. + * tree-tailcall.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-vect-data-refs.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-vect-loop-manip.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-vect-loop.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-vect-patterns.c: Include gimple-pretty-print.h. + * tree-vect-slp.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-vect-stmts.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * tree-vectorizer.c: Include tree-pretty-print.h. + * tree-vrp.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * value-prof.c: Include tree-pretty-print.h and + gimple-pretty-print.h. + * var-tracking.c: Include tree-pretty-print.h. + * Makefile.in (OBJS-common): Add tree-diagnostic.o. + (tree-diagnostic.o): New dependencies. + (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o, + tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o, + tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o, + tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o, + tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o, + tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o, + tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o, + tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o, + tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o, + tree-ssa-address.o, tree-ssa-loop-niter.o, + tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o, + tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o, + tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o, + gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o, + tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o, + tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o, + tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o, + tree-parloops.o, tree-stdarg.o, tree-object-size.o, + gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o, + toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o, + ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o, + ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o, + tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o, + tree-switch-conversion.o, var-tracking.o, value-prof.o, + cfgexpand.o, pretty-print.o): Update dependencies. + +2010-05-22 Andreas Tobler + + * tree-ssa-structalias.c: Remove tm_p.h from include. + +2010-05-21 Jeff Law + + * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo. + +2010-05-21 Jason Merrill + + * tree-eh.c (cleanup_is_dead_in): New. + (lower_try_finally): Don't generate a dead cleanup region. + (lower_cleanup): Likewise. + +2010-05-21 Jakub Jelinek + + PR debug/44223 + * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST, + unchain each use from the cyclic next_regno_use chain first. + +2010-05-21 Steven Bosscher + + * real: Do not include gmp.h, mpfr.h, and mpc.h. + (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove. + (real_value_negate, real_value_abs): New prototypes. + (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here... + * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here, + new include file for interface between MPFR and REAL_VALUE_TYPE. + * real.c: Include realmpfr.h. + (real_arithmetic2): Remove legacy function. + (real_value_negate): New. + (real_value_abs): New. + (mfpr_from_real, real_from_mpfr): Move from here... + * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file. + * builtins.c: Include realmpfr.h. + * fold-const.c: Include realmpfr.h. + (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE. + (fold_negate_const): Likewise. + (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS. + * toplev.c: Include realmpfr.h. + * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs + and real_value_negate. + * fixed-value.c (check_real_for_fixed_mode): Likewise. + * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise. + (vfp3_const_double_index): Likewise. + (arm_print_operand): Likewise. + * Makefile.in: Update dependencies. + +2010-05-21 Andreas Krebbel + + * config/s390/s390.c (override_options): Increase the default + of max-completely-peel-times. + +2010-05-21 Julian Brown + Mark Mitchell + + * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid + sibling calls for Thumb-1. + * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2. + * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for + Thumb-2. + (*call_insn, *call_value_insn): Don't use for Thumb-2. + (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use + for Thumb-2. + (return): New expander. + (*arm_return): New name for ARM return insn. + * config/arm/thumb2.md (*thumb2_return): New insn pattern. + +2010-05-19 Joel Sherrill + + * config.gcc (sparc64-*-rtems*): New target. + +2010-05-21 Nathan Froyd + + * tree.c (build_function_decl_skip_args): Fix grammar. + (build_function_type_list_1): Fix typos, adjust formatting. + +2010-05-21 Steven Bosscher + + * tree.h: Include real.h and fixed-value.h as basic datatypes. + * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h, + tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c, + tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c, + tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c, + genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c, + tree-pretty-print.c, tree-loop-distribution.c, + tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c, + tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c, + tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c, + tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c, + tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c, + tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c, + tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c, + tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c, + tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c, + tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c, + genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c, + tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c, + gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c, + tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c, + tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c, + store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c, + tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c, + tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c, + tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c, + tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c, + fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c, + tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c, + config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c, + config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c, + config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c, + config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c, + config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c, + config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c, + config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c, + config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c, + config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c, + config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c, + config/score/score7.c, config/score/score.c, config/arm/arm.c, + config/pa/pa.c, config/mips/mips.c, config/vax/vax.c, + config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c, + config/bfin/bfin.c: Clean up redundant includes. + * Makefile.in: Update accordingly. + +2010-05-21 Nathan Froyd + + PR middle-end/44204 + * builtins.c (fold_call_stmt): Pass &error_mark_node if the call + statement has no arguments. + +2010-05-21 Kai Tietz + + PR/44139 + * varasm.c (emutls_decl): Merge attributes to new decl. + +2010-05-21 Eric Botcazou + + PR middle-end/44101 + * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR + around the uniquized constructor if its type requires a conversion. + +2010-05-21 Jakub Jelinek + + PR debug/44205 + * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if + at -O0 goto_locus of any of the incoming edges differs from + goto_locus of outgoing edge, or gimple_location of any of the + labels differs. + +2009-09-14 Vladimir Makarov + + * ira.c (ira_non_ordered_class_hard_regs): Define. + (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs. + * ira-int.h (ira_non_ordered_class_hard_regs): Declare. + * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase + cost of unaligned hard regs when allocating multi-reg pseudos. + +2010-05-20 Richard Sandiford + + * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt. + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float + for TARGET_NO_FLOAT. + * config/mips/mips.c (mips_file_start): Expand conditional expression + into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT. + (mips_override_options): Move -mno-float override -msoft-float and + -mhard-float. + * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add + Condition(TARGET_SUPPORTS_NO_FLOAT). + * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set + __mips_no_float here. + (SUBTARGET_OVERRIDE_OPTIONS): Delete. + (TARGET_SUPPORTS_NO_FLOAT): Define. + * config/mips/sdemtk.opt: Delete. + +2010-05-20 Segher Boessenkool + + * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond. + +2010-05-20 Uros Bizjak + + PR target/43733 + * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode. + * configure: Regenerate. + * config.in: Regenerate. + * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e + instead of sahf only for 64bit targets. + +2010-05-20 Jakub Jelinek + + PR debug/44178 + * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call + setup_ref_regs for DEBUG_INSNs. + +2010-05-20 Jan Hubicka + + PR middle-end/44197 + * varpool.c (varpool_remove_node): Handle in-varpool aliases. + +2010-05-20 Kenneth Zadeck + + PR bootstrap/43870 + * df-scan.c (df_ref_compare): Stabilize sort. + +2010-05-20 Jakub Jelinek + + * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset + argument. Don't use DW_OP_piece if offset is non-zero, + put offset into second DW_OP_bit_piece argument. + (dw_sra_loc_expr): Adjust callers. For memory expressions + compute offset. + +2010-05-20 Hans-Peter Nilsson + + PR target/44202 + * config/cris/cris.md ("*addsi3_v32"): Correct "cc" + settings for 16-bit-constant "addo" alternative. + +2010-05-19 James E. Wilson + + * config/mips/mips-dsp.md (add3, + mips_add_s_): Add ISA_HAS_DSP condition. + + PR target/43764 + * mips.c (mips_call_expr_from_insn): New arg second_call. Set it. + (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn. + Use it. + +2010-05-19 Joseph Myers + + * diagnostic.c (FLOAT, FFS): Don't undefine. + * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise. + * cse.c, regmove.c: Remove comments about stdio.h and rtl.h + include ordering. + +2010-05-19 Richard Sandiford + + * combine.c (propagate_for_debug): Call make_compound_operation + on the source value. + (try_combine): When implementing a split chosen by find_split_point, + either copy i2src or set it to null. Assert that i2src is not null + before substituting into CALL_INSN_FUNCTION_USAGE. + +2010-05-19 Anatoly Sokolov + + * double-int.h (double_int_ior): New function. + * tree.h (build_int_cst_wide_type): Remove. + * tree.c (build_int_cst_wide_type): Remove. + * fold-const.c (native_interpret_int): Use double_int_to_tree instead + of build_int_cst_wide_type. + * stor-layout.c (set_sizetype): (Ditto.). + * dojump.c (do_jump): Use build_int_cstu instead of + build_int_cst_wide_type. + +2010-05-19 Eric Botcazou + + * langhooks.h (struct lang_hooks): Add new field deep_unsharing. + * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro. + (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING. + * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and + TARGET_EXPR nodes, but only once, if instructed to do so. Do not + propagate the 'data' argument to copy_tree_r. + (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker. + Propagate 'data' argument to walk_tree. + (copy_if_shared): New function. + (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker. + (unmark_visited): New function. + (unshare_body): Call copy_if_shared instead of doing it manually. + (unvisit_body): Call unmark_visited instead of doing it manually. + +2010-05-19 Nathan Froyd + + * hooks.h (hook_tree_tree_tree_bool_null): Rename to... + (hook_tree_tree_int_treep_bool_null): ...this. Update signature. + * hooks.c: Likewise. + * target-def.h (TARGET_FOLD_BUILTIN): Define to + hook_tree_tree_int_treep_bool_null. + * target.h (struct gcc_target): Update signature of fold_builtin + field. + * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature. + * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP + instead of the call expression. + (fold_builtin_call_array): Pass n and argarray directly. + (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of + consing a list. + * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift + MAX_ARGS check out of the loop. Delete declaration of `arity', declare + `i' and use it in place of `arity'. + * config/sparc/sparc.c (sparc_fold_builtin): Update signature. + Dereference `args' directly. + * config/xtensa/xtensa (xtensa_fold_builtin): Likewise. + +2010-05-19 Rainer Orth + + * doc/sourcebuild.texi (Effective-Target Keywords): Document + 3dnow, sse3, sse2. + (Directives): Document optional dg-require-effective-target + selector. + +2010-05-19 Richard Guenther + + PR lto/44196 + * tree.c (find_decls_types_r): Walk BLOCKs and its vars. + +2010-05-19 Richard Guenther + + * doc/invoke.texi (-fwhopr): Document new optional jobs argument. + * common.opt (fwhopr=): New. + * opts.c (common_handle_option): Handle OPT_fwhopr. + * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*. + * collect2.c (main): Match -fwhopr*. + * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr. + Execute ltrans stage in parallel when jobs is bigger than 1. + +2010-05-19 Rainer Orth + + * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to + pentiumpro on Solaris 8/x86 with Sun as. + * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as + hidden alias bug. + (gcc_cv_as_ix86_quad): Check for .quad directive. + * configure: Regenerate. + * config.in: Regenerate. + * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD. + +2010-05-19 Martin Jambor + + * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions + also for indirect edges. Actual printing moved... + (ipa_print_node_jump_functions_for_edge): ...here. + (ipa_compute_jump_functions): Renamed to + ipa_compute_jump_functions_for_edge and made static. + (ipa_compute_jump_functions): New function. + (make_edge_direct_to_target): Check if the number of arguments on + the newly direct edge is the same as the number of parametrs of + the callee. + * ipa-cp.c (ipcp_init_stage): Most functionality moved to new + ipa_compute_jump_functions. Call ipa_analyze_params_uses. + * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call + analysis functions unconditionally, call the new + ipa_analyze_params_uses on the node instead of every edge. + +2010-05-19 Christian Borntraeger + + * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step + to tree. + (dump_mem_ref): Adopt debug code to handle a tree as step. This + also checks for a constant int vs. non-constant but + loop-invariant steps. + (find_or_create_group): Change the sort algorithm to only consider + steps that are constant ints. + (idx_analyze_ref): Adopt code to handle a tree instead of a + HOST_WIDE_INT for step. + (gather_memory_references_ref): Handle tree instead of int and be + prepared to see a NULL_TREE. + (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune + prefetches if the step cannot be calculated at compile time. + (issue_prefetch_ref): Issue prefetches for non-constant but + loop-invariant steps. + +2010-05-18 Nathan Froyd + + Revert: + 2010-05-18 Nathan Froyd + + * tree.h (build_call_list): Remove. + * tree.c (build_call_list): Remove. + +2010-05-18 Nathan Froyd + + * tree.h (build_call_list): Remove. + * tree.c (build_call_list): Remove. + +2010-05-18 Jan Hubicka + + * ipa-reference.c (propagate): Walk all nodes in the cleanup stage. + +2010-05-18 Vladimir Makarov + + PR rtl-optimization/43332 + * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier. + +2010-05-18 Anatoly Sokolov + + * tree.h (build_int_cstu): Implement as static inline. + * tree.c (build_int_cstu): Remove function. + (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as + sign extended. + +2010-05-18 Richard Guenther + + PR lto/44143 + * lto-wrapper.c (verbose): New variable. Initialize from -v. + (debug): Initialize from -save-temps. + (collect_execute): Print command-line when verbose. + (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute + for ltrans invocation. Produce -dumpbase flag again. + (process_args): Remove. + (main): Simplify. + * collect2.c (maybe_run_lto_and_relink): Only pass object + files to lto-wrapper. + * gcc.c (LINK_COMMAND_SPEC): Likewise. + +2010-05-18 Jan Hubicka + + * opts.c (decode_options): Do not disable whopr at ipa_cp. + * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too. + +2010-05-18 Steven Bosscher + + PR lto/44184 + * lto-streamer-out.c (output_gimple_stmt): Output number of labels + in a GIMPLE_ASM. + * lto-streamer-in.c (input_gimple_stmt): Read number of labels + in a GIMPLE_ASM. + +2010-05-18 Jakub Jelinek + + PR debug/41371 + * var-tracking.c (find_loc_in_1pdv): Add a few checks from + rtx_equal_p inline. + +2010-05-18 Steven Bosscher + + * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add + lto-macho as lto_binary_reader. + + * darwin.c (darwin_asm_named_section): Do not add assembler comment + after .section directive; just print it before the directive instead. + +2010-05-17 Jan Hubicka + + * cgraph.c (cgraph_create_virtual_clone): Only check + versionable_function_p when not in wpa and checking is enabled. + * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after + there are no more functions to materialize. + +2010-05-17 Jan Hubicka + + * cgraph.h (struct ipa_replace_map): Add parm_num parameter. + * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary): + New functions. + (output_cgraph): Call output_cgraph_opt_summary. + (input_cgrpah): Call input_cgraph_opt_summary. + (output_cgraph_opt_summary_p, output_node_opt_summary, + input_node_opt_summary, input_cgraph_opt_section): New functions. + * lto-section-in.c (lto_section_name): Add cgraphopt. + * tree-inline.c (tree_function_versioning): Handle parm_num. + * lto-streamer.c (lto_get_section_name): Handle cgraphopt. + * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum. + +2010-05-17 Changpeng Fang + + * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio. + * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply + the insn to prefetch ratio heuristic to loops with known trip count. + +2010-05-17 Changpeng Fang + + * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New. + (schedule_prefetches): Do not generate a prefetch if the unroll factor + is far from what is required by the prefetch. + +2010-05-17 Jan Hubicka + + * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used. + (ipcp_estimate_growth): Likewise. + (ipcp_const_param_count): Likewise. + (ipcp_insert_stage): Likewise. + * ipa-prop.c (visit_load_for_mod_analysis): New function. + (visit_store_addr_for_mod_analysis): Set used flag. + (ipa_detect_param_modifications): Set used flag for SSE params; + update use of walk_stmt_load_store_addr_ops. + (ipa_print_node_params): Print used flag. + (ipa_write_node_info): Stream used flag. + (ipa_read_node_info): Likewise. + * ipa-prop.h (struct ipa_param_descriptor): Add used field. + (ipa_is_param_used): New function. + (lto_ipa_fixup_call_notes): Remove unused declaration. + +2010-05-17 Rainer Orth + + PR target/44074 + * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test. + * configure: Regenerate. + * config.in: Regenerate. + * config/i386/i386.c (print_operand) : Also print ";" if + !HAVE_AS_IX86_REP_LOCK_PREFIX. + Don't emit whitespace. + * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep. + (*rep_movsi): Likewise. + (*rep_movsi_rex64): Likewise. + (*rep_movqi): Likewise. + (*rep_movqi_rex64): Likewise. + (*rep_stosdi_rex64): Likewise. + (*rep_stossi): Likewise. + (*rep_stossi_rex64): Likewise. + (*rep_stosqi): Likewise. + (*rep_stosqi_rex64): Likewise. + (*cmpstrnqi_nz_1): Use {%;} after repz. + (*cmpstrnqi_nz_rex_1): Likewise. + (*cmpstrnqi_1): Likewise. + (*cmpstrnqi_rex_1): Likewise. + (*strlenqi_1): Use {%;} after repnz. + (*strlenqi_rex_1): Likewise. + * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} . + (*sync_compare_and_swap): Likewise. + (sync_double_compare_and_swap): Likewise. + (*sync_double_compare_and_swapdi_pic): Likewise. + (sync_old_add): Likewise. + (sync_add): Likewise. + (sync_sub): Likewise. + (sync_): Likewise. + +2010-05-17 Martin Jambor + + * cgraph.h (cgraph_indirect_call_info): New fields anc_offset, + otr_token and polymorphic. + * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields. + (cgraph_clone_edge): Copy the above fields. + * tree.c (get_binfo_at_offset): New function. + * tree.h (get_binfo_at_offset): Declare. + * ipa-prop.h (enum jump_func_type): Added known_type jump function + type, reordered items, updated comments. + (union jump_func_value): Added base_type field, reordered fields. + (enum ipa_lattice_type): Moved down in the file. + (struct ipa_param_descriptor): New field polymorphic. + (ipa_is_param_polymorphic): New function. + * ipa-prop.c: Include gimple.h and gimple-fold.h. + (ipa_print_node_jump_functions): Print known type jump functions. + (compute_complex_pass_through): Renamed to... + (compute_complex_assign_jump_func): this. + (compute_complex_ancestor_jump_func): New function. + (compute_known_type_jump_func): Likewise. + (compute_scalar_jump_functions): Create known type and complex ancestor + jump functions. + (ipa_note_param_call): New parameter polymorphic, set the corresponding + flag in the call note accordingly. + (ipa_analyze_call_uses): Renamed to... + (ipa_analyze_indirect_call_uses): this. New parameter target, define + variable var only in the block where it is used. + (ipa_analyze_virtual_call_uses): New function. + (ipa_analyze_call_uses): Likewise. + (combine_known_type_and_ancestor_jfs): Likewise. + (update_jump_functions_after_inlining): Implemented handling of a + number of new jump function types combination. + (print_edge_addition_message): Removed. + (make_edge_direct_to_target): New function. + (try_make_edge_direct_simple_call): Likewise. + (try_make_edge_direct_virtual_call): Likewise. + (update_call_notes_after_inlining): Renamed to... + (update_indirect_edges_after_inlining): this. Moved edge creation for + indirect calls to try_make_edge_direct_simple_call, also calls + try_make_edge_direct_virtual_call for virtual calls. + (ipa_print_node_params): Changed the header message. + (ipa_write_jump_function): Stream also known type jump functions. + (ipa_read_jump_function): Likewise. + (ipa_write_indirect_edge_info): Stream new fields in + cgraph_indirect_call_info. + (ipa_read_indirect_edge_info): Likewise. + * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and + GIMPLE_FOLD_H. + +2010-05-17 Rainer Orth + + * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition. + +2010-05-17 Nathan Froyd + + * tree.h (CALL_EXPR_ARGS): Delete. + (call_expr_arglist): Delete. + * tree.c (call_expr_arglist): Delete. + * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to + targetm.fold_builtin. + * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter. + Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN. + * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename + arglist parameter. Use CALL_EXPR_ARG. + (picochip_expand_builtin_3op): Likewise. + (picochip_expand_builtin_2opvoid): Likewise. + (picochip_expand_array_get): Likewise. + (picochip_expand_array_put): Likewise. + (picochip_expand_array_testport): Likewise. + (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp + rather than arglist. + * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of + CALL_EXPR_ARGS. + * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather + than TREE_VALUE and TREE_CHAIN. + * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise. + * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of + the arglist. + +2010-05-17 Jakub Jelinek + + PR bootstrap/42347 + * cfglayout.c (fixup_reorder_chain): Allow returnjump_p + to have no fallthru edge. + + PR middle-end/44102 + * cfgcleanup.c (try_optimize_cfg): When removing trivially empty + bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT + mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL + add BARRIER after previous bb if needed. + +2010-05-17 Nathan Froyd + + * tree.c (build_function_type_list_1): Remove bogus assert condition. + +2010-05-17 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete + unnecessary prototype. Replace copy_r12 and copy_r11 flag params + with copy_reg rtx param. + (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls. + Correct cases where code for ABI_V4 did not initialise the reg + used to access frame. Also leave frame_reg_rtx as sp for large + frames that save no regs. + +2010-05-17 Martin Jambor + + PR middle-end/44133 + * tree-sra.c (create_access_replacement): New parameter rename, mark + the replaement for renaming only when it is true. + (get_access_replacement): Pass true in the rename parameter of + create_access_replacement. + (get_unrenamed_access_replacement): New function. + (replace_uses_with_default_def_ssa_name): New parameter racc, get the + replacement declaration from it. + +2010-05-17 Bernd Schmidt + + * function.c (try_fit_stack_local, add_frame_space): New static + functions. + (assign_stack_local_1): Use them. Look for opportunities to use + space previously wasted on alignment. + * function.h (struct frame_space): New. + (struct rtl_data): Add FRAME_SPACE_LIST member. + * reload1.c (something_was_spilled): New static variable. + (alter_reg): Set it. + (reload): Test it in addition to testing if the frame size changed. + +2010-05-17 Christian Borntraeger + + * config/s390/s390.c: Define sane prefetch settings and activate + flag_prefetch_loop_arrays on -O3. + * config/s390/s390.h: Declare that read can use write prefetch. + +2010-05-17 Jakub Jelinek + + * lto-streamer-out.c (lto_output): Fix --enable-checking=release + build. + +2010-05-16 Jan Hubicka + + * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of + function body; do not check stdarg field of struct function. + +2010-05-16 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Dump versionable flag. + * cgraph.h (cgraph_local_info): Add versionable flag. + * ipa-cp.c (ipcp_analyze_node): Set versionable flag. + (ipcp_versionable_function_p): Use it. + * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream + versionable flag. + +2010-05-16 Jan Hubicka + + * cgraph.c (cgraph_clone_node): Take decl argument and insert + clone into hash when it is different from orig. + (cgraph_create_virtual_clone): Update use of cgraph_clone_node. + * cgraph.h (cgraph_clone_node): Update prototype. + * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map. + (lto_cgraph_encoder_delete): Delete body map. + (lto_cgraph_encoder_size): Move to header. + (lto_cgraph_encoder_encode_body_p, + lto_set_cgraph_encoder_encode_body): New. + (lto_output_node): Do not take written_decls argument; output clone_of + pointer. + (add_node_to): Add include_body_argument; call + lto_set_cgraph_encoder_encode_body on master of the clone. + (add_references): Update use of add_node_to. + (compute_ltrans_boundary): Likewise. + (output_cgraph): Do not create written_decls bitmap. + (input_node): Take nodes argument; stream in clone_of correctly. + (input_cgraph_1): Update use of input_node. + * lto-streamer-out.c (lto_output): Use encoder info to decide + what bodies to output. + * ipa-inline.c (cgraph_clone_inlined_nodes, + cgraph_decide_recursive_inlining): Update call of cgraph_clone_node. + * lto-streamer.h (lto_cgraph_encoder_d): Add body. + (lto_cgraph_encoder_size): Define here. + (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p): + Declare. + +2010-05-16 Richard Guenther + + * doc/invoke.texi (-fipa-struct-reorg): Do not mention + -fipa-type-escape. + * ipa-type-escape.c (gate_type_escape_vars): Run when + -fipa-struct-reorg runs. + * opts.c (decode_options): Do not unset flag_ipa_type_escape. + * common.opt (fipa-type-escape): Remove. + +2010-05-16 Eric Botcazou + + * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO. + (decode_options): Likewise. + * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H. + +2010-05-16 Jan Hubicka + + * ipa.c (function_and_variable_visibility): Also bring local all + aliases. + +2010-05-16 Richard Guenther + + * alias.c (nonoverlapping_memrefs_p): Remove use of + IPA type-escape information. + +2010-05-16 Joseph Myers + + * c-common.c (c_common_reswords): Add _Static_assert for C. + * c-parser.c (c_token_starts_declaration, + c_parser_next_token_starts_declaration, + c_parser_static_assert_declaration_no_semi, + c_parser_static_assert_declaration): New. + (c_parser_declaration_or_fndef): Add parameter static_assert_ok. + Handle static assertions if static_assert_ok. + (c_parser_external_declaration, c_parser_declaration_or_fndef, + c_parser_compound_statement_nostart, c_parser_label, + c_parser_for_statement, c_parser_objc_methodprotolist, + c_parser_omp_for_loop): All callers of + c_parser_declaration_or_fndef changed. + (c_parser_struct_declaration): Handle static assertions. + (c_parser_compound_statement_nostart): Use + c_parser_next_token_starts_declaration and + c_token_starts_declaration to detect start of declarations. + (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop): + Likewise. + +2010-05-16 Anatoly Sokolov + + * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE, + LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros. + * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, + TARGET_FUNCTION_VALUE_REGNO_P): Define. + (mmix_function_outgoing_value): Rename to... + (mmix_function_value): ...this. Make static. Add 'outgoing' argument. + (mmix_function_value_regno_p): Make static. + (mmix_libcall_value): New function. + * config/mmix/mmix-protos.h (mmix_function_outgoing_value, + mmix_function_value_regno_p): Remove declaration. + +2010-05-16 Eric Botcazou + + * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on + BUILT_IN_ALLOCA if stack checking is enabled. + +2010-05-16 Richard Guenther + + * var-tracking.c (vars_copy_1): Inline ... + (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT. + (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts. + (variable_merge_over_cur): Adjust. Merge asserts. + (variable_merge_over_src): Likewise. + (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT. + (variable_post_merge_new_vals): Merge asserts. + (variable_post_merge_perm_vals): Likewise. + (find_mem_expr_in_1pdv): Likewise. + (dataflow_set_different_value): Remove. + (onepart_variable_different_p): Merge asserts. + (variable_different_p): Likewise. + (dataflow_set_different_1): Inline ... + (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT. + (emit_notes_for_differences_1): Merge asserts. + +2010-05-16 Richard Guenther + + * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE. + * optabs.c (libfunc_decl_hash): Likewise. + * varasm.c (emutls_decl): Likewise. + +2010-05-16 Steven Bosscher + + * c-decl.c: Don't include gimple.h. + (merge_decls): Do not copy gimple_body. + +2010-05-15 Jason Merrill + + * c.opt: Add -fnothrow-opt. + +2010-05-15 Jan Hubicka + + * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is + analyzed. + * passes.c (ipa_write_summaries): Write all analyzed nodes. + +2010-05-15 Steven Bosscher + + * vecir.h: New file with VEC primitives for tree, gimple, and rtl. + * Makefile.in: Add it. + Fix all other Makefile dependencies for changes below. + * tree.h: Include it instead of defining VEC primitives here. + * gimple.h: Likewise. + * rtl.h: Likewise. + * tree-inline.h: Inlclude vecir.h instead of gimple.h. + * except.h: Include vecir.h, break dependence on tree.h. + + * gimplify.c (append_to_statement_list_1, append_to_statement_list): + Move from here... + * tree-iterator.c: ...to here. + * tree-iterator.h: Fix file introduction comment. Add extern markers. + + * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include + tm_p.h. + * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included. + * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h, + integrate.h, function.h, toplev.h, tree-inline.h, ggc.h, + tree-mudflap.h, and target.h. + * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h, + predict.h, tree-inline.h, gimple.h, and langhooks.h. + * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h. + Add FIXME for why gimple.h is still included (should be unnecessary + since GCC 4.5 gimplification unit-at-a-time). + * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h. + * c-pragma.c: Add FIXME for why function.h needs to be included just + for cfun, at front-end level. + Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook. + Do not include ggc.h, but include vecprim.h for VEC(char). + * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h. + Explain why target.h is included. + * c-omp.h: Do not include tm.h, function.h, and bitmap.h. + Explain why gimple.h is included. + * c-ppoutput.c: Do not include tm.h. + * c-common.c: Do not include gimple.h. Explain why expr.h is included. + * c-parses.c: Explain why rtl.h is included, and that this (and only + this) is also why tm.h must be included. + Do not include except.h. + * c-lang.c: Do not include ggc.h. + +2010-05-15 Uros Bizjak + + * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX. + +2010-05-15 Joseph Myers + + * c-decl.c (grokfield): Allow typedefs for anonymous structs and + unions by default if those structs and unions have no tags. Do + not condition anonymous struct and unions handling on flag_iso. + Allow anonymous structs and unions for C1X. + (finish_struct): Do not diagnose lack of named fields when + anonymous structs and unions present for C1X. Accept flexible + array members in structure with anonymous structs or unions but no + directly named fields. + * doc/extend.texi (Unnamed Fields): Update. + +2010-05-15 Eric Botcazou + + * gimple.h (compare_field_offset): Rename into... + (gimple_compare_field_offset): ...this. + * gimple.c (compare_field_offset): Rename into... + (gimple_compare_field_offset): ...this. Compare the full access if + the offset is self-referential. + (gimple_types_compatible_p): Adjust for above renaming. + * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the + DECL_NONADDRESSABLE_P flag of fields before merging them. + +2010-05-15 Nathan Froyd + + * tree.h (ctor_to_list): Delete. + * tree.c (ctor_to_list): Delete. + +2010-05-15 Jan Hubicka + + * ipa-reference.c: Include toplev.h + (is_proper_for_analysis): Only add to all_module_statics + if it is allocated. + (write_node_summary_p, stream_out_bitmap, + ipa_reference_write_optimization_summary, + ipa_reference_read_optimization_summary): New. + (struct ipa_opt_pass_d pass_ipa_reference): Add + optimization summary streaming. + * lto-cgraph.c (referenced_from_this_partition_p, + reachable_from_this_partition_p): New functions. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, + call_may_clobber_ref_p_1): Ask ipa-reference even for public vars. + * opts.c (decode_options): Enable ipa_reference. + * Makefile.in (ipa-reference.o): Add toplev.h dependency. + * lto-streamer.h (referenced_from_this_partition_p, + reachable_from_this_partition_p): Declare. + +2010-05-15 Richard Guenther + + PR tree-optimization/44038 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid + taking the address of a V_C_E of a constant. + +2010-05-14 Jan Hubicka + + * tree.h (memory_identifier_string): Remove. + * ipa-reference.c: Update comment; do not include gt-ipa-reference.h + (ipa_reference_global_vars_info_d): Remove statics_not_read and + statics_not_written. + (ipa_reference_optimization_summary_d): New structure. + (ipa_reference_optimization_summary_t): New type and vector. + (ipa_reference_vars_info_d): Embedd structures instead of using + pointers. + (reference_vars_to_consider): Remove out of GGC space. + (module_statics_escape): Remove. + (global_info_obstack): Rename to ... + (optimization_summary_obstack): ... this one. + (initialization_status_t): Remove. + (memory_identifier_string): Remove. + (get_reference_vars_info): Fix indenting. + (set_reference_vars_info): Likewise. + (get_reference_optimization_summary): New. + (set_reference_optimization_summary): New. + (get_global_reference_vars_info): Remove. + (ipa_reference_get_read_global): Remove. + (ipa_reference_get_written_global): Remove. + (ipa_reference_get_not_read_global): Update. + (ipa_reference_get_not_written_global): Update. + (is_proper_for_analysis): Outlaw addressable. + (propagate_bits): Update for new datastructures. + (analyze_variable): Remove. + (init_function_info): Update for new datastructures. + (clean_function_local_data): Remove. + (clean_function): Remove. + (copy_global_bitmap): Use optimizations_summary_obstack. + (duplicate_node_data): Duplicate optimization summary only. + (remove_node_data): Remove optimization summary only. + (generate_summary): Do not analyze variables; do not compute + module_statics_escape; do not prune solutions by it. + (read_write_all_from_decl): Fix typos in comments. + (propagate): Doscover readonly and nonaddressable first; + update for new datastructures; share global bitmaps. + * ipa-reference.h (ipa_reference_get_read_global, + ipa_reference_get_written_global): Remove. + * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string. + * Makefile.in: Remove ipa-refereference from GT files. + +2010-05-14 Jakub Jelinek + + PR debug/44112 + * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN + for all SYMBOL_REF_DECLs. + +2010-05-14 Jan Hubicka + + * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare. + (varpool_all_refs_explicit_p): New inline function. + * ipa-reference.c: Update comment. + (module_statics_written): Remove. + (get_static_decl): Remove. + (ipa_init): Do not initialize module_statics_written. + (analyze_function): Likewise. + (generate_summary): Likewise; do not compute module_statics_readonly + and do not update variable flags. + (propagate): Call ipa_discover_readonly_nonaddressable_vars. + * ipa.c: Inlucde flags.h + (cgraph_local_node_p): New. + (cgraph_remove_unreachable_nodes): Return early when not optimizing; + promote functions to local. + (ipa_discover_readonly_nonaddressable_vars): New function. + (function_and_variable_visibility): Use cgraph_local_node_p. + * varpool.c (varpool_finalize_decl): Set force_output for + DECL_PRESERVE_P vars. + +2010-05-14 Jan Hubicka + + * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit. + +2010-05-14 Richard Guenther + + PR tree-optimization/44119 + * tree-ssa-pre.c (eliminate): Properly mark replacement of + a PHI node necessary. + +2010-05-14 Eric Botcazou + + * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL. + +2010-05-14 Jason Merrill + + PR c++/44127 + * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW. + (gimple_call_set_nothrow): New. + * gimple.c (gimple_build_call_from_tree): Call it. + (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW. + + PR c++/44127 + * gimplify.c (gimplify_seq_add_stmt): No longer static. + * gimple.h: Declare it. + * gimple.c (gimple_build_eh_filter): No ops. + +2010-05-14 Jan Hubicka + + * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue + nodes already in queue. + (cgraph_remove_unreachable_nodes): Cleanup; fix problem with + re-enqueueing node. + +2010-05-14 Jakub Jelinek + + PR debug/44136 + * cfgexpand.c (expand_debug_expr): If non-memory op0 + has BLKmode, return NULL. + +2010-05-14 Harsha Jagasia + + * config.gcc: Add support for --with-cpu option for bdver1. + * config/i386/i386.h (TARGET_BDVER1): New macro. + (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL + to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL. + (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL + to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL. + Add SSE_PACKED_SINGLE_INSN_OPTIMAL. + (TARGET_CPU_DEFAULT_NAMES): Add bdver1. + (processor_type): Add PROCESSOR_BDVER1. + * config/i386/i386.md: Add bdver1 as a new cpu attribute to match + processor_type in config/i386/i386.h. + Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit + movaps instead of movapd when replacing + movsd or movss for SSE and AVX. + Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL + to emit packed xor instead of packed double/packed integer + xor for SSE and AVX when moving a zero value. + * config/i386/sse.md: Add check for + TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of + movapd/movdqa for SSE and AVX. + Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed + single logical operations i.e and, or and xor instead of packed double + logical operations for SSE and AVX. + * config/i386/i386-c.c (ix86_target_macros_internal): + Add PROCESSOR_BDVER1. + * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1. + (has_fma4, has_xop): New. + * config/i386/i386.c (bdver1_cost): New variable. + (m_BDVER1): New macro. + (m_AMD_MULTIPLE): Add m_BDVER1. + (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen, + x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx, + x86_tune_use_simode_fiop, x86_tune_promote_qimode, + x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8, + x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency, + x86_tune_sse_partial_reg_dependency, + x86_tune_sse_unaligned_load_optimal, + x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores, + x86_tune_memory_mismatch_stall, x86_tune_use_ffreep, + x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions, + x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem, + x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch): + Enable/disable for bdver1. + (processor_target_table): Add bdver1_cost. + (cpu_names): Add bdver1. + (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in + processor_alias_table. + (ix86_expand_vector_move_misalign): Change. + TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL. + Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL. + Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead + of movupd/movdqu for SSE and AVX. + (ix86_tune_issue_rate): Add PROCESSOR_BDVER1. + (ix86_tune_adjust_cost): Add code for bdver1. + (standard_sse_constant_opcode): Add check for + TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead + of packed double xor for SSE and AVX. + +2010-05-14 Pat Haugen + + * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs() + result to unsigned. + +2010-05-14 Tristan Gingold + + * toplev.c (default_debug_hooks): Remove this variable. + (process_options): Remove assignments to default_debug_hooks. + +2010-05-14 Martin Jambor + + * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove. + (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF. + * langhooks.h (struct lang_hooks_for_decls): Removed field + fold_obj_type_ref. + * tree.c (free_lang_data): Remove assignment to + lang_hooks.fold_obj_type_ref. + * tree.def (OBJ_TYPE_REF): Update comment. + +2010-05-14 Richard Guenther + + PR tree-optimization/44124 + * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access. + +2010-05-14 Alan Modra + + PR target/44075 + * config/rs6000/rs6000.c (struct machine_function): Reorder + fields for better packing. Add lr_save_state. + (rs6000_ra_ever_killed): Return lr_save_state if set. + (rs6000_emit_eh_reg_restore): Set lr_save_state. + +2010-05-13 Jan Hubicka + + * varpool.c (decide_is_variable_needed): Drop code checking + TREE_SYMBOL_REFERENCED. + +2010-05-13 Jan Hubicka + + * final.c (output_addr_const): Do not call mark_decl_referenced. + * cgraphunit.c (process_function_and_variable_attributes): Use + mark_needed_node dirrectly. + (assemble_thunk): Do not call mark_decl_referenced. + +2010-05-13 Anatoly Sokolov + + * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx. + +2010-05-13 Jeff Law + + * ira-conflicts.c (print_allocno_conflicts): New function broken out + from... + (print_conflicts): Call print_allocno_conflicts. + +2010-05-13 Jakub Jelinek + + PR debug/44104 + * dwarf2out.c (modified_type_die): Don't dereference mod_type_die + if it is NULL. + +2010-05-13 Kai Tietz + + * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose + t-mingw-w64 or t-mingw-w32 for multilib configuration. + * config/i386/t-mingw-w32: New. + * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib. + +2010-05-13 Martin Jambor + + * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to + gimple-fold.c). + * gimple-fold.c (get_base_binfo_for_type): New function. + (gimple_get_relevant_ref_binfo): Likewise. + (gimple_fold_obj_type_ref_known_binfo): Likewise. + (gimple_fold_obj_type_ref): Likewise. + (fold_gimple_call): Simplify condition for folding virtual calls + and call gimple_fold_obj_type_ref. + * gimple.h (gimple_get_relevant_ref_binfo): Declare. + (gimple_fold_obj_type_ref_known_binfo): Likewise. + +2010-05-13 Andreas Schwab + + * config/rs6000/rs6000-protos.h + (rs6000_mode_dependent_address_ptr): Change argument to const_rtx. + * config/rs6000/rs6000.c (rs6000_mode_dependent_address) + (rs6000_debug_mode_dependent_address) + (rs6000_mode_dependent_address_ptr): Likewise. + +2010-05-13 Jakub Jelinek + + PR debug/43983 + * var-tracking.c (track_expr_p): Allow tracking of variables optimized + by SRA. + * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H). + * tree-sra.c (create_access_replacement): Call unshare_expr before + passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it. + * dwarf2out.c: Include tree-flow.h. + (struct var_loc_node): Rename var_loc_note field to loc, add comment. + (size_of_loc_descr, output_loc_operands, output_loc_operands_raw): + Handle DW_OP_bit_piece. + (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node, + construct_piece_list, adjust_piece_list): New functions. + (add_var_loc_to_decl): Handle SRA optimized variables. + Adjust for var_loc_note to loc field renaming. + (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl + in VAR_LOCATION note. + (new_loc_descr_op_bit_piece): New function. + (dw_sra_loc_expr): New function. + (dw_loc_list): Use it. Don't handle the last range after the + loop, handle it inside of the loop. Adjust for var_loc_note + to loc field renaming. + (add_location_or_const_value_attribute): Only special case + single entry loc lists if loc is NOTE_P. Adjust for + var_loc_note to loc field renaming. + (dwarf2out_var_location): Don't set newloc->var_loc_note + and newloc->next here. + +2010-05-12 Jan Hubicka + + * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed + flag. + * cgraph.h (cgraph_only_called_directly_p, + cgraph_can_remove_if_no_direct_calls_p): test address_taken flag. + (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function. + * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken. + (assemble + * ipa.c (cgraph_remove_unreachable_nodes): Use + cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken + flags. + * tree-inline.c (copy_bb): Check address_taken flag. + * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and + externally_visible flag. + +2010-05-12 Jason Merrill + + PR bootstrap/44048 + PR target/44099 + * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling. + * sdbout.c (plain_type_1): Likewise. + * dwarf2out.c (is_base_type): Likewise. + (gen_type_die_with_usage): Likewise. Generate + DW_TAG_unspecified_type for any LANG_TYPE. + +2010-05-12 Jan Hubicka + + * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build + indrect edges too. + * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument. + (cgraph_clone_edge): Update. + (cgraph_node_remove_callees): Remove indirect calls too. + * cgraph.h (cgraph_indirect_call_info): Add ecf_flags. + (cgraph_create_indirect_edge): Update prototype. + * ipa-reference.c (has_proper_scope_for_analysis): Rename to + is_proper_for_analysis. + (add_new_function, visited_nodes, function_insertion_hook_holder, + get_local_reference_vars_info, mark_address_taken, mark_address, + mark_load, mark_store, check_asm_memory_clobber, check_call, + scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove. + (ipa_init): Do not initialize visited_nodes; + function_insertion_hook_holder. + (analyze_variable): Rewrite. + (analyze_function): Rewrite. + (copy_local_bitmap): Remove. + (duplicate_node_dat): Do not duplicate local info. + (generate_summary): Simplify to only walk cgraph. + (write_node_summary_p, ipa_reference_write_summary, + ipa_reference_read_summary): Remove. + (propagate): Do not remove function insertion; + generate summary. + (pass_ipa_reference): NULLify summary handling fields. + * lto-cgraph.c (lto_output_edge): Output ecf_flags. + (input_edge): Input ecf_flags. + * ipa-prop.c (ipa_note_parm_call): Expect edge to be around. + (update_indirect_edges_after_inlining): Ignore edges with unknown + param. + +2010-05-12 Sriraman Tallam + + * implicit-zee.c: New file. + * tree-pass.h (pass_implicit_zee): Declare. + * passes.c (init_optimization_passes): Add zee pass. + * common.opt (fzee): New flag. + * timevar.def (TV_ZEE): Define. + * config/i386/i386.c (optimization_options): Turn on ZEE for level 2 + and beyond. + * Makefile.in (implicit-zee.o): Add new build file. + +2010-05-12 Kazu Hirata + Nathan Froyd + + * c-common.c (sync_resolve_params): Remove write-only variable. + +2010-05-12 Anatoly Sokolov + + * target.h (struct gcc_target): Add mode_dependent_address_p field. + * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New. + (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P. + * targhooks.c (default_mode_dependent_address_p): New function. + * targhooks.h (default_mode_dependent_address_p): Declare function. + * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New. + (GO_IF_MODE_DEPENDENT_ADDRESS): Update. + * recog.c (mode_dependent_address_p): Call mode_dependent_address_p + target hook. Change return type to bool. + * recog.h (mode_dependent_address_p): Change return type to bool. + +2010-05-12 Kazu Hirata + Nathan Froyd + + * tree-mudflap.c (build_function_type_0, build_function_type_1, + build_function_type_2, build_function_type_3): Remove. + (mudflap_init): Use build_function_type_list. + +2010-05-12 Kazu Hirata + Nathan Froyd + + * coverage.c (build_fn_info_value): Call build_constructor instead of + build_constructor_from_list. + (build_ctr_info_value): Likewise. + (build_gcov_info): Likewise. + +2010-05-12 Nathan Froyd + + * tree.c (build_constructor): Compute TREE_CONSTANT for the + resultant constructor. + (build_constructor_single): Don't set TREE_CONSTANT. + (build_constructor_from_list): Don't compute TREE_CONSTANT. + +2010-05-12 Jan Hubicka + + * cgraph.h (struct varpool_node): Add aux. + * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes. + * varpool.c (varpool_remove_node): Do not remove initializer. + (varpool_reset_queue): Export. + (varpool_finalize_decl): Volatile vars are forced to be output. + * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of + replaced decl. + * ipa.c (enqueue_cgraph_node, enqueue_varpool_node, + process_references, varpool_can_remove_if_no_refs): New functions. + (cgraph_remove_unreachable_nodes): Handle variables too. + +2010-05-12 H.J. Lu + + PR target/44088 + * config/i386/sse.md (*avx_vmmaskcmp3): New. + +2010-05-12 Jakub Jelinek + + PR middle-end/44085 + * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK, + change value of ORT_TASK. + (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK. + (omp_notice_threadprivate_variable): New function. + (omp_notice_variable): Call it for threadprivate variables. + If enclosing ctx is a task, print enclosing task rather than + enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK. + (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK + if task has untied clause. + + PR debug/42278 + * dwarf2out.c (base_type_die): Don't add name attribute here. + (modified_type_die): Instead of sizetype use + its underlying original type. If a DW_TAG_base_type doesn't + have name added, add __unknown__. + (dwarf2out_imported_module_or_decl_1): Don't call base_type_die, + always call force_type_die instead. + +2010-05-12 Maxim Kuvyrkov + + * targhooks.c (default_stack_protect_guard): Avoid sharing RTL + for __stack_chk_guard. + +2010-05-11 Jakub Jelinek + + * c-opts.c (c_common_parse_file): If start_end_main_source_file, + don't call start_source_file debug hook here... + (finish_options): ... but here, after outputting predefined and + command line defines and undefs. + + PR middle-end/44071 + * cfglayout.c (fixup_reorder_chain): Allow asm goto to have + no fallthru edge. + * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode + optimizing away empty bb with no successors, move over its + footer chain to fallthru predecessor. + * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND. + (rtl_split_edge): For asm goto call patch_jump_insn even if + splitting fallthru edge. + + PR c++/44059 + * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object + even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls. + * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise. + * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY + on DW.ref.* decls. + + PR c++/44062 + * c-parser.c (c_parser_expression): Mark LHS of a comma + expression as read if it is a decl, handled component or + COMPOUND_EXPR with that on the RHS. + * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR + if it is a decl or handled component. + +2010-05-11 Jan Hubicka + + * lto-symtab.c (lto_symtab_free): New function. + * lto-streamer.h (lto_symtab_free): Declare. + +2010-05-11 Jan Hubicka + + * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume + that if function is needed it is reachable. + (lto_output_node): See if it the function is reachable or referenced. + (output_cgraph): Update call of lto_output_node. + * lto-streamer.h (reachable_from_other_partition_p): Declare. + +2010-05-11 Jan Hubicka + + * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__): + Mark as used. + +2010-05-11 Jan Hubicka + + PR tree-optimize/44063 + * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of + queue. + (cgraph_decide_inlining_of_small_function): Skip check when disrgarding + limits. + (estimate_function_body_sizes): Compute sizes even when disregarding. + +2010-05-11 Kai Tietz + + * collect2.c (maybe_lto_object_file): Add x64-coff magic and check. + +2010-05-11 Jan Hubicka + + * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes + into every boundary. + +2010-05-11 Jan Hubicka + + * matrix-reorg.c (matrix_reorg): Rebuild edges. + +2010-05-11 Jan Hubicka + + * lto-streamer.c (lto_streamer_cache_add_to_node_array, + lto_streamer_cache_delete): Put nodes into heap. + * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in + heap. + +2010-05-11 Jan Hubicka + + * cgraphbuild.c (cgraph_rebuild_references): New. + * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized + out extern inlines. + * cgraph.h (cgraph_rebuild_references): Declare. + * tree-inline.c (tree_function_versioning): Use it. + * ipa-struct-reorg.c (do_reorg_for_func): Likewise. + +2010-05-11 Jan Hubicka + + * cgraph.c: Include ipa-utils.h + (cgraph_create_virtual_clone): Update references. + * Makefile.in (cgraph.o): Add dependency at ipa-utils.h + +2010-05-11 Christian Borntraeger + + * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset + prefetch_before to PREFETCH_ALL if to accesses "meet" beyond + cache size. + +2010-05-11 Christian Borntraeger + + * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches. + +2010-05-11 Jakub Jelinek + + * gcc.c (execute): For -### don't quote arguments that + contain just alphanumerics and _/-. characters. + * doc/invoke.texi: Document that change for -###. + + PR debug/44023 + * df-problems.c (struct dead_debug): Add to_rescan field. + (dead_debug_init): Clear to_rescan field. + (dead_debug_finish): Rescan all debug insns in to_rescan + bitmap and free the bitmap. + (dead_debug_insert_before): Instead of rescanning debug insns + immediately queue their rescanning until dead_debug_finish. + (df_note_bb_compute): After dead_debug_add do continue instead + of break. + +2010-05-10 Jakub Jelinek + + PR debug/44028 + * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC, + clear also INSN_REG_USE_LIST. + +2010-05-10 Rainer Orth + + * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef. + +2010-05-10 Jan Hubicka + + * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally + commited change. + +2010-05-10 Jan Hubicka + + * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries): + Allocate encoders. + * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here. + * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool. + (lto_streamer_cache_create): Init alloc pool. + (lto_streamer_cache_delete): Free alloc pool. + * lto-streamer.h: Include alloc pool. + (lto_streamer_cache_d): Use alloc pool. + * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states. + +2010-05-10 Jan Hubicka + + * Makefile.in (cgraphbuild.o): Add dependency on except.h. + * cgraphbuild.c: Include except.h + (record_type_list, record_eh_tables): New function. + (build_cgraph_edges, rebuild_cgraph_edges): Use it. + +2010-05-10 Jan Hubicka + + * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry, + __frame_dummy_init_array_entry, force_to_data): Attribute as used + rather than unused. + +2010-05-10 Michael Matz + + * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg. + (can_reassociate_p): Use FLOAT_TYPE_P. + * tree-vectorizer.h (vect_is_simple_reduction): Rename to ... + (vect_force_simple_reduction): ... this. + * tree-parloops.c (gather_scalar_reductions): Use + vect_force_simple_reduction. + * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from + vect_is_simple_reduction, add modify argument, if true rewrite + "a-b" into "a+(-b)". + (vect_is_simple_reduction, vect_force_simple_reduction): New + functions. + (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction. + +2010-05-10 H.J. Lu + Vladimir Makarov + + PR rtl-optimization/44012 + * ira-build.c (remove_unnecessary_allocnos): Nullify + regno_allocno_map of the removed allocno. + +2010-05-10 Rainer Orth + + * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors + to /dev/null. + * configure: Regenerate. + +2010-05-10 Rainer Orth + + * config/sol2.c (solaris_assemble_visibility): Declare decl, vis + unused. + Define visibility_types, name, type inside HAVE_GAS_HIDDEN. + * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility + support in Sun ld. + * configure: Regenerate. + +2010-05-10 Richard Guenther + + * lto-symtab.c (lto_symtab_entry_marked_p): Make entry + marked if the entry identifier is marked. + +2010-05-10 Richard Guenther + + * c-common.c (struct c_common_attributes): Add fnspec attribute. + (handle_fnspec_attribute): New function. + * gimple.h (gimple_call_return_flags): Declare. + (gimple_call_arg_flags): Likewise. + * gimple.c (gimple_call_arg_flags): New function. + (gimple_call_return_flags): Likewise. + * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED): + New argument flags. + (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function + return value flags. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args. + * tree-ssa-structalias.c (make_constraint_from_heapvar): Split + main work to ... + (make_heapvar_for): ... this new function. + (handle_rhs_call): Handle fnspec attribute argument specifiers. + (handle_lhs_call): Likewise. + (find_func_aliases): Adjust. + +2010-05-10 Richard Guenther + + PR tree-optimization/44050 + * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag. + +2010-05-10 Wei Guozhi + + PR target/42879 + * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern. + +2010-05-09 Joseph Myers + + PR c/10676 + * c-typeck.c (lookup_field): Take a type directly. Update + recursive calls. + (build_component_ref): Update call to lookup_field. + (set_init_label): Use lookup_field to find initialized field. + Handle returned list of fields like a sequence of designators. + +2010-05-09 Richard Guenther + + PR middle-end/44024 + * fold-const.c (tree_single_nonzero_warnv_p): Properly + handle &FUNCTION_DECL. + +2010-05-09 Joseph Myers + + PR c/4784 + * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous + structures and unions recursively. + (detect_field_duplicates): Move duplicate detection with a hash to + detect_field_duplicates_hash. Always use a hash if anonymous + structures or unions are present. + * doc/extend.texi (Unnamed Fields): Document that duplicate fields + give errors. + +2010-05-09 H.J. Lu + + PR target/44046 + * config/i386/driver-i386.c (host_detect_local_cpu): Properly + detect Atom, Core 2 and Core i7. + +2010-05-09 Richard Guenther + + * gcc.c (store_arg): Handle temporary file deletion for + joined arguments. + +2010-05-09 Richard Guenther + + PR middle-end/44043 + * ipa-inline.c (estimate_function_body_sizes): Return after + disregarding inline limits. + +2010-05-09 Richard Guenther + + * gcc.c (store_arg): Revert last change. + +2010-05-08 Sandra Loosemore + + PR middle-end/28685 + * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function. + (optimize_ops_list): Call it. + +2010-05-08 Richard Guenther + + PR tree-optimization/44030 + * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set + NECESSARY flag if we propagate from a inserted expression. + +2010-05-08 Eric Botcazou + + * gimple.c (gimple_types_compatible_p) : Treat bounds of + domain types as equal if they are both PLACEHOLDER_EXPRs. + +2010-05-08 Richard Guenther + + * lto-wrapper.c (run_gcc): Remove linker output from + command line for LTRANS invocation. + +2010-05-07 Steven Bosscher + + * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add + lto-macho as lto_binary_reader. + * target.h (struct gcc_target): New hooks lto_start and lto_end. + * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define. + * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation + in lto_start and lto_end calls. + (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O + magic numbers. + (scan_prog_file): Update is_elf_or_coff call. + * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document. + + * collect2.c (main): Fix enum comparison. + + * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end): + Add prototypes. + * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker. + * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START + and TARGET_ASM_LTO_END. + * darwin.c: Include obstack.h and lto-streamer.h. + (lto_section_names_offset, lto_section_names_obstack, + lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static + global variables. + (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines. + (darwin_asm_lto_start): New function. Redirect output to asm_out_file + to a temporary file. + (darwin_asm_lto_end): New function. Restore asm_out_file. + (darwin_asm_named_section): For LTO sections, replace the name with + the offset of the section name in a string table, and build this + table. + (darwin_file_start): Initialize global vars for LTO support. + (darwin_file_end): If output to asm_out_file was redirected, append it + to the proper asm_out_file here. Add the section names section. + +2010-05-07 Steven Bosscher + + * c-pragma.c (pending_weak_d, pending_weak): New. + (pending_weaks): Change the type to VEC((pending_weak,gc) *. + (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks, + handle_pragma_weak): Update the uses of pending_weaks. + +2010-05-07 Ralf Wildenhues + + PR documentation/44016 + * doc/standards.texi (Standards): Link to unversioned + cxx0x_status.html page. + +2010-05-07 Iain Sandoe + + PR target/43708 + * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P + in addition to TREE_USED, to avoid "set but unused" warnings. + +2010-05-07 Changpeng Fang + + * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New. + (is_loop_prefetching_profitable): Do not insert prefetches + when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO + times the prefetch ahead distance. + +2010-05-07 Changpeng Fang + + * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): + Account for loop unrolling in the insn-to-prefetch ratio heuristic. + (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable + the unroll_factor. + +2010-05-07 Changpeng Fang + + * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump + a diagnostic info when the insn-to-mem ratio is too small. + +2010-05-07 Richard Guenther + + * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to + the linker plugin. + (store_arg): Queue temp_filename for deletion instead of + the whole argument. + +2010-05-07 Richard Guenther + + * lto-wrapper.c (DUMPBASE_SUFFIX): Define. + (run_gcc): Handle LTRANS phase invocation. + * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS. + +2010-05-07 Jakub Jelinek + + * tree.h (TREE_ADDRESSABLE): Adjust comment to say that + this is also meaningful on PARM_DECLs and RESULT_DECLs. + +2010-05-07 Rainer Orth + + * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r. + +2010-05-07 Richard Guenther + + PR tree-optimization/44020 + * tree-ssa-pre.c (execute_pre): Do not remove dead inserted + code when PRE is not yet initialized. + +2010-05-07 Rainer Orth + + * config/mips/dbxmdebug.h: Remove. + * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h. + +2010-05-07 Shujing Zhao + + * c-typeck.c (build_binary_op): Warn ordered comparison of pointer + with null pointer and also warn about ordered comparison of zero with + pointer if -Wextra. + +2010-05-05 Andreas Simbuerger + + * graphite-blocking.c + (pbb_strip_mine_profitable_p): Replace Value with mpz_t. + * graphite-clast-to-gimple.c + (clast_to_gcc_expression): Same. + (precision_for_value): Same. + (precision_for_interval): Same. + (gcc_type_for_interval): Same. + (graphite_create_new_guard): Same. + (compute_bounds_for_level): Same. + (graphite_create_new_loop_guard): Same. + * graphite-interchange.c + (build_linearized_memory_access): Same. + (pdr_stride_in_loop): Same. + (memory_strides_in_loop_1): Same. + (memory_strides_in_loop): Same. + (extend_scattering): Same. + (psct_scattering_dim_for_loop_depth): Same. + (pbb_number_of_iterations): Same. + * graphite-poly.h + (debug_iteration_domains): Same. + * graphite-ppl.c + (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same. + (ppl_set_inhomogeneous_gmp): Same. + (ppl_strip_loop): Same. + (ppl_lexico_compare_linear_expressions): Same. + (ppl_read_polyhedron_matrix): Same. + (ppl_max_for_le_pointset): Same. + * graphite-ppl.h + (ppl_read_polyhedron_matrix): Same. + (tree_int_to_gmp): Same. + (gmp_cst_to_tree): Same. + (ppl_set_inhomogeneous): Same. + (ppl_set_inhomogeneous_tree): Same. + (ppl_set_coef): Same. + (ppl_set_coef_tree): Same. + * graphite-sese-to-poly.c + (build_pbb_scattering_polyhedrons): Same. + (build_scop_scattering): Same. + (scan_tree_for_params_right_scev): Same. + (scan_tree_for_params): Same. + (find_params_in_bb): Same. + (find_scop_parameters): Same. + (add_upper_bounds_from_estimated_nit): Same. + (build_loop_iteration_domains): Same. + (add_condition_to_domain): Same. + (pdr_add_memory_accesses): Same. + +2010-05-05 Andreas Simbuerger + + * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve + CLooG's value_* macros to their respective mpz_* counterparts. + * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same. + (graphite_create_new_loop_guard): Same. + * graphite-interchange.c (build_linearized_memory_access): Same. + (pdr_stride_in_loop): Same. + (memory_strides_in_loop_1): Same. + (1st_interchange_profitable_p): Same. + * graphite-poly.c (extend_scattering): Same. + (psct_scattering_dim_for_loop_depth): Same. + (pbb_number_of_iterations): Same. + (pbb_number_of_iterations_at_time): Same. + * graphite-poly.h (new_1st_loop): Same. + * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same. + (oppose_constraint): Same. + (insert_constraint_into_matrix): Same. + (ppl_set_inhomogeneous_gmp): Same. + (ppl_set_coef_gmp): Same. + (ppl_strip_loop): Same. + (ppl_lexico_compare_linear_expressions): Same. + (ppl_max_for_le_pointset): Same. + (ppl_min_for_le_pointset): Same. + (ppl_build_realtion): Same. + * graphite-ppl.h (gmp_cst_to_tree): Same. + (ppl_set_inhomogeneous): Same. + (ppl_set_inhomogeneous_tree): Same. + (ppl_set_coef): Same. + (ppl_set_coef_tree): Same. + * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same. + (build_scop_scattering): Same. + (add_value_to_dim): Same. + (scan_tree_for_params_right_scev): Same. + (scan_tree_for_params_int): Same. + (scan_tree_for_params): Same. + (find_params_in_bb): Same. + (find_scop_parameters): Same. + (add_upper_bounds_from_estimated_nit): Same. + (build_loop_iteration_domains): Same. + (create_linear_expr_from_tree): Same. + (add_condition_to_domain): Same. + (pdr_add_memory_accesses): Same. + +2010-05-06 Magnus Fromreide + Jason Merrill + + * c-common.c (c_common_reswords): Add nullptr. + * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids. + * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE. + (gen_type_die_with_usage): Likewise. + * dbxout.c (dbxout_type): Likewise. + * sdbout.c (plain_type_1): Likewise. + +2010-05-06 Jason Merrill + + * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate. + Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set + ret appropriately. + (gimplify_compound_lval): Return GS_ALL_DONE as appropriate. + + * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for + stripping WITH_SIZE_EXPR. + (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't + change. + +2010-05-06 Rainer Orth + + * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from + list of obsolete configurations. + Disabled check for obsolete configurations. + (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*. + Removed support for previous versions. + * config/mips/iris.h: Removed. + * config/mips/iris5.h: Removed. + * config/mips/iris6.h: Merged old iris.h contents. + (TARGET_IRIX): Removed. + (DRIVER_SELF_SPECS): Removed mabi=32. + (IDENT_ASM_OP): Removed undef. + (STARTFILE_SPEC): Removed mabi=32. + (ENDFILE_SPEC): Likewise. + (IRIX_SUBTARGET_LINK_SPEC): Likewise. + (MACHINE_TYPE): Update for IRIX 6.5. + * config/mips/mips.c (mips_build_builtin_va_list): Replaced + TARGET_IRIX by TARGET_IRIX6. + (mips_file_start): Likewise. + (mips_output_external): Remove IRIX 5/6 O32 support. + (mips_output_function_prologue): Likewise. + * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by + TARGET_IRIX6. + (TARGET_CPU_CPP_BUILTINS): Likewise. + (TARGET_IRIX): Removed. + * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32. + (MULTILIB_DIRNAMES): Removed 32. + (MULTILIB_OSDIRNAMES): Removed ../lib. + * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5. + (Specific, mips-sgi-irix5): Document removal. + (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal. + Remove references to older IRIX 6 releases and the O32 ABI. + +2010-05-06 Jakub Jelinek + + PR bootstrap/43994 + * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC + instead of DF_REF_REAL_REG. + +2010-05-06 Dave Korn + + PR target/43888 + * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol + handling to still return true for x64 targets. + +2010-05-06 Maxim Kuvyrkov + + * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h. + +2010-05-06 Jan Hubicka + + PR tree-optimization/43791 + * ipa-inline.c (update_caller_keys): Remove bogus + disregard_inline_limits check. + +2010-05-06 Michael Matz + + PR tree-optimization/43984 + * tree-ssa-pre.c (inserted_phi_names): Remove. + (inserted_exprs): Change to bitmap. + (create_expression_by_pieces): Set bits, don't append to vector. + (insert_into_preds_of_block): Don't handle inserted_phi_names. + (eliminate): Don't look at inserted_phi_names, remove deleted + insns from inserted_exprs. + (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors. + (init_pre, fini_pre): Allocate and free bitmaps. + (execute_pre): Insert insns on edges before elimination. + +2010-05-06 Maxim Kuvyrkov + + * tree.c (initializer_zerop): Handle STRING_CST. + +2010-05-06 Manuel López-Ibáñez + + PR 40989 + * doc/invoke.texi (Wimplicit): Document as C only. + * opts.c (common_handle_option): Add argument kind. + (handle_option): Rename as read_cmdline_option. Factor out code to... + (handle_option): ... here. New. + (handle_options): Rename as read_cmdline_options. + (decode_options): Update call. + (set_option): Use option index instead of option pointer. Classify + diagnostics correctly. + (enable_warning_as_error): Call handle_option. + * opts.h (set_option): Update declaration. + (handle_option): Declare. + * langhooks.h (struct lang_hooks): Add argument kind to handle_option. + * c.opt (Wimplicit,Wimplicit-int): Initialize to -1. + * c-opts.c (set_Wimplicit): Delete. + (c_family_lang_mask): New static constant. + (c_common_handle_option): Add argument kind. Use handle_option + instead of set_Wimplicit. + (c_common_post_options): warn_implicit and warn_implicit_int + are disabled by default. + * c-common.c (warn_implicit): Do not define here. + * c-common.h (warn_implicit): Do not declare here. + (c_common_handle_option): Update declaration. + * lto-opts.c (lto_reissue_options): Update call to set_option. + +2010-05-06 Richard Guenther + + PR tree-optimization/43571 + * domwalk.c (walk_dominator_tree): Walk the dominator + sons in more optimal order. + +2010-05-06 Richard Guenther + + PR tree-optimization/43934 + * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes. + (stmt_cost): Likewise. + (extract_true_false_args_from_phi): New helper. + (determine_max_movement): For PHI nodes verify we can hoist them + and compute their cost. + (determine_invariantness_stmt): Handle PHI nodes. + (move_computations_stmt): Likewise. Hoist PHI nodes in + if-converted form using COND_EXPRs. + (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes. + (tree_ssa_lim): Likewise. + * tree-flow.h (tree_ssa_lim): Adjust prototype. + * tree-ssa-loop.c (tree_ssa_loop_im): Return todo. + +2010-05-06 Richard Guenther + + PR tree-optimization/43987 + * tree-ssa-structalias.c (could_have_pointers): For possibly + address-taken variables force pointers to be recorded. + (create_variable_info_for_1): Likewise. + (push_fields_onto_fieldstack): Pass in wheter all fields + must have pointers. + (find_func_aliases): Query types instead of vars whether + they contain pointers where appropriate. + +2010-05-06 Jan Hubicka + + * cgraphbuild.c (record_reference_ctx): Add varpool_node. + (record_reference, mark_address, mark_load, mark_store): Record + references. + (record_references_in_initializer): Update call of record_references. + (rebuild_cgraph_edges): Remove all references before rebuiding. + * cgraph.c (cgraph_create_node): Clear ref list. + (cgraph_remove_node): Remove references. + (dump_cgraph_node): Dump references. + (cgraph_clone_node): Clone references. + * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h + (struct cgraph_node, varpool_node): Add ref_lst. + * ipa-ref.c: New file. + * ipa-ref.h: New file. + * ipa-ref-inline.h: New file. + * lto-cgraph.c (output_varpool): Take cgrag node set argument. + (referenced_from_other_partition_p): New function. + (lto_output_varpool_node): Take set arugment; call + referenced_from_other_partition. + (lto_output_ref): New. + (add_references): New. + (output_refs): New. + (output_cgraph): Compute boundary based on references; output refs. + (output_varpool): Accept cgraph_node_set argument. + (input_ref): New. + (input_refs): New. + (input_cgraph): Call input_refs. + * lto-section-in.c (lto_section_name): Add refs. + * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h + (ipa-ref.o): New file. + * varpool.c (varpool_node): Clear ipa ref list. + (varpool_remove_node): Remove references. + (dump_varpool_node): Dump references. + (varpool_assemble_decl): Only compile finalized ones. + (varpool_extra_name_alias): Initialize ref list. + * lto-streamer.c (lto-get_section_name): Add .refs section. + * lto-streamer.h (lto_section_type): Add LTO_section_refs. + (referenced_from_other_partition_p): Declared. + +2010-05-06 Ira Rosen + + PR tree-optimization/43901 + * tree-vect-stmts.c (vectorizable_call): Assert that vector + type is not NULL if it's transformation phase, and return + FALSE if it's analysis. + (vectorizable_conversion, vectorizable_operation, + vectorizable_type_demotion, vectorizable_type_promotion): Likewise. + +2010-05-05 Andrew Pinski + + * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): + Delete. + * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): + New define. + * config/mips/mips-protos.h + (mips_small_register_classes_for_mode_p): Delete prototype. + +2010-05-06 Bernd Schmidt + + * config/arm/arm.h (MAX_LDM_STM_OPS): New macro. + * config/arm/arm.c (multiple_operation_profitable_p, + compute_offset_order): New static functions. + (load_multiple_sequence, store_multiple_sequence): Use them. + Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from + memory offsets, not register numbers. + (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS. + +2010-05-05 Steven Bosscher + + * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *. + (get_pending_sizes, put_pending_size, put_pending_sizes): + Update the uses of pending_sizes. + * c-decl.c (store_parm_decls): Likewise. + * c-tree.h (struct c_arg_info): Likewise. + * tree.h: Update the prototype for get_pending_sizes and + put_pending_sizes. + +2010-05-05 Jason Merrill + + PR debug/43370 + * c-common.c (handle_aligned_attribute): Respect + ATTR_FLAG_TYPE_IN_PLACE. + + PR testsuite/43758 + * target.h (struct gcc_target): Add attribute_takes_identifier_p. + * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define. + (TARGET_INITIALIZER): Use it. + * c-common.c (attribute_takes_identifier_p): Call it. + * c-common.h: Update prototype. + * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New. + (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define. + +2010-05-05 Jakub Jelinek + + PR debug/43950 + * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case + DW_ID_down_case for Fortran compilation units. + +2010-05-05 Jan Hubicka + + * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly + handle aliases. + +2010-05-05 Eric Botcazou + + * gimplify.c (gimplify_return_expr): Gimplify the size expressions of + a variable-sized RESULT_DECL. + +2010-05-05 Maxim Kuvyrkov + + * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM. + +2010-05-05 Jason Merrill + + PR c++/43787 + * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr + returns GS_OK. + (gimplify_modify_expr_rhs): Return GS_OK if anything changed. + +2010-05-05 Alexandre Oliva + Jakub Jelinek + + PR debug/43478 + * df-problems.c (struct dead_debug_use, struct dead_debug): New. + (dead_debug_init, dead_debug_finish): New functions. + (dead_debug_add, dead_debug_insert_before): Likewise. + (df_note_bb_compute): Initialize a dead_debug object, add dead + debug uses to it, insert debug bind insns before death insns, + reset debug insns that refer to pending uses at the end. + * rtl.h (make_debug_expr_from_rtl): New prototype. + * varasm.c (make_debug_expr_from_rtl): New function. + +2010-05-05 Jan Hubicka + + * lto-cgraph.c (output_varpool): Forward declare; work on encoder. + (lto_varpool_encoder_new, lto_varpool_encoder_delete, + lto_varpool_encoder_encode, lto_varpool_encoder_lookup, + lto_varpool_encoder_deref, lto_varpool_encoder_size, + lto_varpool_encoder_encode_initializer_p, + lto_set_varpool_encoder_encode_initializer): New functions. + (lto_output_cgraph): Take vset parameter too; compute varpool encoder; + call output_varpool. + (input_varpool_node): Do not always set analyzed. + (input_cgraph_1): Return vector of cgraph nodes. + (input_varpool_1): Return vector of varpools. + (input_cgraph): Free the vectors. + * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): + output only initializers needed. + (lto_output): Only call output_cgraph. + (produce_asm_for_decls): Call lto_varpool_encoder_delete. + * lto-section-out.c (lto_new_out_decl_state): Initialize + state->varpool_node_encoder. + * lto-streamer.h (lto_varpool_encoder_d): New. + (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder. + (lto_cgraph_encoder_delete, output_cgraph): Update prototype. + (lto_varpool_encoder_deref, lto_varpool_encoder_lookup, + lto_varpool_encoder_encode, lto_varpool_encoder_delete, + lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new): + Declare. + (output_varpool, input_varpool): Remove declarations. + +2010-05-05 Jan Hubicka + + * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable + with body can prevail. + +2010-05-05 Jan Hubicka + + * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with + size. + +2010-05-05 Laurynas Biveinis + + * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies. + + * gengtype.h (erro_at_line): Constify pos argument. + + * gengtype.c: Include hashtab.h. + (enum gc_used): Document GC_MAYBE_POINTED_TO. + (error_at_line): Constify pos argument. + (do_typedef): Initialize p->opt field. + (get_file_gtfilename): Fix comment typo. + (struct walk_type_data): Constify line field. + (get_output_file_for_structure): New function. + (write_local_func_for_structure): Constify orig_s argument. + Use get_output_file_for_structure. + (write_func_for_structure): Use get_output_file_for_structure. + (INDENT): New define. + (dump_pair, dump_type, dump_type_list, dump_typekind) + (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s) + (dump_type_u_a, dump_type_u_param_struct, dump_everything): New + functions. + (seen_types): New variable. + (main): New variable do_dump. Process "-d" command line option. + Call dump_everything if dump requested. + +2010-05-05 Jakub Jelinek + + * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value + in a temporary instead of invoking the macro multiple times. + (track_expr_p): Likewise. + +2010-05-04 Neil Vachharajani + + * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as + per new semantics. + * opts.c (decode_options): Enable -Werror=coverage-mismatch. + * coverage.c (get_coverage_counts): Always emit a warning. Adjust + conditions for printing notes. + * common.opt (-Wcoverage-mismatch): Allow negative, default to + true, update documentation. + * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h. + +2010-05-04 Jakub Jelinek + + PR c/43981 + * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read + on dimen. + +2010-05-04 H.J. Lu + + PR target/43799 + * config/i386/i386.md (sse_prologue_save): Clobber CC register. + (*sse_prologue_save_insn1): Likewise. + (SSE prologue save splitter): Likewise. + +2010-05-04 Eric Botcazou + + * tree.c (free_lang_data_in_one_sizepos): New inline function. + (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical + types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types. + (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of + all decls. Call it on DECL_FIELD_OFFSET of fields. + (find_decls_types_r): Follow DECL_VALUE_EXPR. + (iterative_hash_expr) : New case. + +2010-05-04 Martin Jambor + + * tree-sra.c (build_access_from_expr_1): The first parameter type + changed to simple tree. + (build_access_from_expr): Likewise, gsi parameter was eliminated. + (scan_assign_result): Renamed to assignment_mod_result, enum elements + renamed as well. + (build_accesses_from_assign): Removed all parameters except for a + simple gimple statement. Now returns a simple bool. + (scan_function): All non-analysis parts moved to separate functions + sra_modify_function_body and ipa_sra_modify_function_body. Removed all + parameters and updated both callers. + (sra_modify_expr): Removed parameter data. + (sra_modify_function_body): New function. + (perform_intra_sra): Call sra_modify_function_body to modify the + function body. + (replace_removed_params_ssa_names): Parameter data changed into + adjustments vector. + (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and + changed the parameter dont_convert to convert with the opposite + meaning. + (sra_ipa_modify_assign): Parameter data changed into adjustments + vector, return value changed to bool. + (ipa_sra_modify_function_body): New function. + (sra_ipa_reset_debug_stmts): Updated a comment. + (modify_function): Use ipa_sra_modify_function_body to modify function + body. + +2010-05-04 H.J. Lu + + PR middle-end/43671 + * alias.c (true_dependence): Handle the same VALUE in x and mem. + (canon_true_dependence): Likewise. + (write_dependence_p): Likewise. + +2010-05-04 Jan Hubicka + + * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h + * cgraphbuild.c: Include ipa-utils.h + (record_reference_ctx): New struct. + (record_reference): Simplify to work on initializers; not statements. + (mark_address, mark_load, mark_store): New. + (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops; + walk PHI nodes too. + (record_references_in_initializer): Update use of record_reference. + (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops; + walk PHI nodes too. + +2010-05-04 Jan Hubicka + + * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges; + node will be removed anyway. + (lto_varpool_replace_node): Allow also unanalyzed nodes; + relink aliases of node into prevailing node. + * varpool.c (varpool_remove_node): Remove aliases properly; + when removing node, remove all its aliases too; remove DECL_INITIAL + of removed node; ggc_free the varpool node. + +2010-05-04 Richard Guenther + + PR tree-optimization/43879 + * tree-ssa-structalias.c (alias_get_name): Use + DECL_ASSEMBLER_NAME if available. + (create_function_info_for): Return the varinfo node. + (ipa_pta_execute): Associate same-body aliases and extra names + with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME. + +2010-05-04 Kaz Kojima + + * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static. + +2010-05-04 Mikael Pettersson + + PR bootstrap/43964 + * ira-color.c (assign_hard_reg): Declare rclass and add_cost + only if HONOR_REG_ALLOC_ORDER is not defined. + +2010-05-04 Richard Guenther + + PR tree-optimization/43949 + * tree-vrp.c (extract_range_from_binary_expr): Only handle + TRUNC_MOD_EXPR. + +2010-04-26 Jason Merrill + + * c.opt (-fstrict-enums): New. + * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums. + +2010-05-03 David Ung + James E. Wilson + + * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS, + emit the trap instruction before the divide for TUNE_74K. + +2010-05-03 Steven Bosscher + + * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove. + (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation, + based on the above, for new target hook. + + * hooks.c (hook_bool_mode_true): New generic hook. + * hooks.h (hook_bool_mode_true): Add prototype. + + * target.h (struct gcc_target): Add small_register_classes_for_mode_p + target hook. + * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default + target hook, set to hook_bool_mode_false. + * regs.h: Remove default definition of SMALL_REGISTER_CLASSES. + * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES + with targetm.small_register_classes_for_mode_p. + (find_reusable_reload): Likewise. + (combine_reloads): Likewise. + * reload1.c (reload_as_needed): Likewise. + * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise. + * ifcvt.c (noce_process_if_block, check_cond_move_block, + dead_or_predicable): Likewise. + * regmove.c (optimize_reg_copy_1): Likewise. + * calls.c (prepare_call_address): Likewise. + (precompute_register_parameters): Likewise. + + * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target + hook definition. + * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add + implementation of the hook that considers all register classes + small except for SH64. + (sh_override_options): Use the new hook. + * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p): + Add prototype. + + * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target + hook definition. + * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add + implementation of the hook that considers all register classes + small for THUMB1. + * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p): + Add prototype. + + * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target + hook definition. + * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add + implementation of the hook that considers all register classes + small for MIPS16. + * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p): + Add prototype. + + * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target + hook definition. + * config/m32c/m32c.h: Likewise. + * config/pdp11/pdp11.h: Likewise. + * config/avr/avr.h: Likewise. + * config/xtensa/xtensa.h: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/mn10300/mn10300.h: Likewise. + * config/mcore/mcore.h: Likewise. + * config/h8300/h8300.h: Likewise. + * config/bfin/bfin.h: Likewise. + + * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition. + * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition. + +2010-05-03 Anatoly Sokolov + + * double-int.h (tree_to_double_int): Remove macro. + (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ... + * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here. + (tree_to_double_int): New function. + * double-int.c (double_int_to_tree, double_int_fits_to_tree_p): + Move ... + * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here. + +2010-05-03 Richard Guenther + + PR tree-optimization/43971 + * tree-ssa-structalias.c (get_constraint_for_1): Fix + constraints in the !flag_delete_null_pointer_checks case. + +2010-05-03 Jakub Jelinek + + PR debug/43972 + * config/i386/i386.c (ix86_delegitimize_address): Make sure the + result mode matches original rtl mode. + +2010-05-03 Dave Korn + + PR target/43888 + * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls. + +2010-05-02 Uros Bizjak + + * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa', + when processing flag options. + +2010-05-02 Uros Bizjak + + * gcov-iov.c (main): Change format string placeholder + from %#08x to 0x%08x. + * genchecksum.c (dosum): Change format string placeholder + from %#02x to 0x%02x. + +2010-05-02 Richard Guenther + + PR tree-optimization/43879 + * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls. + +2010-05-02 Bruno Haible + + * doc/extend.texi (Function Attributes): Fix a typo. + +2010-05-02 Uros Bizjak + + Revert: + * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string + placeholder from 0x%x to %#x. + (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto. + * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/i386.c (ix86_target_string): Ditto. + * config/i386/i386.c (output_pic_addr_const): Ditto. + (print_operand): Ditto. + +2010-05-02 Uros Bizjak + + * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string + placeholder from 0x%x to %#x. + (ASM_OUTPUT_DEBUG_DATA1): Ditto. + (ASM_OUTPUT_DEBUG_DATA4): Ditto. + (ASM_OUTPUT_DEBUG_DATA): Ditto. + (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto. + (ASM_OUTPUT_DEBUG_DATA8): Ditto. + * optc-gen.awk: Ditto. + * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto. + (HOST_WIDE_INT_PRINT_HEX): Ditto. + (HOST_WIDEST_INT_PRINT_HEX): Ditto. + (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto. + +2010-05-01 Anatoly Sokolov + + * target.h (struct calls): Add function_value_regno_p field. + * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define. + (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P. + * targhooks.c (default_function_value_regno_p): New function. + * targhooks.h (default_function_value_regno_p): Declare function. + * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook. + * builtins.c. (apply_result_size): (Ditto.). + * combine.c. (likely_spilled_retval_p): (Ditto.). + * mode-switching.c. Include 'target.h'. + (create_pre_exit): Use function_value_regno_p hook. + * Makefile.in (mode-switching.o): Add dependency on TARGET_H. + * doc/tm.texi (FUNCTION_VALUE_REGNO_P, + TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation. + + * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro. + * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro. + (ix86_function_value_regno_p): Declare as static, change argument + type to const unsigned int. + * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove. + +2010-05-01 Richard Guenther + + PR tree-optimization/43949 + * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned + types. + (extract_range_from_binary_expr): Handle *_MOD_EXPR. + +2010-05-01 Anatoly Sokolov + + * rtl.h (CONST_DOUBLE_P): Define. + (rtx_to_double_int): Declare. + * emit-rtl.c (rtx_to_double_int): New function. + * dwarf2out.c (insert_double): New function. + (loc_descriptor, add_const_value_attribute): Clean up, use + rtx_to_double_int and insert_double functions. + +2010-05-01 Jonathan Wakely + + * doc/extend.texi (Inline): Add missing return keyword to examples. + (Function Attributes, Variable Attributes, Pragmas): Hyphenate + "command-line". + +2010-04-30 Eric Botcazou + + * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of + the variable part of the offset as well. Use highest_pow2_factor for + all alignment checks. + +2010-04-30 Richard Guenther + + PR tree-optimization/43879 + * tree-ssa-structalias.c (type_could_have_pointers): Functions + can have pointers. + +2010-04-30 Jan Hubicka + + * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with + varpool. + (lto_symtab_merge_decls_1): Remove logic looking for an initializer. + +2010-04-30 Jan Hubicka + + * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): + New. + * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans. + * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p. + (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans, + cgraph_node_set_needs_ltrans_p): Remove. + +2010-04-30 Steven Bosscher + + * sdbout.c: Include vec.h, do not include varray.h. + (deferred_global_decls, sdbout_global_decl, + sdbout_finish, sdbout_init): Use VEC instead of VARRAY. + * toplev.c: Do not include varray.h. + (dump_memory_report): Do not dump VARRAY statistics. + * gengtype.c (open_base_file): Ignore varray.h. + * Makefile.in: Update for abovementioned changes. + Remove all traces of varray.c and varray.h. + * varray.c: Remove file. + * varray.h: Remove file. + +2010-04-30 Jan Hubicka + + * lto-cgraph.c (lto_output_varpool_node): Always output constant pool + references. + +2010-04-30 Jan Hubicka + + * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as + needed. + +2010-04-30 Richard Guenther + + * tree-ssa-structalias.c (get_constraint_for_1): Generate + constraints for CONSTRUCTOR. + +2010-04-30 Richard Guenther + + PR lto/43946 + * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data + first after all lowering passes. + +2010-04-30 Steven Bosscher + + * toplev.c: Include varray.h for statistics dumping. + * tree.h: Do not declare varray_head_tag. + * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c, + regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c, + c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c, + gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c, + lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c, + tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c, + c-common.c, c-common.h, reg-stack.c, basic-block.h, + tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not + include varray.h. + * Makefile.in: Update for abovementioned changes. + +2010-04-30 Jakub Jelinek + + PR debug/43942 + * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars. + +2010-04-30 Hariharan Sandanagobalane + + * config/picochip/picochip.c (picochip_legitimize_address): Define. + Use this function to do machine-specific conversion. + (picochip_legitimize_reload_address): Likewise. + (picochip_legitimate_address_p): Check valid base register only if + strict. + (picochip_check_conditional_copy): Check for modw only if opnd is + register. + * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this + to call the function in c. + * config/picochip/picochip-protos.h + (picochip_legitimize_reload_address): Define. + * config/picochip/picochip.md (supported_compare1): Define. + +2010-04-30 Jan Hubicka + + * cgraph.h (cgraph_local_info): Remove for_functions_valid. + (cgraph_global_info): Remove inlined. + (LTO_cgraph_tag_names): Remove. + (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ... + * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here; + simplify cgraph tags and document. + (lto_output_node): Use only LTO_cgraph_unavail_node and + LTO_cgraph_analyzed_node; Do not save analzed, reachable, + for_functions_valid, global info, process and output flags. + (input_overwrite_node): Initialize estimated stack size and + estimated growth. Do not read flags we no longer store. + (input_node): Likewise do not read info no longer stored. + * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined + flag. + +2010-04-30 Richard Guenther + + PR tree-optimization/43879 + * tree-ssa-structalias.c (get_constraint_for_1): Properly + handle non-zero initializers. + +2010-04-30 Richard Guenther + + * builtins.c (fold_builtin_1): Delete free (0). + +2010-04-29 Jan Hubicka + + * gengtype.c (open_base_files): Add lto-streamer.h + * cgraph.h (cgraph_local_info): lto_file_data is now in GGC. + (pass_ipa_cp): GGC collect. + * toplev. (compile_file): Do not output symbols. + * ipa-inline.c (pass_ipa_inline): Add ggc collect. + * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO, + TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New. + * lto-section-in.c: Include ggc.h + (lto_new_in_decl_state): Alloc in GGC. + (lto_delete_in_decl_state): Likewise. + * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program): + Collect. + +2010-04-29 Bernd Schmidt + + PR target/42895 + * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from + ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed. + (HONOR_REG_ALLOC_ORDER): Describe new macro. + * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined. + * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into + account only if HONOR_REG_ALLOC_ORDER is not defined. + * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define. + * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison. + +2010-04-29 Jon Grant <04@jguk.org> + + * collect2.c (vflag): Change type from int to bool. + (debug): Likewise. + (helpflag): New global bool. + (main): Set vflag and debug with boolean, not integer truth values. + Accept new "--help" option and output usage text if found. + * collect2.h (vflag): Update prototype. + (debug): Likewise. + +2010-04-29 H.J. Lu + + PR bootstrap/43936 + * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks. + +2010-04-29 Richard Guenther + + PR bootstrap/43935 + * plugin.h (invoke_plugin_callbacks): Annotate arguments + with ATTRIBUTE_UNUSED. + +2010-04-29 H.J. Lu + + PR target/43921 + * config/i386/i386.c (get_some_local_dynamic_name): Replace + INSN_P with NONDEBUG_INSN_P. + (distance_non_agu_define): Likewise. + (distance_agu_use): Likewise. + +2010-04-29 Bernd Schmidt + + From Dominique d'Humieres + PR bootstrap/43858 + * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute + test_set. + +2010-04-29 Brian Hackett + + * plugin.h (invoke_plugin_callbacks): New inline function. + * plugin.c (flag_plugin_added): New global flag. + (add_new_plugin): Initialize above flag. + (invoke_plugin_callbacks): Rename to ... + (invoke_plugin_callbacks_full): ... this. + +2010-04-28 Jan Hubicka + + * lto-symtab.c (lto_symtab_entry_def) Add vnode. + (lto_varpool_replace_node): New. + (lto_symtab_resolve_symbols): Resolve varpool nodes. + (lto_symtab_merge_decls_1): Prefer decls with varpool node. + (lto_symtab_merge_cgraph_nodes_1): Merge varpools. + * cgraph.h (varpool_node_ptr): New type. + (varpool_node_ptr): New vector. + (varpool_node_set_def): New structure. + (varpool_node_set): New type. + (varpool_node_set): New vector. + (varpool_node_set_element_def): New structure. + (varpool_node_set_element, const_varpool_node_set_element): New types. + (varpool_node_set_iterator): New type. + (varpool_node): Add prev pointers, add used_from_other_partition, + in_other_partition. + (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add, + varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set, + varpool_get_node, varpool_remove_node): Declare. + (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p, + varpool_node_set_size): New inlines. + * cgraph.c (dump_cgraph_node): Dump asm names of aliases. + * tree-pass.h (varpool_node_set_def): Forward declare. + (ipa_opt_pass_d): Summary writting takes vnode sets too. + (ipa_write_optimization_summaries): Update prototype. + * ipa-cp.c (ipcp_write_summary): Update. + * ipa-reference.c (ipa_reference_write_summary): Update. + * lto-cgraph.c (lto_output_varpool_node): New static function. + (output_varpool): New function. + (input_varpool_node): New static function. + (input_varpool_1): New function. + (input_cgraph): Input varpool. + * ipa-pure-const.c (pure_const_write_summary): Update. + * lto-streamer-out.c (lto_output): Update, output varpool too. + (write_global_stream): Kill WPA hack. + (produce_asm_for_decls): Update. + (output_alias_pair_p): Handle variables. + (output_unreferenced_globals): Output only needed partition of varpool. + * ipa-inline.c (inline_write_summary): Update. + * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build + cgraph. + * lto-section-in.c (lto_section_name): Add varpool and jump funcs. + * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element, + varpool_node_set_new, varpool_node_set_add, + varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set, + debug_varpool_node_set): New functions. + * passes.c (rest_of_decl_compilation): when in LTO do not finalize. + (execute_one_pass): Process new decls too. + (ipa_write_summaries_2): Pass around vsets. + (ipa_write_summaries_1): Likewise. + (ipa_write_summaries): Build vset; be more selective about cgraph nodes + to add. + (ipa_write_optimization_summaries_1): Pass around vsets. + (ipa_write_optimization_summaries): Likewise. + * varpool.c (varpool_get_node): New. + (varpool_node): Update doubly linked lists. + (varpool_remove_node): New. + (dump_varpool_node): More dumping. + (varpool_enqueue_needed_node): Update doubly linked lists. + (decide_is_variable_needed): Kill ltrans hack. + (varpool_finalize_decl): Kill lto hack. + (varpool_assemble_decl): Skip decls in other partitions. + (varpool_assemble_pending_decls): Update doubly linkes lists. + (varpool_empty_needed_queue): Likewise. + (varpool_extra_name_alias): Likewise. + * lto-streamer.c (lto_get_section_name): Add vars section. + * lto-streamer.h (lto_section_type): Update. + (output_varpool, input_varpool): Declare. + +2010-04-28 Mike Stump + + * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now. + +2010-04-28 Eric Botcazou + + * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for + record or union type with RECORD_OR_UNION_TYPE_P predicate. + (lto_input_ts_type_tree_pointers): Likewise. + * lto-streamer-out.c (pack_ts_type_value_fields): Likewise. + (lto_output_ts_type_tree_pointers): Likewise. + +2010-04-28 Eric Botcazou + + Uniquization of constants at the Tree level + * tree.h (DECL_IN_CONSTANT_POOL): New macro. + (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p + bit to the end. + (tree_output_constant_def): Declare. + * gimplify.c (gimplify_init_constructor): When using block copy, first + uniquize the constant constructor on the RHS. + * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with + DECL_IN_CONSTANT_POOL flag. + * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise. + * varasm.c (make_decl_rtl): Deal with variables belonging to the global + constant pool. + (assemble_variable): Deal with symbols belonging to the tree constant + pool. + (get_constant_section): Add ALIGN parameter and simplify. + (build_constant_desc): Build a VAR_DECL and attach it to the symbol. + (assemble_constant_contents): Use the expression of the VAR_DECL. + (output_constant_def_contents): Use the alignment of the VAR_DECL. + (tree_output_constant_def): New global function. + (mark_constant): Use the expression of the VAR_DECL. + (place_block_symbol): Use the alignment of the VAR_DECL and the size of + its expression. + (output_object_block): Likewise and assemble the expression. + +2010-04-28 Eric Botcazou + + * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry, + hash_tree, eq_tree): New tree hash table. + (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it. + [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get, + lto_orig_address_remove): Reimplement. + +2010-04-28 Xinliang David Li + + PR c/42643 + * tree-ssa-uninit.c (can_skip_redundant_opnd): New function. + (compute_uninit_opnds_pos): New function. + (is_non_loop_exit_postdominating): New function. + (compute_control_dep_chain): New function. + (find_pdom): New function. + (convert_control_dep_chain_into_preds): New function. + (find_predicates): New function. + (find_control_equiv_block): New function. + (collect_phi_def_edges): New function. + (find_def_preds): New function. + (find_dom): New function. + (dump_predicates): New function. + (get_cmp_code): New function. + (is_value_included_in): New function. + (find_matching_predicate_in_rest_chains): New function. + (use_pred_not_overlap_with_undef_path_pred): New function. + (is_use_properly_guarded): New function. + (normalize_cond_1): New function. + (is_and_or_or): New function. + (normalize_cond): New function. + (is_gcond_subset_of): New function. + (is_subset_of_any): New function. + (is_or_set_subset_of): New function. + (is_and_set_subset_of): New function. + (is_norm_cond_subset_of): New function. + (is_pred_expr_subset_of): New function. + (is_pred_chain_subset_of): New function. + (is_included_in): New function. + (is_superset_of): New function. + (find_uninit_use): New function. + (warn_uninitialized_phi): New function. + (compute_possibly_undefined_names): New function. + (ssa_undefined_value_p): New function. + (execute_late_warn_uninitialized): New function. + * tree-ssa.c (ssa_undefined_value_p): Removed. + (warn_uninit): Changed to extern. + (warn_uninitialized_phi): Removed. + (warn_uninitialized_vars): Changed to extern. + (execute_late_warn_uninitialized): Removed + * tree-flow.h: Add new prototypes. + * timevar.def: Add new time variable. + * Makefile.in: Add new build file. + +2010-04-28 Uros Bizjak + + * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object + type if available. + +2010-04-28 Rainer Orth + + PR target/22224 + * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine. + +2010-04-28 Martin Jambor + + * cgraph.h (struct cgraph_node): New field indirect_calls. + (struct cgraph_indirect_call_info): New type. + (struct cgraph_edge): Removed field indirect_call. New fields + indirect_info, indirect_inlining_edge and indirect_unknown_callee. + (cgraph_create_indirect_edge): Declare. + (cgraph_make_edge_direct): Likewise. + (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge. + * ipa-prop.h (struct ipa_param_call_note): Removed. + (struct ipa_node_params): Removed field param_calls. + (ipa_create_all_structures_for_iinln): Declare. + * cgraph.c: Described indirect edges and uids in initial comment. + (cgraph_add_edge_to_call_site_hash): New function. + (cgraph_edge): Search also among the indirect edges, use + cgraph_add_edge_to_call_site_hash to add edges to the call site hash. + (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct + one, use cgraph_add_edge_to_call_site_hash to add edges to the call + site hash. + (initialize_inline_failed): Assign a reason to indirect edges. + (cgraph_create_edge_1): New function. + (cgraph_create_edge): Moved some functionality to + cgraph_create_edge_1. + (cgraph_create_indirect_edge): New function. + (cgraph_edge_remove_callee): Add an assert checking for + non-indirectness. + (cgraph_edge_remove_caller): Special-case indirect edges. + (cgraph_remove_edge): Likewise. + (cgraph_set_edge_callee): New function. + (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee. + (cgraph_make_edge_direct): New function. + (cgraph_update_edges_for_call_stmt_node): Do nothing only when also + the declaration of the call statement matches. + (cgraph_node_remove_callees): Special-case indirect edges. + (cgraph_clone_edge): Likewise. + (cgraph_clone_node): Clone also the indirect edges. + (dump_cgraph_node): Dump indirect_inlining_edge flag instead of + indirect_call, dump count of indirect_calls edges. + * ipa-prop.c (iinlining_processed_edges): New variable. + (ipa_note_param_call): Create indirect edges instead of + creating notes. New parameter node. + (ipa_analyze_call_uses): New parameter node, pass it on to + ipa_note_param_call. + (ipa_analyze_stmt_uses): Likewise. + (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses. + (print_edge_addition_message): Work on edges rather than on notes. + (update_call_notes_after_inlining): Likewise, renamed to + update_indirect_edges_after_inlining. + (ipa_create_all_structures_for_iinln): New function. + (ipa_free_node_params_substructures): Do not free notes. + (ipa_edge_duplication_hook): Propagate bits within + iinlining_processed_edges bitmap. + (ipa_node_duplication_hook): Do not duplicate notes. + (free_all_ipa_structures_after_ipa_cp): Renamed to + ipa_free_all_structures_after_ipa_cp. + (free_all_ipa_structures_after_iinln): Renamed to + ipa_free_all_structures_after_iinln. + (ipa_write_param_call_note): Removed. + (ipa_read_param_call_note): Removed. + (ipa_write_indirect_edge_info): New function. + (ipa_read_indirect_edge_info): Likewise. + (ipa_write_node_info): Do not stream notes, do stream information + in indirect edges. + (ipa_read_node_info): Likewise. + (lto_ipa_fixup_call_notes): Removed. + * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL. + * ipa-inline.c (pass_ipa_inline): Likewise. + * cgraphunit.c (verify_cgraph_node): Check also indirect edges. + * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason. + * tree-inline.c (copy_bb): Removed an unnecessary double check for + is_gimple_call. + * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect + edges. + * lto-cgraph.c (output_outgoing_cgraph_edges): New function. + (output_cgraph): Stream also indirect edges. + (lto_output_edge): Added capability to stream indirect edges. + (input_edge): Likewise. + (input_cgraph_1): Likewise. + * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements + of indirect edges. + +2010-04-28 Richard Guenther + + PR tree-optimization/43879 + PR tree-optimization/43909 + * tree-ssa-structalias.c (struct variable_info): Add + only_restrict_pointers flag. + (new_var_info): Initialize it. Increment stats.total_vars here. + (create_function_info_for): Do not increment stats.total_vars here. + (get_function_part_constraint): Fix build with C++. + (insert_into_field_list): Remove. + (push_fields_onto_fieldstack): Properly merge fields. + (create_variable_info_for): Split and simplify. + (create_variable_info_for_1): New piece. + (intra_create_variable_infos): Properly make restrict constraints + from parameters. + +2010-04-28 Richard Guenther + + PR c++/43880 + * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs. + +2010-04-27 Manuel López-Ibáñez + Jan Hubicka + + * doc/invoke.texi (-Wsuggest-attribute=const, + -Wsuggest-attribute=pure): Document. + * ipa-pure-const.c: Include toplev.h, intl.h and opts.h. + (function_always_visible_to_compiler_p, + suggest_attribute, warn_function_pure, warn_function_const): + New functions. + (check_call): Improve debug info. + (analyze_function): Do not check availability. + (add_new_function): Check availability. + (propagate): Output warnings. + (skip_function_for_local_pure_const): New function. + (local_pure_const): Use it; output warnings. + * common.opt (Wsuggest-attribute=const, + Wsuggest-attribute=pure): New. + +2010-04-27 Jakub Jelinek + + * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression + force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register + or DW_CFA_def_cfa_offset{,_sf}. + +2010-04-27 Eric Botcazou + + * tree.h: Fix truncated long macros. + +2010-04-27 Kai Tietz + + * collect2.c (TARGET_64BIT): Redefine to target's default. + * tlink.c: Likewise. + * config/i386/cygming.h (USER_LABEL_PREFIX): Define + dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES. + * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use + for underscoring __USER_LABEL_PREFIX__. + * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro. + (SUB_LINK_ENTRY32): New. + (SUB_LINK_ENTRY64): New. + (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY. + * config/i386/mingw32 (SUB_LINK_ENTRY32): New. + (SUB_LINK_ENTRY64): New. + (SUB_LINK_ENTRY): New. + (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point. + (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when + x64 target is choosen. + * config.in (USE_MINGW64_LEADING_UNDERSCORES): New. + * configure: Regenerated. + * configure.ac (leading-mingw64-underscores): Option added. + +2010-04-27 Jan Hubicka + + * doc/invoke.texi (-fipa-profile): Document. + * opts.c (decode_options): Enable ipa-profile at -O1. + * timevar.def (TV_IPA_PROFILE): Define. + * common.opt (fipa-profile): Add. + * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method + flag for clones. + (cgraph_propagate_frequency): Handle only local ones. + * tree-pass.h (pass_ipa_profile): Declare. + * ipa-profile.c (gate_profile): Use flag_ipa_profile. + (pass_ipa_profile): Use TV_IPA_PROFILE. + * ipa.c (ipa_profile): New function. + (gate_ipa_profile): Likewise. + (pass_ipa_profile): New global variable. + * passes.c (pass_ipa_profile): New. + +2010-04-27 Nathan Froyd + + * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration. + +2010-04-27 Martin Jambor + + PR middle-end/43812 + * ipa.c (dissolve_same_comdat_group_list): New function. + (function_and_variable_visibility): Call + dissolve_same_comdat_group_list when comdat group contains external or + newly local nodes. + * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group + lists are circular and that they contain only DECL_ONE_ONLY nodes. + +2010-04-27 Eric Botcazou + + * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF. + (const_hash_1) : New case. + (compare_constant) : Likewise. + : Deal with LABEL_REFs. + (copy_constant) : New case. + +2010-04-27 Jan Hubicka + + * cgraph.c (cgraph_propagate_frequency): New function. + * cgraph.h (cgraph_propagate_frequency): Declare. + * ipa-inline.c (cgraph_clone_inlined_nodes): Call + cgraph_propagate_frequency. + +2010-04-27 Jakub Jelinek + + * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes. + +2010-04-27 Bernd Schmidt + + PR target/40657 + * config/arm/arm.c (thumb1_extra_regs_pushed): New function. + (thumb1_expand_prologue, thumb1_output_function_prologue): Call it + here to determine which regs to push and how much stack to reserve. + +2010-04-27 Jie Zhang + + * doc/gimple.texi (gimple_statement_with_ops): Remove + addresses_taken field. + (gimple_statement_with_memory_ops): Likewise. + +2010-04-27 Jan Hubicka + + * tree-inline.c (eni_inlining_weights): Remove. + (estimate_num_insns): Special case more builtins. + +2010-04-27 Shujing Zhao + + PR c/32207 + * c-typeck.c (build_binary_op): Move forward check for comparison + pointer with null pointer constant and adjust the diagnostic message. + +2010-04-27 Dave Korn + + PR lto/42776 + * configure.ac (gcc_cv_as_section_has_align): Set if installed + binutils supports extended .section directive needed by LTO, or + warn if older binutils found. + (LTO_BINARY_READER): New AC_SUBST'd variable. + (LTO_USE_LIBELF): Likewise. + * gcc/config.gcc (lto_binary_reader): New target-specific configure + variable. + * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var. + (LTO_USE_LIBELF): Likewise. + * configure: Regenerate. + + * collect2.c (is_elf): Rename from this ... + (is_elf_or_coff): ... to this, and recognize and allow i386 COFF + object files in addition to ELF-formatted ones. + (scan_prog_file): Caller updated. Also allow for LTO info marker + symbol to be prefixed or not by an extra underscore. + + * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H. + * config/i386/winnt.c: Also #include lto-streamer.h + (i386_pe_asm_named_section): Specify 1-byte section alignment for + LTO named sections. + (i386_pe_asm_output_aligned_decl_common): Add comment. + (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL. + +2010-04-27 Hans-Peter Nilsson + + PR target/43889 + * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"): + Add missing earlyclobber for second alternative. + +2010-04-26 Bernd Schmidt + + * df-problems.c (df_simulate_initialize_forwards): Set, don't clear, + bits for artificial defs at the top of the block. + * fwprop.c (single_def_use_enter_block): Don't call it. + +2010-04-26 Jack Howarth + + PR 43715 + * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin + instead of "$gcc_cv_objdump -T". + Use "-undefined dynamic_lookup" on darwin. + * gcc/configure: Regenerate. + +2010-04-26 Jakub Jelinek + + PR c/43893 + * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR. + +2010-04-26 Nathan Froyd + + * c-parser.c (struct c_token): Move location field up. + * c-tree.h (struct c_typespec): Move expr_const_operands field up. + (struct c_declspecs): Convert typespec_word, storage_class, and + default_int_p into bitfields. + (struct c_declarator): Move loc field up. + +2010-04-26 Nathan Froyd + + * cfgloop.h (struct loop): Move can_be_parallel field up. + * ipa-prop.h (struct ip_node_params): Move bitfields up. + * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field + down. + (struct iv_cand): Convert pos field into a bitfield. + * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number + field up. + (struct _stmt_vec_info): Shuffle fields for better packing. + +2010-04-26 Eric Botcazou + + * varasm.c (IN_NAMED_SECTION): Remove guard. + * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to... + (IN_NAMED_SECTION_P): ...this. + (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. + +2010-04-26 Eric Botcazou + + * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables. + Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead + of shadowing it. Fix comments. + +2010-04-26 Jan Hubicka + + * cgraph.c (cgraph_create_node): Set node frequency to normal. + (cgraph_clone_node): Copy function frequency. + * cgraph.h (node_frequency): New enum + (struct cgraph_node): Add. + * final.c (rest_of_clean_state): Update. + * lto-cgraph.c (lto_output_node): Output node frequency. + (input_overwrite_node): Input node frequency. + * tre-ssa-loop-ivopts (computation_cost): Update. + * lto-streamer-out.c (output_function): Do not output function + frequency. + * predict.c (maybe_hot_frequency_p): Update and handle functions + executed once. + (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of + attribute lookup. + (probably_never_executed_bb_p, optimize_function_for_size_p): Update. + (compute_function_frequency): Set noreturn functions to be executed + once. + (choose_function_section): Update. + * lto-streamer-in.c (input_function): Do not input function frequency. + * function.c (allocate_struct_function): Do not initialize function + frequency. + * function.h (function_frequency): Remove. + (struct function): Remove function frequency. + * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove. + (try_update): Update. + * tree-inline.c (initialize_cfun): Do not update function frequency. + * passes.c (pass_init_dump_file): Update. + * i386.c (ix86_compute_frame_layout): Update. + (ix86_pad_returns): Update. + +2010-04-26 Jie Zhang + + PR tree-optimization/43833 + * tree-vrp.c (range_int_cst_p): New. + (range_int_cst_singleton_p): New. + (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case + when both operands are constants. Use range_int_cst_p in + BIT_IOR_EXPR case. + +2010-04-26 Jan Hubicka + + * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating. + +2010-04-26 Richard Guenther + + PR lto/43080 + * gimple.c (gimple_decl_printable_name): Deal gracefully + with a NULL DECL_NAME. + +2010-04-26 Richard Guenther + + PR lto/42425 + * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT + if emitting debug information and it is either a function + or a namespace decl. + +2010-04-26 Ira Rosen + + * tree-vectorizer.h (struct _stmt_vec_info): Add new field to + determine if the statement is vectorizable, and a macro to access it. + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): + Skip statements that can't be vectorized. If the analysis fails, + mark the statement as unvectorizable if vectorizing basic block. + (vect_compute_data_refs_alignment): Likewise. + (vect_verify_datarefs_alignment): Skip statements marked as + unvectorizable. Add print. + (vect_analyze_group_access): Skip statements that can't be + vectorized. If the analysis fails, mark the statement as + unvectorizable if vectorizing basic block. + (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise. + * tree-vect-stmts.c (vectorizable_store): Fix the number of + generated stmts for SLP. + (new_stmt_vec_info): Initialize the new field. + * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize + statements marked as unvectorizable. + +2010-04-25 Joseph Myers + + * c-common.c (flag_isoc1x): New. + (flag_isoc99): Update comment. + * c-common.h (flag_isoc1x): New. + (flag_isoc99): Update comment. + * c-cppbuiltin.c (builtin_define_float_constants): Also define + ___DECIMAL_DIG__. + * c-opts.c (set_std_c1x): New. + (c_common_handle_option): Handle -std=c1x and -std=gnu1x. + (set_std_c89, set_std_c99): Also set flag_isoc1x to 0. + * c.opt (-std=c1x, -std=gnu1x): New options. + * doc/cpp.texi: Mention -std=c1x. + * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document. + * doc/extend.texi: Mention -std=c1x and -std=gnu1x. + * doc/invoke.texi (-std=c1x, -std=gnu1x): Document. + * doc/standards.texi: Mention C1X. + * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, + LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, + LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN): + Define for C1X. + +2010-04-25 Uros Bizjak + + * config/i386/gmon-sol2.c (_mcleanup): Change format string + placeholder from 0x%x to %#x. + * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/i386.c (ix86_target_string): Ditto. + (output_pic_addr_const): Ditto. + (print_operand): Ditto. + +2010-04-25 Paolo Bonzini + + * combine.c (find_split_point): Add third argument. Use it + to find nested multiply-accumulate instructions. Adjust calls. + (try_combine): Adjust call to find_split_point. + +2010-04-24 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add Dodji Seketeli. + +2010-04-24 Bernd Schmidt + + PR tree-optimization/41442 + * fold-const.c (merge_truthop_with_opposite_arm): New function. + (fold_binary_loc): Call it. + +2010-04-23 Manuel López-Ibáñez + + * toplev.c (general_init): Set default for fdiagnostics-show-option. + * opts.c (common_handle_option): Allow disabling it. + * common.opt (fdiagnostics-show-option): Add Var. Enabled by default. + +2010-04-23 Eric Botcazou + + * expr.c (expand_expr_real_1) : Only use conversion + between modes if both types are integral. + +2010-04-23 Richard Guenther + + PR tree-optimization/43572 + * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses. + +2010-04-23 Richard Guenther + + PR lto/43455 + * tree-inline.c (tree_can_inline_p): Also check compatibility + of return types. + +2010-04-23 Martin Jambor + + PR tree-optimization/43846 + * tree-sra.c (struct access): New flag grp_assignment_read. + (build_accesses_from_assign): Set grp_assignment_read. + (sort_and_splice_var_accesses): Propagate grp_assignment_read. + (enum mark_read_status): New type. + (analyze_access_subtree): Propagate grp_assignment_read, create + accesses also if both direct_read and root->grp_assignment_read. + +2010-04-23 Martin Jambor + + PR middle-end/43835 + * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the + function does not have type attributes. + +2010-04-23 Richard Guenther + + PR lto/42653 + * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT + of FUNCTION_DECLs. + +2010-04-22 Laurynas Biveinis + + * sese.h (create_if_region_on_edge): Remove. + + * sese.c (create_if_region_on_edge): Make static. + + * tree-inline.c: Do not include ggc.h. + + * expr.c: Do not include ggc.h. + + * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from + dependencies. + +2010-04-22 Kaz Kojima + + PR target/43744 + * config/sh/sh.c (find_barrier): Don't emit a constant pool + in the middle of insns for casesi_worker_2. + +2010-04-22 David Edelsohn + + * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS. + +2010-04-22 Ira Rosen + + PR tree-optimization/43842 + * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle + loop unrolling in update of exit phis. Fix comment. + * tree-vect-slp.c (vect_analyze_slp): Check that there are at + least two reduction statements in the loop before starting SLP + analysis. + +2010-04-22 Nick Clifton + + * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko. + +2010-04-22 Alexander Monakov + + * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR + to simplify a + ~a. + +2010-04-22 Laurynas Biveinis + + * tree-parloops.c (loop_parallel_p): New argument + parloop_obstack. Pass it down. + (parallelize_loops): New variable parloop_obstack. Initialize it, + pass it down, free it. + + * tree-loop-linear.c (linear_transform_loops): Pass down + lambda_obstack. + + * tree-data-ref.h (lambda_compute_access_matrices): New argument + of type struct obstack *. + + * tree-data-ref.c (analyze_subscript_affine_affine): New variable + scratch_obstack. Initialize it, pass down, free it. + + * lambda.h (lambda_loop_new): Remove. + (lambda_matrix_new, lambda_matrix_inverse) + (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New + argument of type struct obstack *. + + * lambda-trans.c (lambda_trans_matrix_new): New argument + lambda_obstack. Pass it down, use obstack allocation for ret. + (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass + it down. + + * lambda-mat.c (lambda_matrix_get_column) + (lambda_matrix_project_to_null): Remove. + (lambda_matrix_new): New argument lambda_obstack. Use obstack + allocation for mat. + (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument + lambda_obstack. + + * lambda-code.c (lambda_loop_new): New function. + (lambda_lattice_new, compute_nest_using_fourier_motzkin) + (lambda_compute_auxillary_space, lambda_compute_target_space) + (lambda_loopnest_transform, gcc_loop_to_lambda_loop) + (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack. + (build_access_matrix): New argument lambda_obstack. Use obstack + allocation for am. + (lambda_compute_step_signs, lambda_compute_access_matrices): New + argument lambda_obstack. Pass it down. + +2010-04-22 Bernd Schmidt + + * optabs.h (expand_widening_mult): Declare. + +2010-04-22 Richard Guenther + + PR tree-optimization/43845 + * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly + lookup the CALL_EXPR function and arguments. + +2010-04-22 Nick Clifton + + * config/stormy16/stormy16.c + (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter. + * config/stormy16/stormy16.h: Tidy up formatting. + (DONT_USE_BUILTIN_SETJMP): Remove definition. + * config/stormy16/stormy16.c (cbranchsi4): Delete pattern. + (ineqbranchsi): Delete pattern. + * config/stormy16/stormy16-lib2-ucmpsi2.c: New file. + * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function. + * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add + stormy16-lib2-ucmpsi2.c. + +2010-04-22 Bernd Schmidt + + * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and + df_simulate_find_noclobber_defs as appropriate. Keep track of an + extra set merge_set_noclobber, and use it to relax the final test + slightly. + * df.h (df_simulate_find_noclobber_defs): Declare. + * df-problems.c (df_simulate_find_defs): Don't ignore partial or + conditional defs. + (df_simulate_find_noclobber_defs): New function. + +2010-04-22 Uros Bizjak + + * config/i386/i386.md: Use {} around multi-line preparation statements. + +2010-04-22 Laurynas Biveinis + + * c-tree.h (push_init_level, pop_init_level, set_init_index) + (process_init_element): New argument of type struct obstack *. + + * c-typeck.c (push_init_level, pop_init_level, set_designator) + (set_init_index, set_init_label, set_nonincremental_init) + (set_nonincremental_init_from_string, find_init_member) + (output_init_element, output_pending_init_elements) + (process_init_element): New argument braced_init_obstack. Pass it + down. + (push_range_stack, add_pending_init): New argument + braced_init_obstack. Use obstack allocation. + + * c-parser.c (c_parser_initelt, c_parser_initval): New argument + braced_init_obstack. Pass it down. + (c_parser_braced_init): New variables ret, braced_init_obstack. + Initialize obstack, pass it down and finally free it. + +2010-04-22 Bernd Schmidt + + PR middle-end/29274 + * tree-pass.h (pass_optimize_widening_mul): Declare. + * tree-ssa-math-opts.c (execute_optimize_widening_mul, + gate_optimize_widening_mul): New static functions. + (pass_optimize_widening_mul): New. + * expr.c (expand_expr_real_2) : New case. + : Remove support for widening multiplies. + * tree.def (WIDEN_MULT_EXPR): Tweak comment. + * cfgexpand.c (expand_debug_expr) : Use + simplify_gen_unary rather than directly building extensions. + * tree-cfg.c (verify_gimple_assign_binary): Add tests for + WIDEN_MULT_EXPR. + * expmed.c (expand_widening_mult): New function. + * passes.c (init_optimization_passes): Add pass_optimize_widening_mul. + +2010-04-21 Jan Hubicka + + * timevar.def (TV_WHOPR_WPA_FIXUP): Remove. + * lto-section-in.c (lto_section_name): Remove wpa_fixup. + * lto-wpa-fixup.c: Remove. + * Makefile.in (lto-wpa-fixup.o): Remove. + * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup. + (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA. + * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section. + +2010-04-21 Jan Hubicka + + * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary; + add write_optimization_summary, read_optimization_summary. + (ipa_write_summaries_of_cgraph_node_set): Remove. + (ipa_write_optimization_summaries): Declare. + (ipa_read_optimization_summaries): Declare. + * ipa-cp.c (pass_ipa_cp): Update. + * ipa-reference.c (pass_ipa_reference): Update. + * ipa-pure-const.c (pass_ipa_pure_const): Update. + * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish): + Update. + * ipa-inline.c (pass_ipa_inline): Update. + * ipa.c (pass_ipa_whole_program): Update. + * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update. + * passes.c (ipa_write_summaries_1): Do not test wpa. + (ipa_write_optimization_summaries_1): New. + (ipa_write_optimization_summaries): New. + (ipa_read_summaries): Do not test ltrans. + (ipa_read_optimization_summaries_1): New. + (ipa_read_optimization_summaries): New. + +2010-04-21 Jan Hubicka + + * lto-cgraph.c (lto_output_node): Do not output comdat groups + for boundary nodes. + (output_cgraph): Do not arrange comdat groups for boundary nodes. + +2010-04-21 Jakub Jelinek + + PR debug/40040 + * dwarf2out.c (add_name_and_src_coords_attributes): Add + DW_AT_{,MIPS_}linkage_name even for Fortran decls. + +2010-04-21 Jan Hubicka + + * ipa-prop.c (ipa_edge_removal_hook): Check for bounds. + +2010-04-21 Jan Hubicka + + * varpool.c (decide_is_variable_needed): Variable is always needed + during ltrans. + +2010-04-21 Jan Hubicka + + * opts.c (decode_options): Enable pure-const pass for whopr. + +2010-04-21 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Dump also assembler name. + * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice + at WPA dumping. + (cgraph_decide_inlining): Do not expect callee to be removed in all + cases. + +2010-04-21 Eric B. Weddington + + * config/avr/avr-devices.c (avr_mcu_types): Add missing comma. + +2010-04-21 Uros Bizjak + + * config/i386/i386.md (x86_shrd): Add athlon_decode and + amdfam10_decode attributes. + +2010-04-21 Jakub Jelinek + + PR middle-end/43570 + * omp-low.c (scan_sharing_clauses): Don't scan_omp_op + OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE. + (lower_copyprivate_clauses): Use private var in outer + context instead of original var. Make sure the types + are correct for VLAs. + +2010-04-21 Richard Guenther + + * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping + to non-pointer objects. + +2010-04-21 Jakub Jelinek + + * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop + last chain entry if it starts with the still current label. + (add_location_or_const_value_attribute): Check that + loc_list->first->next is NULL instead of comparing ->first with ->last. + (dwarf2out_var_location): Pass last_label resp. last_postcall_label + to add_var_loc_to_decl. + + * dwarf2out.c (output_call_frame_info): For dw_cie_version + >= 4 add also address size and segment size fields into CIE header. + + * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as + long as address size is the same as sizeof (void *) and + segment size is 0. + * unwind-dw2-fde.c (get_cie_encoding): Likewise. If + address size or segment size is unexpected, return DW_EH_PE_omit. + (classify_object_over_fdes): If get_cie_encoding returned + DW_EH_PE_omit, return -1. + (init_object): If classify_object_over_fdes returned -1, + pretend there were no FDEs at all. + +2010-04-21 Uros Bizjak + + * config/i386/i386.md (bswap2): Macroize expander from + bswap{si,di}2 using SWI48 mode iterator. + (*bswap2_movbe): Macroize insn from *bswap{si,di}_movbe using + SWI48 mode iterator. Set type attribute of bswap insn to bitmanip, + set modrm attribute of bswap insn to 0 and remove length attribute. + (*bswap2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode + iterator. Set type attribute to bitmanip, set modrm attribute to 0, + set mode attribute to and remove length attribute. + +2010-04-20 James E. Wilson + + PR rtl-optimization/43520 + * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with + zero available registers. + +2010-04-20 Kaveh R. Ghazi + + * builtins.c (fold_builtin_cproj): Fold more cases. + +2010-04-20 Kaveh R. Ghazi + + * builtins.c (build_complex_cproj, fold_builtin_cproj): New. + (fold_builtin_1): Fold builtin cproj. + * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL): + Use ATTR_CONST_NOTHROW_LIST. + +2010-04-20 Uros Bizjak + + * config/i386/i386.md (ffs2): Macroize expander from ffs_cmove + and ffsdi2 using SWI48 mode iterator. Expand SImode insn through + ffsi2_no_cmove for !TARGET_CMOVE. + (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public. + (ffssi2): Remove expander. + (*ffs_1): Macroize insn from *ffs{si,di} using SWI48 + mode iterator. + (ctz2): Ditto from ctz{si,di}2. + (clz2): Macroize expander from ctz{hi,si,di}2 using SWI248 + mode iterator. + (clz2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248 + mode iterator. + +2010-04-20 Jakub Jelinek + + * dwarf2out.c (AT_linkage_name): Define. + (clone_as_declaration): Handle DW_AT_linkage_name. + (add_name_and_src_coords_attributes): Use AT_linkage_name instead + of DW_AT_MIPS_linkage_name. + (move_linkage_attr): Likewise. + (dwarf2out_finish): Likewise. + +2010-04-20 Xinliang David Li + + PR middle-end/41952 + * fold-const.c (fold_comparison): New folding rule. + +2010-04-20 Anatoly Sokolov + + * double-int.h (double_int_setbit): Declare. + * double-int.c (double_int_setbit): New function. + * rtl.h (immed_double_int_const): Declare. + * emit-rtl.c (immed_double_int_const): New function. + * builtins.c (expand_builtin_signbit): Clean up, use double_int_* + and immed_double_int_const functions. + * optabs.c (expand_absneg_bit, expand_copysign_absneg, + expand_copysign_bit): (Ditto.). + * simplify-rtx.c (simplify_binary_operation_1): (Ditto.). + * tree-ssa-address.c (addr_for_mem_ref): (Ditto.). + * dojump.c (prefer_and_bit_test): (Ditto.). + * expr.c (convert_modes, reduce_to_bit_field_precision, + const_vector_from_tree): (Ditto.). + * expmed.c (mask_rtx, lshift_value): (Ditto.). + +2010-04-20 Jan Hubicka + + * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin. + (dump_cgraph_node): Dump new flags. + * cgraph.h (struct cgraph_node): Add flags + reachable_from_other_partition and in_other_partition. + (cgraph_can_remove_if_no_direct_calls_p): Functions used by + other partition can not be removed. + * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by + the other partition must be output; silence sanity checking on + leaking functions bodies from other paritition. + * lto-cgraph.c (reachable_from_other_partition_p): New function. + (lto_output_node): Output new flags; do not sanity check that inline + clones are output; drop lto_forced_extern_inline_p code; do not mock + visibility flags at partition boundaries. + (add_node_to): New function. + (output_cgraph): Use it to sort functions so masters appear before + clones. + (input_overwrite_node): Input new flags. + * passes.c (ipa_write_summaries): Do not call + lto_new_extern_inline_states. + * lto-section-out.c (forced_extern_inline, + lto_new_extern_inline_states lto_delete_extern_inline_states, + lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill. + * lto-streamer.h (lto_new_extern_inline_states, + * lto_delete_extern_inline_states, lto_force_functions_extern_inline, + lto_forced_extern_inline_p): Kill. + +2010-04-20 Richard Guenther + + * tree-ssa-structalias.c (do_sd_constraint): Add edges only + from vars that can have pointers. + (process_constraint): Dump useless constraints. + +2010-04-20 Richard Guenther + + * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF. + (dump_sa_points_to_info): Remove asserts. + (init_base_vars): nothing_id isn't an escape point nor does it + have pointers. + +2010-04-20 Jakub Jelinek + + * tree.h (TYPE_REF_IS_RVALUE): Define. + * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die, + should_move_die_to_comdat, prune_unused_types_walk): Handle + DW_TAG_rvalue_reference_type like DW_TAG_reference_type. + (modified_type_die, gen_reference_type_die): Emit + DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type + if TYPE_REF_IS_RVALUE and -gdwarf-4. + +2010-04-20 Andreas Krebbel + + PR target/43635 + * config/s390/s390.c (s390_emit_call): Turn direct into indirect + calls for -fpic -m31 if they have been sibcall optimized. + +2010-04-19 James E. Wilson + + * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make + ar.lc fixed and call-used. + + * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define. + +2010-04-19 Jan Hubicka + + * opts.c (decode_options): Disable whpr incompatible passes. + * lto/lto.c (lto_1_to_1_map): Skip clones. + (read_cgraph_and_symbols): Do not mark everything as needed. + (do_whole_program_analysis): Do map only after optimizing; + set proper cgraph_state; use passmanager. + +2010-04-19 DJ Delorie + + * cfgexpand.c (expand_debug_expr): Check for mismatched modes in + POINTER_PLUS_EXPR and fix them. + +2010-04-19 Eric B. Weddington + + * config/avr/avr-devices.c (avr_mcu_types): Add support for new + devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313, + attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a, + atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa, + atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa, + atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p, + atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a, + atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a, + m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1, + atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b. + * config/avr/t-avr.c (MULTILIB_MATCHES): Same. + +2010-04-19 Eric Botcazou + + * ifcvt.c (noce_try_cmove_arith): Fix long lines. + (check_cond_move_block): Likewise. + (cond_move_process_if_block): Likewise. + (noce_find_if_block): Improve formatting. + (find_if_header): Pass 0 to memset and tweak conditions. + (cond_exec_find_if_block): Fix long lines and tweak conditions. + +2010-04-19 Jakub Jelinek + + * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0 + for -gdwarf-4. + + PR middle-end/43337 + * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE + with non-local decl doesn't need chain. + +2010-04-19 Vladimir Makarov + + * ira-color.c (allocno_reload_assign): Avoid accumulating + reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS. + +2010-04-19 Martin Jambor + + * gimple.h (create_tmp_reg): Declare. + * gimplify.c (create_tmp_reg): New function. + (gimplify_return_expr): Use create_tmp_reg. + (gimplify_omp_atomic): Likewise. + (gimple_regimplify_operands): Likewise. + * tree-dfa.c (make_rename_temp): Likewise. + * tree-predcom.c (predcom_tmp_var): Likewise. + (reassociate_to_the_same_stmt): Likewise. + * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise. + (get_replaced_param_substitute): Likewise. + * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. + * tree-ssa-phiopt.c (cond_store_replacement): Likewise. + * tree-ssa-pre.c (get_representative_for): Likewise. + (create_expression_by_pieces): Likewise. + * tree-tailcall.c (adjust_return_value_with_ops): Likewise. + (create_tailcall_accumulator): Likewise. + +2010-04-19 Martin Jambor + + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update + new_stmt. + (cgraph_materialize_all_clones): Assert !need_ssa_update_p. + +2010-04-19 Richard Guenther + + PR tree-optimization/43796 + * tree-vrp.c (adjust_range_with_scev): Lookup init and step + from SCEV in the lattice. + (vrp_visit_phi_node): Dump change. + +2010-04-19 Richard Guenther + + * configure.ac: Fix quoting around elf_getshstrndx ABI check. + * configure: Re-generated. + +2010-04-19 Richard Guenther + + PR tree-optimization/43783 + * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop + constant ARRAY_REF operands two and three if possible. + +2010-04-19 Uros Bizjak + + PR target/43766 + * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends. + +2010-04-19 Jie Zhang + + PR target/43662 + * reginfo.c (reinit_regs): Set caller_save_initialized_p to false. + +2010-04-19 Ira Rosen + + PR tree-optimization/37027 + * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions + and macro to access it. + (vectorizable_reduction): Add argument. + (vect_get_slp_defs): Likewise. + * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction + statements for possible use in SLP. + (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS. + (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS. + (vect_create_epilog_for_reduction): Handle SLP. Modify documentation, + add new argument. + (vectorizable_reduction): Likewise. + * tree-vect-stmts.c (vect_get_vec_defs): Update call to + vect_get_slp_defs. + (vectorizable_type_demotion, vectorizable_type_promotion, + vectorizable_store): Likewise. + (vect_analyze_stmt): Update call to vectorizable_reduction. + (vect_transform_stmt): Likewise. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction. + (vect_build_slp_tree): Fix indentation. Check that there are no loads + from different interleaving chains in same node. + (vect_slp_rearrange_stmts): New function. + (vect_supported_load_permutation_p): Allow load permutations for + reductions. Call vect_slp_rearrange_stmts() to rearrange statements + inside SLP nodes if necessary. + (vect_analyze_slp_instance): Handle reductions. + (vect_analyze_slp): Try to build SLP instances originating from groups + of reductions. + (vect_detect_hybrid_slp_stmts): Skip reduction statements. + (vect_get_constant_vectors): Create initial vectors for reductions + according to reduction code. Add new argument. + (vect_get_slp_defs): Add new argument, pass it to + vect_get_constant_vectors. + (vect_schedule_slp_instance): Remove SLP tree root statements. + +2010-04-19 Jakub Jelinek + + * tree.h (ENUM_IS_SCOPED): Define. + * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class + for ENUM_IS_SCOPED enums. + +2010-04-18 Eric Botcazou + + * fold-const.c (fold_comparison): Use ssizetype. + * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise. + * ipa-prop.c (ipa_modify_call_arguments): Use sizetype. + * tree-loop-distribution.c (build_size_arg_loc): Likewise. + * tree-object-size.c (compute_object_sizes): Use size_type_node. + + * tree.h (initialize_sizetypes): Remove parameter. + (build_common_tree_nodes): Remove second parameter. + * stor-layout.c (initialize_sizetypes): Remove parameter. + Always create an unsigned type. + (set_sizetype): Assert that the passed type is unsigned and simplify. + * tree.c (build_common_tree_nodes): Remove second parameter. + Adjust call to initialize_sizetypes. + * c-decl.c (c_init_decl_processing): Remove second argument in call to + build_common_tree_nodes. + +2010-04-18 Matthias Klose + + * gcc.c (main): Search for liblto_plugin.so with mode R_OK. + +2010-04-18 Ira Rosen + + PR tree-optimization/43771 + * tree-vect-slp.c (vect_supported_load_permutation_p): Check that + load permutation doesn't have gaps. + +2010-04-18 Jan Hubicka + + * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New. + (sse_prologue_save_insn expander): Use new pattern. + (sse_prologue_save_insn1): New pattern and splitter. + (sse_prologue_save_insn): Update to deal also with 64bit aligned + blocks. + * i386.c (setup_incoming_varargs_64): Do not compute jump + destination here. + (ix86_gimplify_va_arg): Update alignment needed. + (ix86_local_alignment): Do not align all local arrays to 128bit. + +2010-04-17 Jan Hubicka + + * ipa-inline.c (cgraph_early_inlining): Handle flattening too. + +2010-04-17 Richard Earnshaw + + * arm.md (negdi2): Remove redundant code to force values into a + register. + +2010-04-17 Richard Earnshaw + + * arm/bpabi.S: Add EABI alignment attributes to objects. + * arm/bpabi-v6m.S: Likewise. + * arm/crti.asm: Likewise. + * arm/crtn.asm: Likewise. + * arm/lib1funcs.asm: Likewise. + * arm/libunwind.S: Likewise. + +2010-04-17 Richard Earnshaw + + * arm-protos.h (tune_params): New structure. + * arm.c (current_tune): New variable. + (arm_constant_limit): Delete. + (struct processors): Add pointer to the tune parameters. + (arm_slowmul_tune): New tuning option. + (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise. + (all_cores): Adjust to pick up the tuning model. + (arm_constant_limit): New function. + (arm_override_options): Select the appropriate tuning model. Delete + initialization of arm_const_limit. + (arm_split_constant): Use the new constant-limit model. + (arm_rtx_costs): Pick up the current tuning model. + * arm.md (is_strongarm, is_xscale): Delete. + * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly + for Xscale variant architectures. + (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM. + +2010-04-17 Ramana Radhakrishnan + + * config/arm/arm.c (arm_gen_constant): Remove unused variable + can_shift. + (arm_rtx_costs_1): Remove unused variable extra_cost. + (arm_unwind_emit_set): Use variable offset. + (thumb1_output_casesi): Remove unused variable flags. + +2010-04-16 Jeff Law + + * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos + needing assignment rather than doing a two-phase assignment. Remove + unused variable 'm'. + +2010-04-16 Jakub Jelinek + + PR bootstrap/43767 + * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL. + +2010-04-16 Doug Kwan + + * tree-ssa-reassoc.c (struct operand_entry): Add new field ID. + (next_operand_entry_id): New static variable. + (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs. + (add_to_ops_vec): Assigned unique ID to operand entry. + (struct oecount_s): New field ID. + (oecount_cmp): Stabilize qsort comparotor by using unique IDs. + (undistribute_ops_list): Assign unique IDs to oecounts. + (init_reassoc): reset next_operand_entry_id. + +2010-04-16 Doug Kwan + + * config/i386/i386.md (*jcc_bt): Fix build breakage by adding + missing left parenthesis. + +2010-04-16 Uros Bizjak + + * config/i386/i386.md (*bt): Macroize insn from *btsi and + *btdi_rex64 using SWI48 mode iterator. + (*jcc_bt): Ditto from *jcc_btsi and *jcc_btdi_rex64. + (*jcc_bt_mask): Ditto from *jcc_btsi_mask and + *jcc_btdi_mask_rex64. + +2010-04-16 Anatoly Sokolov + + * double-int.h (tree_to_double_int): Convert to macro. + * double-int.c (tree_to_double_int): Remove. + +2010-04-16 Jakub Jelinek + + PR debug/43762 + * dwarf2out.c (add_bound_info): Always call loc_list_from_tree + with want_address 2 and in case a single element list might be + possible, call it again with want_address 0. + +2010-04-12 Kaushik Phatak + + * config/h8300/h8300.c (print_operand) : Modify case 'V' and + case 'W' print operands for HI mode. + * config/h8300/h8300.h (Y0, Y2) : New constraints. + * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns + (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise. + * config/h8300/predicate.md (bit_register_indirect_operand): New. + + * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX. + + * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx, + cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in + #xx:3 and #xx:4 mode. + + * config/h8300/h8300.md (inverted load with HImode dest): Add + support for H8300SX. + + * config/h8300/predicate.md (bit_operand): Allow immediate values that + satisfy 'U' constraint. + +2010-04-16 Rainer Orth + + * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor. + * configure: Regenerate. + * config.in: Regenerate. + * doc/install.texi (Prerequisites): Document that Solaris 2 libelf + works. + +2010-04-16 Richard Guenther + + * tree.h (struct tree_decl_minimal): Move pt_uid ... + (struct tree_decl_common): ... here. + (DECL_PT_UID): Adjust. + (SET_DECL_PT_UID): Likewise. + (DECL_PT_UID_SET_P): Likewise. + +2010-04-16 Richard Guenther + + PR tree-optimization/43572 + * tree-ssa-alias.h (call_may_clobber_ref_p): Declare. + * tree-ssa-alias.c (call_may_clobber_ref_p): Export. + * tree-flow.h (is_call_clobbered): Remove. + * tree-flow-inline.h (is_call_clobbered): Likewise. + * tree-dfa.c (dump_variable): Do not dump call clobber state. + * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle. + (execute_return_slot_opt): Adjust. + * tree-tailcall.c (suitable_for_tail_opt_p): Remove + check for call clobbered vars here. + (find_tail_calls): Move tailcall verification to the + proper place. + +2010-04-16 Diego Novillo + + * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled. + +2010-04-16 Bernd Schmidt + + PR target/40603 + * config/arm/arm.md (cbranchqi4): New pattern. + * config/arm/predicates.md (const0_operand, + cbranchqi4_comparison_operator): New predicates. + +2010-04-16 Richard Guenther + + * gimple-pretty-print.c (dump_gimple_phi): Dump alias info. + (dump_gimple_stmt): Likewise. + +2010-04-16 Bernd Schmidt + + * recog.h (struct recog_data): New field is_operator. + (struct insn_operand_data): New field is_operator. + * recog.c (extract_insn): Set recog_data.is_operator. + * genoutput.c (output_operand_data): Emit code to set the + is_operator field. + * reload.c (find_reloads): Use it rather than testing for an + empty constraint string. + + PR target/41514 + * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn". + If the previous insn is a cbranchsi4_insn with the same arguments, + omit the compare instruction. + + * config/arm/arm.md (addsi3_cbranch): If destination is a high + register, inputs must be low registers and we need a low register + scratch. Handle alternative 2 like alternative 3. + +2010-04-16 Jakub Jelinek + + * alias.c (memrefs_conflict_p): If x and y are the same VALUE, + don't call get_addr on both. If one expression is a VALUE and + the other a REG, check VALUE's locs if the REG isn't among them. + +2010-04-16 Christian Bruel + + * config/sh/sh.h (sh_frame_pointer_required): New function. + * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro. + (flag_omit_frame_pointer) Set. + (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set. + (rounded_frame_size): Adjust size with outgoing_args_size. + (sh_set_return_address): Must return from stack pointer. + * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define. + (SUBTARGET_FRAME_POINTER_REQUIRED): Define. + (ACCUMULATE_OUTGOING_ARGS): Define. + * doc/invoke.texi (maccumulate-outgoing-args): Document for SH. + * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option. + +2010-04-15 Kaz Kojima + + PR target/43471 + * config/sh/sh.c (sh_legitimize_reload_address): Use + MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P. + Remove a unneeded check for offset_base. + +2010-04-15 H.J. Lu + + * configure: Regenerated. + +2010-04-15 Andreas Krebbel + + * config/s390/s390.c (s390_call_save_register_used): Switch back + to HARD_REGNO_NREGS. + +2010-04-15 Richard Guenther + + * alias.c (alias_set_subset_of): Handle alias-set zero + child properly. + +2010-04-15 Mark Shinwell + Julian Brown + + * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str + alternatives according to use of high and low regs. + * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. + * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when + optimizing for size on Thumb-2. + +2010-04-15 Thomas Schwinge + + * config.gcc : Handle softfp as for Linux. + +2010-04-15 Richard Guenther + + * tree-ssa-structalias.c (struct variable_info): Add + is_fn_info flag. + (new_var_info): Initialize it. + (dump_constraints): Support printing last added constraints. + (debug_constraints): Adjust. + (dump_constraint_graph): Likewise. + (make_heapvar_for): Check for NULL cfun. + (get_function_part_constraint): New function. + (get_fi_for_callee): Likewise. + (find_func_aliases): Properly implement IPA PTA constraints. + (process_ipa_clobber): New function. + (find_func_clobbers): Likewise. + (insert_into_field_list_sorted): Remove. + (create_function_info_for): Properly allocate vars for IPA mode. + Do not use insert_into_field_list_sorted. + (create_variable_info_for): Properly generate constraints for + global vars in IPA mode. + (dump_solution_for_var): Always dump the solution. + (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode. + (find_what_var_points_to): Adjust. + (pt_solution_set): Change. + (pt_solution_ior_into): New function. + (pt_solution_empty_p): Export. + (pt_solution_includes_global): Adjust. + (pt_solution_includes_1): Likewise. + (pt_solutions_intersect_1): Likewise. + (dump_sa_points_to_info): Check some invariants. + (solve_constraints): Move constraint dumping ... + (compute_points_to_sets): ... here. + (ipa_pta_execute): ... and here. + (compute_may_aliases): Do not re-compute points-to info + locally if IPA info is available. + (ipa_escaped_pt): New global var. + (ipa_pta_execute): Properly implement IPA PTA. + * tree-into-ssa.c (dump_decl_set): Support dumping + decls not in referenced-vars. + * tree-flow.h (struct gimple_df): Add ipa_pta flag. + * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust. + (dump_points_to_solution): Likewise. + * tree-dfa.c (dump_variable): Also dump DECL_PT_UID. + * tree-inline.c (remap_ssa_name): Copy IPA points-to solution. + (remap_gimple_stmt): Reset call clobber/use information if necessary. + (copy_decl_to_var): Copy DECL_PT_UID. + (copy_result_decl_to_var): Likewise. + * tree.c (make_node_stat): Initialize DECL_PT_UID. + (copy_node_stat): Copy it. + * tree.h (DECL_PT_UID): New macro. + (SET_DECL_PT_UID): Likewise. + (DECL_PT_UID_SET_P): Likewise. + (struct tree_decl_minimal): Add pt_uid member. + * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag. + (pt_solution_empty_p): Declare. + (pt_solution_set): Adjust. + (ipa_escaped_pt): Declare. + * cfgexpand.c (update_alias_info_with_stack_vars): Adjust. + * gimple-pretty-print.c (pp_points_to_solution): New function. + (dump_gimple_call): Dump call clobber/use information. + * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry. + * tree-pass.h (TDF_ALIAS): New dump option. + * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to. + * doc/invoke.texi (-fipa-pta): Update documentation. + +2010-04-15 Richard Guenther + + * Makefile.in (OBJS-common): Add gimple-fold.o. + (gimple-fold.o): New rule. + * tree.h (maybe_fold_offset_to_reference, + maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move + prototypes ... + * gimple.h: ... here. + * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value, + may_propagate_address_into_dereference): Move prototypes ... + * gimple.h: ... here. + * tree-ssa-ccp.c (get_symbol_constant_value, + may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref, + maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference, + maybe_fold_offset_to_address, maybe_fold_stmt_indirect, + maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen, + ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond, + fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace, + gimplify_and_update_call_from_tree): Move ... + * gimple-fold.c: ... here. New file. + (ccp_fold_builtin): Rename to ... + (gimple_fold_builtin): ... this. + * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust. + +2010-04-15 Richard Guenther + + * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode, + fit_double_type, force_fit_type_double, add_double_with_sign, + neg_double, mul_double_with_sign, lshift_double, rshift_double, + lrotate_double, rrotate_double, div_and_round_double): Move ... + * double-int.c: ... here. + * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign, + add_double, neg_double, mul_double_with_sign, mul_double, + lshift_double, rshift_double, lrotate_double, rrotate_double, + div_and_round_double): Move prototypes ... + * double-int.h: ... here. + +2010-04-15 Bernd Schmidt + + PR target/43742 + * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use + matching constraints to ensure inputs match the output. + +2010-04-15 Kaz Kojima + + PR target/43742 + * config/sh/sh.md (doloop_end_split): Remove "+r" constraint + in an input-only operand. + +2010-04-15 Anatoly Sokolov + + * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define. + (double_int_not, double_int_lshift, double_int_rshift): Declare. + (double_int_negative_p): Convert to static inline function. + * double-int.c (double_int_lshift, double_int_lshift): New functions. + (double_int_negative_p): Remove. + * tree.h (lshift_double, rshift_double): + * tree.c (build_low_bits_mask): Clean up, use double_int_* functions. + * fold-const.c (fold_convert_const_int_from_real, + fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.). + (lshift_double): Change type of arith argument to bool. + (rshift_double): Change type of arith argument to bool. Correct + comment. + * expmed.c (mask_rtx, lshift_value): (Ditto.). + +2010-04-14 Bernd Schmidt + + PR target/21803 + * ifcvt.c (cond_exec_process_if_block): Look for identical sequences + at the start and end of the then/else blocks, and omit them from the + conversion. + * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE + argument; all callers changed. Pass zero to old_insns_match_p instead. + (flow_find_head_matching_sequence): New function. + (old_insns_match_p): Check REG_EH_REGION notes for calls. + * basic-block.h (flow_find_cross_jump, + flow_find_head_matching_sequence): Declare functions. + +2010-04-14 Jason Merrill + + PR c++/36625 + * c-common.c (attribute_takes_identifier_p): New fn. + * c-common.h: Declare it. + +2010-04-14 Uros Bizjak + + * config/i386/i386.md (*divmod4): Remove stray "&&" from + splitter condition. + (*udivmod4): Ditto. + +2010-04-14 Uros Bizjak + + * config/i386/i386.md (maxmin_int): Rename code attribute from + maxminiprefix and update all users. + (maxmin_float): Ditto from maxminfprefix. + (logic): Ditto from logicprefix. + (absneg_mnemonic): Ditto from absnegprefix. + * config/i386/mmx.md: Update all users of maxminiprefix, + maxminfprefix and logicprefix for rename. + * config/i386/sse.md: Ditto. + * config/i386/sync.md (sync_): Update for + logicprefix rename. + +2010-04-14 Manuel López-Ibáñez + + PR 42966 + * diagnostics.c (diagnostic_report_diagnostic): Mark specially + warnings converted to errors. + +2010-04-14 Uros Bizjak + + * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not + used insn_type variable. + (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration + to avoid set-but-not-used warning. + +2010-04-14 Uros Bizjak + + * df-core.c (df_ref_debug): Change format string placeholder + from 0x%x to %#x. + * dwarf2asm.c (dw2_asm_output_data_raw, + dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128, + dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto. + * dwarf2out.c (output_cfi, output_cfi_directive, + dwarf2out_do_cfi_startproc, output_loc_sequence_raw, + output_cfa_loc_raw, output_die, output_ranges, output_file_names): + Ditto. + * genattrtab.c (write_test_expr, write_attr_valueq): Ditto. + * print-rtl.c (print_rtx): Ditto. + +2010-04-14 Michael Meissner + + PR middle-end/42694 + * builtins.c (expand_builtin_pow_root): New function to expand pow + calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a + series of sqrt and cbrt calls under -ffast-math. + (expand_builtin_pow): Call it. + +2010-04-14 Michael Matz + + PR tree-optimization/42963 + * tree-cfg.c (touched_switch_bbs): New static variable. + (group_case_labels_stmt): New function broken out from ... + (group_case_labels): ... here, use the above. + (start_recording_case_labels): Allocate touched_switch_bbs. + (end_recording_case_labels): Deallocate it, call + group_case_labels_stmt. + (gimple_redirect_edge_and_branch): Remember index of affected BB. + +2010-04-14 Uros Bizjak + + * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute + from insn template. + +2010-04-14 Uros Bizjak + + * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern. + +2010-04-13 Jan Hubicka + + * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting + of optimized out static functions. + (cgraph_edge_badness): Add DUMP parameter and dump reasons for the + cost computation. Also sanity check for overflows. + (update_caller_keys): Update cgraph_edge_badness call; properly + update fibheap and sanity check that it is up to date. + (add_new_edges_to_heap): Update cgraph_edge_badness. + (cgraph_decide_inlining_of_small_function): Likewise; + add sanity checking that badness in heap is up to date; + improve dumping of reason; Update badness of calls to the + offline copy of function currently inlined; dump badness + of functions not inlined because of unit growth limits. + +2010-04-13 Eric Botcazou + + PR middle-end/32628 + * c-common.c (pointer_int_sum): Disregard overflow that occured only + because of sign-extension change when converting to sizetype here... + * fold-const.c (fold_convert_const_int_from_int): ...and not here. + + * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict + the folding to constants. Remove redundant final conversion. + (fold_binary) : Do not associate if the re-association of + constants alone overflows. + (fold_binary) : Move transformation into BIT_AND_EXPR + to the end of the list. + (multiple_of_p) : New case. + +2010-04-13 Manuel López-Ibáñez + + * opt-functions.awk (opt_sanitized_name): New. + (opt_enum): New. + * optc-gen.awk: Use it + * opth-gen.awk: Use it. + +2010-04-13 Martin Jambor + + * tree-sra.c (replace_uses_with_default_def_ssa_name): New function. + (sra_modify_assign): Delete stmts loading dead data even if racc has no + children. Call replace_uses_with_default_def_ssa_name to handle + SSA_NAES on lhs. + +2010-04-13 Michael Matz + + PR middle-end/43730 + * builtins.c (expand_builtin_interclass_mathfn): Also create + a register if the predicate doesn't match. + +2010-04-13 Diego Novillo + + * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h. + * c-pch.c: Include timevar.h. + (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers. + (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers. + * ggc-common.c: Include timevar.h. + (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers. + * timevar.def (TV_PCH_SAVE): Define. + (TV_PCH_CPP_SAVE): Define. + (TV_PCH_PTR_REALLOC): Define. + (TV_PCH_PTR_SORT): Define. + (TV_PCH_RESTORE): Define. + (TV_PCH_CPP_RESTORE): Define. + +2010-04-13 Michael Matz + + * tree-ssa-reassoc.c (repropagate_negates): Merge negates also + into MINUS_EXPRs. + (can_reassociate_p): New function. + (break_up_subtract_bb, reassociate_bb): Use it. + +2010-04-13 Richard Guenther + + PR bootstrap/43737 + * builtins.c (c_readstr): Fix assert. + +2010-04-13 Uros Bizjak + + * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG + when generating cltd insn. + + (*ashl3_1): Remove special handling for register operand 2. + (*ashlsi3_1_zext): Ditto. + (*ashlhi3_1): Ditto. + (*ashlhi3_1_lea): Ditto. + (*ashlqi3_1): Ditto. + (*ashlqi3_1_lea): Ditto. + (*3_1): Ditto. + (*si3_1_zext): Ditto. + (*qi3_1_slp): Ditto. + (*3_1): Ditto. + (*si3_1_zext): Ditto. + (*qi3_1_slp): Ditto. + +2010-04-13 Richard Guenther + + * tree-ssa-structalias.c (callused_id): Remove. + (call_stmt_vars): New. + (get_call_vi): Likewise. + (lookup_call_use_vi): Likewise. + (lookup_call_clobber_vi): Likewise. + (get_call_use_vi): Likewise. + (get_call_clobber_vi): Likewise. + (make_transitive_closure_constraints): Likewise. + (handle_const_call): Adjust to do per-call call-used handling. + (handle_pure_call): Likewise. + (find_what_var_points_to): Remove general callused handling. + (init_base_vars): Likewise. + (init_alias_vars): Initialize call_stmt_vars. + (compute_points_to_sets): Process call-used and call-clobbered + vars for call statements. + (delete_points_to_sets): Free call_stmt_vars. + +2010-04-13 Richard Guenther + + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): + Only add RW dependence for dependence distance zero. + Adjust maximal vectorization factor according to dependences. + Move alignment handling ... + (vect_find_same_alignment_drs): ... here. New function. + (vect_analyze_data_ref_dependences): Adjust. + (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs. + (vect_analyze_data_refs): Adjust minimal vectorization factor + according to data references. + * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref + dependences before determining the vectorization factor. + Analyze alignment after determining the vectorization factor. + * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref + dependences before alignment. + * tree-vectorizer.h (vect_analyze_data_ref_dependences): + Adjust prototype. + (vect_analyze_data_refs): Likewise. + (MAX_VECTORIZATION_FACTOR): New define. + +2010-04-13 Duncan Sands + + * except.h (lang_eh_type_covers): Remove. + * except.c (lang_eh_type_covers): Likewise. + +2010-04-13 Andreas Krebbel + Ulrich Weigand + + * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH. + * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with + UNITS_PER_LONG where it is ABI relevant. + (s390_return_addr_rtx): Likewise. + (s390_back_chain_rtx): Likewise. + (s390_frame_area): Likewise. + (s390_frame_info): Likewise. + (s390_initial_elimination_offset): Likewise. + (save_gprs): Likewise. + (s390_emit_prologue): Likewise. + (s390_emit_epilogue): Likewise. + (s390_function_arg_advance): Likewise. + (s390_function_arg): Likewise. + (s390_va_start): Likewise. + (s390_gimplify_va_arg): Likewise. + (s390_function_profiler): Likewise. + (s390_optimize_prologue): Likewise. + (s390_rtx_costs): Likewise. + (s390_secondary_reload): Likewise. + (s390_promote_function_mode): Likewise. + (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH. + (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit + registers available. + (s390_unwind_word_mode): New function. + (s390_function_value): Split 64 bit values into register pair if + used as return value. + (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for + function call parameters. Handle parallels. + (TARGET_SCALAR_MODE_SUPPORTED_P): New macro. + (HARD_REGNO_CALL_PART_CLOBBERED): New macro. + (DWARF_CIE_DATA_ALIGNMENT): New macro. + (s390_expand_setmem): Remove unused variable src_addr. + * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to + deal with 64 bit registers. + * gcc/config/s390/s390.h: Define __zarch__ predefined macro. + Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant. + (UNITS_PER_LONG): New macro. + * libjava/include/s390-signal.h: Define extended ucontext + structure containing the upper halfs of the 64 bit registers. + +2010-04-13 Simon Baldwin + + * cfgexpand.c (gimple_expand_cfg): Clarify warning message text. + +2010-04-13 Eric Botcazou + + * gimple.c (walk_gimple_op) : Do not request a pure + rvalue on the RHS if the LHS is of a non-renamable type. + * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result. + +2010-04-13 Matthias Klose + + * gcc.c (cc1_options): Handle -iplugindir before processing + the cc1 spec. Only add -iplugindir once. + (cpp_unique_options): Add -iplugindir option if -fplugin* options + found. + * common.opt (iplugindir): Remove `Separate' property, initialize. + * plugin.c (default_plugin_dir_name): Error with missing -iplugindir + option. + * Makefile.in (check-%, check-parallel-%): Create plugin dir. + (distclean): Remove plugin dir. + * doc/invoke.texi: Document -iplugindir. + +2010-04-13 Basile Starynkevitch + + * doc/plugins.texi (Loading Plugins): Document short + -fplugin=foo option. + (Plugin API): Mention default_plugin_dir_name function. + + * gcc.c (find_file_spec_function): Add new declaration. + (static_spec_func): Use it for "find-file". + (find_file_spec_function): Add new function. + (cc1_options): Add -iplugindir option if -fplugin* options found. + + * gcc-plugin.h (default_plugin_dir_name): Added new declaration. + + * plugin.c (add_new_plugin): Updated comment, and handle short + plugin name. + (default_plugin_dir_name): Added new function. + + * common.opt (iplugindir): New option to set the plugin directory. + +2010-04-12 Uros Bizjak + + * config/i386/i386.md (any_rotate): New code iterator. + (rotate_insn): New code attribute. + (rotate): Ditto. + (SWIM124): New mode iterator. + (ti3): New expander. + (di3): Macroize expander from {rotl,rotr}di3 using + any_rotate code iterator. + (3) Macroize expander from {rotl,rotr}{qi,hi,si}3 + using any_rotate code iterator and SWIM124 mode iterator. + (ix86_rotlti3): New insn_and_split pattern. + (ix86_rotrti3): Ditto. + (ix86_rotl3_doubleword): Macroize insn_and_split pattern from + ix86_rotl{di,ti}3 patterns. + (ix86_rotr3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns. + (*3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit + and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from + *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate + code iterator and SWI mode iterator. + (*si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext. + Macroize insn from {rotl,rotr}si3_1_zext using any_rotate + code iterator. + (*qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp. + Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator. + (bswap rotatert splitter): Add splitter. + (bswap splitter): Macroize splitter using any_rotate code iterator. + Add insn predicate to split only for TARGET_USE_XCHGB or when + optimizing function for size. + +2010-04-12 Steve Ellcey + + * config/pa/pa.c (emit_move_sequence): Remove use of + deleted variable flag_argument_noalias. + +2010-04-12 Rainer Orth + + * config.gcc: Removed *-*-solaris2.7* from list of obsolete + configurations. + Add to unsupported targets list. + * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*, + sparc*-sun-solaris2.[567]* from target lists. + * configure: Regenerate. + * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7 + removal. + Remove Solaris 7 patch references. + (Specific, sparc-sun-solaris2.7): Removed. + (sparc-sun-solaris2*): Update Solaris 7 example. + (sparc64-*-solaris2*): Likewise. + +2010-04-12 Rainer Orth + + * config.build (alpha*-dec-osf4*): Remove. + * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list + of obsolete configurations. + (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0* + support. + * config/alpha/t-osf4: Renamed to ... + * config/alpha/t-osf5: ... this. + * config/alpha/osf.h: Renamed to ... + * config/alpha/osf5.h: ... this. + Merged old osf5.h contents. + Update comments. + (ASM_SPEC): Use ASM_OLDAS_SPEC directly. + (EXTRA_SPECS): Removed. + * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to + reflect removal of Tru64 UNIX V4.0/V5.0 support. + Document that. + +2010-04-12 Rainer Orth + + * doc/contrib.texi (Contributors, Rainer Orth): Update. + +2010-04-12 Kai Tietz + + PR/43702 + * config/i386/i386.c (x86_this_parameter): Handle aggregate for + __thiscall convention. + +2010-04-12 Steve Ellcey + + * config/pa/pa.c (hppa_legitimize_address): Remove unused variable + orig_base. + * config/pa/pa.md (call, call_value): Remove unused variable call_insn. + +2010-04-12 Steve Ellcey + + * function.c (assign_parms_initialize_all): Add unused attribute + to fntype. + +2010-04-12 Richard Guenther + + * gsstruct.def (GSS_CALL): New. + * gimple.def (GIMPLE_CALL): Change to GSS_CALL. + * gimple.h: Include tree-ssa-alias.h. + (struct gimple_statement_call): New. + (union gimple_statement_struct_d): Add gimple_call member. + (gimple_call_reset_alias_info): Declare. + (gimple_call_use_set): New function. + (gimple_call_clobber_set): Likewise. + * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h. + * gimple.c (gimple_call_reset_alias_info): New function. + (gimple_build_call_1): Call it. + * lto-streamer-in.c (input_gimple_stmt): Likewise. + * tree-inline.c (remap_gimple_stmt): Likewise. + (expand_call_inline): Remove callused handling. + * cfgexpand.c (update_alias_info_with_stack_vars): Likewise. + * tree-dfa.c (dump_variable): Likewise. + * tree-parloops.c (parallelize_loops): Likewise. + * tree-ssa.c (init_tree_ssa): Likewise. + (delete_tree_ssa): Likewise. + * tree-flow-inline.h (is_call_used): Remove. + * tree-flow.h (struct gimple_df): Remove callused member. + * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate. + * tree-ssa-alias.c (dump_alias_info): Remove callused handling. + (ref_maybe_used_by_call_p_1): Simplify. + (call_may_clobber_ref_p_1): Likewise. + * tree-ssa-structalias.c (compute_points_to_sets): Set + the call stmt used and clobbered sets. + * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate. + (find_tail_calls): Verify the tail call. + +2010-04-12 Richard Guenther + + * ipa.c (cgraph_postorder): Adjust postorder to guarantee + single-iteration always-inline inlining. + * ipa-inline.c (cgraph_mark_inline): Do not return anything. + (cgraph_decide_inlining): Do not handle always-inline specially. + (try_inline): Remove always-inline cycle detection special case. + Do not recurse on always-inlines. + (cgraph_early_inlining): Do not iterate if not optimizing. + (cgraph_gate_early_inlining): remove. + (pass_early_inline): Run unconditionally. + (gate_cgraph_decide_inlining): New function. + (pass_ipa_inline): Use it. Do not run the IPA inliner if + not inlining or optimizing. + (cgraph_decide_inlining_of_small_functions): Also consider + always-inline functions. + (cgraph_default_inline_p): Return true for nodes which should + disregard inline limits. + (estimate_function_body_sizes): Assume zero size and time for + nodes which are marked as disregarding inline limits. + (cgraph_decide_recursive_inlining): Do not perform recursive + inlining on always-inline nodes. + +2010-04-12 Jakub Jelinek + + PR bootstrap/43699 + * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even + for exprs satisfying handled_component_p. + +2010-04-12 Eric Botcazou + + * expr.c (categorize_ctor_elements_1): Properly count sub-elements of + non-constant aggregate elements. + + * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this + is a real initialization. + +2010-04-12 Shujing Zhao + + PR c/36774 + * c-decl.c (start_function): Move forward check for nested function. + +2010-04-11 Kaz Kojima + + * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare. + * config/sh/sh.c: Include reload.h. + (sh_legitimize_reload_address): New. + * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use + sh_legitimize_reload_address. + +2010-04-11 Kaushik Phatak + + * config/sh/sh.md (*movqi_pop): New insn pattern. + * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate. + +2010-04-11 Uros Bizjak + + * config/i386/i386.md (any_shiftrt): New code iterator. + (shiftrt_insn): New code attribute. + (shiftrt): Ditto. + (3): Macroize expander from {ashr,lshr}3 + using any_shiftrt code iterator. + (*3_doubleword): Macroize insn_and_split from + *{ashr,lshr}3_doubleword using any_shiftrt code iterator. + (*3_doubleword peephole2): Macroize peephole2 + pattern from corresponding peephole2 patterns. + (*3_1): Macroize insn from *{ashr,lshr}3_1 + using any_shiftrt code iterator. + (*si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext. + (*qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp. + (*3_cmp): Ditto from *{ashr,lshr}3_cmp. + (*3_cmp_zext): Ditto from + *{ashr,lshr}3_cmp_zext. + (*3_cconly): Ditto from *{ashr,lshr}3_cconly. + +2010-04-11 Uros Bizjak + + * config/i386/i386.md (*ashr3_cconly): Fix wrong mode of + scratch register. + (*lshr3_cconly): Ditto. + +2010-04-11 Uros Bizjak + + * config/i386/i386.md (lshr3): Macroize expander from + lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator. + (*lshr3_doubleword): New insn_and_split_pattern. Macroize + pattern from *lshr{di,ti}3_1 and corresponding splitters using + DWI mode iterator. + (*lshr3_doubleword peephole2): Macroize peephole2 pattern + from corresponding peephole2 patterns. + (*lshr3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and + *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1 + and *lshrdi3_1_rex64 using SWI mode iterator. + (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext. + (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp. + (*lshr3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and + *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp + and *lshrdi3_cmp_rex64 using SWI mode iterator. + (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext. + (*lshr3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and + *lshrdi3_one_bit_cconly_rex64. Macroize insn from + *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using + SWI mode iterator. + +2010-04-10 Uros Bizjak + + * config/i386/i386.md (ashr3): Macroize expander from + ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator. + (*ashr3_doubleword): New insn_and_split_pattern. Macroize + pattern from *ashr{di,ti}3_1 and corresponding splitters using + DWI mode iterator. + (*ashr3_doubleword peephole2): Macroize peephole2 pattern + from corresponding peephole2 patterns. + (ashrdi3_cvt): Rename from ashrdi3_63_rex64. + (ashrsi3_cvt): Rename from ashrsi3_31. + (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext. + (x86_shift_adj_3): Macroize expander from x86_shift_adj_3 + and x86_64_shift_adj_3 using SWI48 mode iterator. + (*ashr3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and + *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1 + and *ashrdi3_1_rex64 using SWI mode iterator. + (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext. + (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp. + (*ashr3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and + *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp + and *ashrdi3_cmp_rex64 using SWI mode iterator. + (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext. + (*ashr3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and + *ashrdi3_one_bit_cconly_rex64. Macroize insn from + *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using + SWI mode iterator. + (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns. + * config/i386/i386.c (ix86_split_ashr): Update for renamed + x86_shift_adj_3 expanders. + +2010-04-10 Wei Guozhi + + PR target/42601 + * config/arm/arm.c (arm_pic_static_addr): New function. + (legitimize_pic_address): Call arm_pic_static_addr when it detects + a static symbol. + (arm_output_addr_const_extra): Output expression for new pattern. + * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol. + +2010-04-10 Bernd Schmidt + + * ira-costs.c (record_reg_classes): Ignore alternatives that are + not enabled. + + * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H). + * web.c: Include "insn-config.h" and "recog.h". + (union_match_dups): New function. + (web_main): Call it. + (union_defs): Don't try to recognize match_dups. + + * reload1.c (eliminate_regs_in_insn): Don't restore an operand + if doing so would replace the entire pattern. + +2010-04-09 Uros Bizjak + + PR target/43707 + PR target/43709 + * config/i386/i386.md (*ashl3_doubleword): Split to insn + and splitter pattern. Change splitter operand 1 predicate to + nonmemory_operand. + +2010-04-09 Martin Jambor + + * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two + lattices are addresses of CONST_DECLs with the same initial value. + (ipcp_print_all_lattices): Print values of CONST_DECLs. + * ipa-prop.c (ipa_print_node_jump_functions): Likewise. + +2010-04-09 Eric Botcazou + Bernd Schmidt + + * loop-invariant.c (replace_uses): New static function. + (move_invariant_reg): Use it to ensure we can replace the uses. + +2010-04-09 Hariharan Sandanagobalane + + * config/picochip/picochip.c (picochip_rtx_costs): Use correct + function template. + (picochip_override_options): Enable section anchors only above -O1. + (picochip_reorg): Fixed a couple of build warnings. + +2010-04-09 Rainer Orth + + * configure.ac (plugin -rdynamic test): Log result. + * configure: Regenerate. + * config/sol2.h (LINK_SPEC): Handle -rdynamic. + (RDYNAMIC_SPEC): Define. + * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine. + +2010-04-09 Rainer Orth + + * configure.ac: Determine Sun ld version numbers. + (comdat_group): Restrict GNU ld version checks to gld. + (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688. + (enable_comdat): Support --enable-comdat. + * configure: Regenerate. + * doc/install.texi (Configuration): Document --enable-comdat. + +2010-04-09 Rainer Orth + + * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ... + * config/sol2-gld.h: ... here. + * config.gcc (sparc*-*-solaris2*): Reflect this. + (i[34567]86-*-solaris2*): Use it. + +2010-04-09 Steve Ellcey + + * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable + setup_clocks_p. + (final_emit_insn_group_barriers): Remove unused variable prev_insn. + +2010-04-09 Manuel López-Ibáñez + + PR 42965 + * diagnostic.c (diagnostic_initialize): Initialize + some_warnings_are_errors. + (diagnostic_finish): New. + (diagnostic_action_after_output): Call it before exiting. + (diagnostic_report_diagnostic): Do not print message here. Set + some_warnings_are_errors. + * diagnostic.h (diagnostic_context): Delete + issue_warnings_are_errors_message. Add some_warnings_are_errors. + (diagnostic_finish): Declare. + * toplev.c (toplev_main): Call it before exit. + +2010-04-09 Jason Merrill + + PR c++/42623 + * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node + for incomplete type. + + PR c++/41788 + * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED + based on a warning flag. + +2010-04-09 Richard Guenther + + * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS. + +2010-04-09 Iain Sandoe + + PR bootstrap/43684 + * varasm.c (default_assemble_visibility): Wrap vars that are + set, but unused, by targets without GAS. + * config/rs6000/rs6000.c (paired_emit_vector_compare): + Remove set, but unused, vars. + (rs6000_legitimize_tls_address): Likewise. + (altivec_expand_dst_builtin): Likewise. + * config/darwin.c (machopic_classify_symbol): Likewise. + (machopic_indirection_name): Likewise. + +2010-04-09 Uros Bizjak + + * config/i386/i386.md (DWI): New mode iterator. + (S): New mode attribute. + (shift_operand): Ditto. + (shift_immediate_operand): Ditto. + (ashl_input_operand): Ditto. + (ashl3): Macroize expander from ashl{qi,hi,si,di,ti}3_1 + using SDWIM mode iterator. + (*ashl3_doubleword): New insn_and_split_pattern. Macroize + pattern from *ashl{di,ti}3_1 and corresponding splitters using + DWI mode iterator. + (*ashl3_doubleword peephole2): Macroize peephole2 pattern + from corresponding peephole2 patterns. + (x86_shift_adj_1): Macroize expander from x86_shift_adj_1 + and x86_64_shift_adj_1 using SWI48 mode iterator. + (x86_shift_adj_2): Ditto. + (*ashldi3_1_rex64): Split TYPE_LEA pattern. + (*ashl3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64 + using SWI48 mode iterator. + (*ashl3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and + *ashldi3_cmp_rex64 using SWI mode iterator. + (*ashl3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and + *ashldi3_cconly_rex64 using SWI mode iterator. + * config/i386/i386.c (ix86_split_ashl): Update for renamed + x86_shift_adj_{1,2}. + (ix86_split_ashr): Ditto. + (ix86_split_lshr): Ditto. + +2010-04-09 Richard Guenther + + * target.h (builtin_conversion): Pass in input and output types. + * targhooks.c (default_builtin_vectorized_conversion): Adjust. + * targhooks.h (default_builtin_vectorized_conversion): Likewise. + * tree-vect-stmts.c (vectorizable_conversion): Adjust. + * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust. + + * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust. + Handle AVX modes. + * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust. + +2010-04-09 Richard Guenther + + PR target/43152 + * config/i386/sse.md (vcond): Handle AVX modes as well. + +2010-04-09 Richard Guenther + + * tree-vectorizer.h (struct _stmt_vec_info): Document + that vectype is the type of the LHS. + (supportable_widening_operation, supportable_narrowing_operation): + Get both input and output vector types as arguments. + (vect_is_simple_use_1): Declare. + (get_same_sized_vectype): Likewise. + * tree-vect-loop.c (vect_determine_vectorization_factor): + Set STMT_VINFO_VECTYPE to the vector type of the def. + (vectorizable_reduction): Adjust. + * tree-vect-patterns.c (vect_recog_widen_mult_pattern): + Adjust. Specify the output vector type. + (vect_pattern_recog_1): Adjust. + * tree-vect-stmts.c (get_same_sized_vectype): New function. + (vectorizable_call): Adjust. + (vectorizable_conversion): Likewise. + (vectorizable_operation): Likewise. + (vectorizable_type_demotion): Likewise. + (vectorizable_type_promotion): Likewise. + (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of + the def. + (vect_is_simple_use_1): New function. + (supportable_widening_operation): Get both input and output + vector types. + (supportable_narrowing_operation): Likewise. + * tree-vect-slp.c (vect_schedule_slp_instance): Adjust. + +2010-04-09 Kai Tietz + + * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add + __thiscall and _thiscall as predefined macros. + * config/i386/i386.c (ix86_handle_cconv_attribute): Add + thiscall attribute handling. + (ix86_comp_type_attributes): Likewise. + (ix86_function_regparm): Likewise. + (ix86_return_pops_args): Likewise. + (init_cumulative_args): Likewise. + (find_drap_reg): Likewise. + (ix86_static_chain): Likewise. + (x86_this_parameter): Likewise. + (x86_output_mi_thunk): Likewise. + (ix86_attribute_table): Add description for thiscall attribute. + * config/i386/i386.h (ix86_args): Adjust comment for member fastcall. + * doc/extend.texi: Add documentation for thiscall. + +2010-04-09 Manuel López-Ibáñez + + PR c++/28584 + * c.opt (Wint-to-pointer-cast): Available in C++. + * doc/invoke.texi (Wint-to-pointer-cast): Available in C++. + +2010-04-08 Eric Botcazou + + * tree.h (TREE_ADDRESSABLE): Document its effect for function types. + * calls.c (expand_call): Pass the function type to aggregate_value_p. + * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on + the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the + function type instead. Reorder and simplify checks. + + * gimplify.c (gimplify_modify_expr_rhs) : New case. + +2010-04-08 Jing Yu + Zdenek Dvorak + + PR tree-optimization/42720 + * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time + loop unswitch conditions here from ... + (tree_unswitch_single_loop): ... here. + +2010-04-08 Sebastian Pop + + * tree-if-conv.c: Fix comments and simplify logic. + +2010-04-08 Sebastian Pop + + * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter. + (tree_if_conversion): Same. Update call to if_convertible_loop_p. + (main_tree_if_conversion): Update call to tree_if_conversion. + +2010-04-08 Manuel López-Ibáñez + + PR 42485 + * doc/invoke.texi (-b,-V): Delete. + * doc/tm.texi: Do not mention -b. + * gcc.c (display_help): Delete -b and -V. + (process_command): Delete -b and -V. + * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V. + +2010-04-08 Christian Borntraeger + Wolfgang Gellerich + + Implement target hook for loop unrolling + * target.h (loop_unroll_adjust): Add a new target hook function. + * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise. + * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it. + * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it. + (s390_loop_unroll_adjust): Implement the new target hook for s390. + * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll + target hook. + (decide_unroll_stupid): Likewise. + +2010-04-08 Rainer Orth + + PR target/43643 + * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx. + +2010-04-08 Rainer Orth + + * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar. + (Specific, *-*-solaris2*): Likewise. + Don't prefer Sun as over GNU as. + +2010-04-08 Wolfgang Gellerich + + * config/s390/s390.c (override_options): Adjust the z10 defaults + for max-unroll-times, max-completely-peeled-insns + and max-completely-peel-times. + +2010-04-08 Andreas Krebbel + + * config/s390/s390.c (s390_expand_movmem): Issue prefetch + instructions for z10. + (s390_expand_setmem): Likewise. + (s390_expand_cmpmem): Likewise. + +2010-04-08 Richard Guenther + + PR tree-optimization/43679 + * tree-ssa-pre.c (eliminate): Only propagate copies. + +2010-04-08 Jakub Jelinek + + PR bootstrap/43681 + * expr.c (block_move_libcall_safe_for_call_parm): Avoid + set but not used variable warning. + +2010-04-08 Wei Guozhi + + PR target/41653 + * config/arm/arm.c (thumb1_size_rtx_costs): New function. + (arm_size_rtx_costs): Call the new function when optimized for size. + +2010-04-08 Jakub Jelinek + + PR debug/43670 + * cfgexpand.c (expand_debug_expr): If for non-NULL offset + op0 is not a MEM, just return NULL instead of assertion + failure. + (discover_nonconstant_array_refs): Don't walk debug stmts. + +2010-04-08 Doug Kwan + + * configure.ac: Recognize gold and do not use its version number + to test ld features. + * configure: Regenerate. + +2010-04-08 Maxim Kuvyrkov + + PR middle-end/40815 + * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates. + (negate_value): Move code to push elements to broken_up_substracts ... + (eliminate_plus_minus_pair): ... here. Push operands that have no + negative pair to plus_negates. + (repropagate_negates, init_reassoc, fini_reassoc): Update. + +2010-04-07 Ralf Wildenhues + + * doc/install.texi (Configuration): Move description of + --enable-lto, --with-libelf*, --enable-gold from Java section to + general section. + + * doc/generic.texi (Working with declarations) + (Function Properties, C and C++ Trees): Fix typos. + * doc/sourcebuild.texi (Top Level): Likewise. + +2010-04-07 Jakub Jelinek + + PR c/18624 + * tree.h (DECL_READ_P): Define. + (struct tree_decl_common): Add decl_read_flag. + * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue + a set but not used warning. + (merge_decls): Merge DECL_READ_P flag. + (finish_decl, build_compound_literal): Set DECL_READ_P flag. + (finish_function): Issue -Wunused-but-set-parameter diagnostics. + * c-common.c (handle_used_attribute, handle_unused_attribute): + Likewise. + * c-tree.h (default_function_array_read_conversion, mark_exp_read): + New prototypes. + * c-typeck.c (default_function_array_read_conversion, mark_exp_read): + New functions. + (default_conversion, c_process_expr_stmt): Call mark_exp_read. + * c-parser.c (c_parser_initializer, c_parser_expr_no_commas, + c_parser_binary_expression, c_parser_cast_expression, + c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop): + Call default_function_array_read_conversion instead of + default_function_array_conversion where needed. + (c_parser_unary_expression, c_parser_conditional_expression, + c_parser_postfix_expression_after_primary, c_parser_initelt): + Likewise. Call mark_exp_read where needed. + (c_parser_statement_after_labels, c_parser_asm_operands, + c_parser_typeof_specifier, c_parser_sizeof_expression, + c_parser_alignof_expression, c_parser_initval): Call mark_exp_read + where needed. + * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter): + New. + * toplev.c (warn_unused_but_set_variable): Default to warn_unused. + (warn_unused_but_set_parameter): Default to warn_unused + && extra_warnings. + * doc/invoke.texi: Document -Wunused-but-set-variable and + -Wunused-but-set-parameter. + + * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not + used count variable. + * genemit.c (gen_expand, gen_split): Avoid set but not used warnings + when operandN variables aren't used in the body of the expander + or splitter. + * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC, + FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings. + * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise. + * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT, + FOR_EACH_IMM_USE_ON_STMT): Likewise. + * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise. + * tree.c (PROCESS_ARG): Likewise. + +2010-04-07 Simon Baldwin + + * diagnostic.h (diagnostic_override_option_index): New macro to + set a diagnostic's option_index. + * c-tree.h (c_cpp_error): Add warning reason argument. + * opts.c (_warning_as_error_callback): New. + (register_warning_as_error_callback): Store callback for + warnings enabled via enable_warning_as_error. + (enable_warning_as_error): Call callback, minor code tidy. + * opts.h (register_warning_as_error_callback): Declare. + * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in + response to -Werror=. + (c_common_init_options): Register warning_as_error_callback in opts.c. + * common.opt: Add -Wno-cpp option. + * c-common.c (struct reason_option_codes_t): Map cpp warning + reason codes to gcc option indexes. + * (c_option_controlling_cpp_error): New function, lookup the gcc + option index for a cpp warning reason code. + * (c_cpp_error): Add warning reason argument, call + c_option_controlling_cpp_error for diagnostic_override_option_index. + * doc/invoke.texi: Document -Wno-cpp. + +2010-04-07 Richard Guenther + + * ipa-reference.c (mark_load): Use get_base_address. + (mark_store): Likewise. + + * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid + inserting GIMPLE_NOPs into the IL. + * tree-ssa-structalias.c (get_constraint_for_component_ref): + Explicitly strip handled components and indirect references. + + * fold-const.c (fold_unary_loc): Do not strip qualifiers when + folding address expressions. + * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address. + * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use + operand_equal_p to compare decls. + (ptr_deref_may_alias_decl_p): Likewise. + * tree-ssa-operands.c (get_asm_expr_operands): Simplify + * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): + Handle reversed comparison ops. + * tree-sra.c (asm_visit_addr): Use get_base_address. + * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address. + * ipa-reference.c (mark_address): Use get_base_address. + +2010-04-07 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_addr_expr): + Propagate constants everywhere. + +2010-04-07 Jakub Jelinek + + PR debug/43516 + * tree.c (MAX_INT_CACHED_PREC): Define. + (nonstandard_integer_type_cache): New array. + (build_nonstandard_integer_type): Cache results for precision + <= MAX_INT_CACHED_PREC. + +2010-04-07 Richard Guenther + + * doc/invoke.texi (-fargument-alias, -fargument-noalias, + -fargument-noalias-global, -fargument-noalias-anything): Remove. + * common.opt: Likewise. + * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment. + * alias.c (base_alias_check): Remove flag_argument_noalias handling. + (nonoverlapping_memrefs_p): Likewise. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. + * opts.c (common_handle_option): Handle OPT_fargument_alias, + OPT_fargument_noalias, OPT_fargument_noalias_anything and + OPT_fargument_noalias_global for backward compatibility. + +2010-04-07 Richard Guenther + + PR tree-optimization/43270 + * tree-vrp.c (check_array_ref): Fix flexible array member detection. + * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare. + * tree-ssa-pre.c (phi_translate_1): Adjust. + (fully_constant_expression): Split out vn_reference handling to ... + * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here. + Fold reads from constant strings. + (vn_reference_lookup): Handle fully constant references. + (vn_reference_lookup_pieces): Likewise. + * Makefile.in (expmed.o-warn): Add -Wno-error. + +2010-04-07 Martin Jambor + + * tree-sra.c (find_param_candidates): Allow scalar va_list types. + +2010-04-07 Iain Sandoe + + PR driver/41594 + * gcc.c: Add -static-libstdc++ to list of recognized options. + +2010-04-07 Rainer Orth + + * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic. + +2010-04-07 Richard Guenther + + PR middle-end/42617 + * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer + bases build simple mem attributes to retain points-to information. + +2010-04-07 Richard Guenther + + PR middle-end/42617 + * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE + preserve points-to related information. + +2010-04-07 Richard Guenther + + PR middle-end/42617 + * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not + discard plain indirect references. + * fold-const.c (operand_equal_p): Guard against NULL_TREE type. + * tree.c (tree_nop_conversion): Likewise. + +2010-04-07 Dodji Seketeli + + PR debug/43628 + * dwarf2out.c (modified_type_die): Ignore artificial typedefs. + +2010-04-06 Kai Tietz + + * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore + calling convention attributes on METHOD_TYPEs for w64 ABI, too. + +2010-04-07 Sebastian Pop + + * tree-if-conv.c: Fix indentation and comments. + +2010-04-07 Sebastian Pop + + * tree-if-conv.c: Sort static functions in topological order. + +2010-04-07 Sebastian Pop + + * tree-if-conv.c: Fix indentation and comments. + +2010-04-06 Sebastian Pop + + PR middle-end/43519 + * graphite-clast-to-gimple.c (max_signed_precision_type): Use + lang_hooks.types.type_for_size instead of + build_nonstandard_integer_type. + When converting an unsigned type to signed, double its precision. + (gcc_type_for_interval): Use lang_hooks.types.type_for_size. + (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type. + (graphite_create_new_loop_guard): When ub + 1 wraps around, + use lb <= ub. + +2010-04-06 Sebastian Pop + + PR middle-end/43519 + * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use + POINTER_PLUS_EXPR for pointer types. + +2010-04-06 Sebastian Pop + + PR middle-end/43519 + * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h. + * graphite-clast-to-gimple.c: Include langhooks.h. + (max_signed_precision_type): New. + (max_precision_type): Takes two types as arguments. + (precision_for_value): New. + (precision_for_interval): New. + (gcc_type_for_interval): New. + (gcc_type_for_value): New. + (gcc_type_for_clast_term): New. + (gcc_type_for_clast_red): New. + (gcc_type_for_clast_bin): New. + (gcc_type_for_clast_expr): Split up into several functions. + (gcc_type_for_clast_eq): Rewritten. + (compute_bounds_for_level): New. + (compute_type_for_level_1): New. + (compute_type_for_level): New. + (gcc_type_for_cloog_iv): Removed. + (gcc_type_for_iv_of_clast_loop): Rewritten. + (graphite_create_new_loop): Compute the lower and upper bound types + with gcc_type_for_clast_expr. + (graphite_create_new_loop_guard): Same. + (find_cloog_iv_in_expr): Removed. + (compute_cloog_iv_types_1): Removed. + (compute_cloog_iv_types): Removed. + (gloog): Do not call compute_cloog_iv_types. + * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize + GBB_CLOOG_IV_TYPES. + (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES. + * sese.h (struct gimple_bb): Removed field cloog_iv_types. + (GBB_CLOOG_IV_TYPES): Removed. + +2010-04-06 Sebastian Pop + + * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that + gimple_phi_num_args of the loop close SSA phi node is equal to 1. + (detect_commutative_reduction): Same. + +2010-04-06 Sebastian Pop + + * graphite-clast-to-gimple.c (graphite_verify): Remove redundant + call to verify_ssa. Invoke verify_loop_closed_ssa with an extra + argument. + * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same. + * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same. + (rewrite_commutative_reductions_out_of_ssa): Same. + * passes.c (execute_function_todo): Call verify_ssa for every pass + in the LNO. Invoke verify_loop_closed_ssa with an extra argument. + * tree-flow.h (verify_loop_closed_ssa): Update declaration. + * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa + with an extra argument. + * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call + verify_ssa only when the extra argument is true. + (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa + with an extra argument. + (tree_transform_and_unroll_loop): Same. + +2010-04-06 Sebastian Pop + + * passes.c (execute_function_todo): Call verify_loop_closed_ssa + for all the passes of the LNO having LOOP_CLOSED_SSA. + * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops. + * tree-loop-distribution.c (pass_loop_distribution): Same. + * tree-pass.h (TODO_verify_loops): Removed. + * tree-ssa-loop.c (pass_tree_loop_init): Same. + (pass_lim): Same. + (pass_tree_unswitch): Same. + (pass_predcom): Same. + (pass_vectorize): Same. + (pass_linear_transform): Same. + (pass_graphite_transforms): Same. + (pass_iv_canon): Same. + (pass_complete_unroll): Same. + (pass_complete_unrolli): Same. + (pass_parallelize_loops): Same. + (pass_loop_prefetch): Same. + (pass_iv_optimize): Same. + +2010-04-06 Changpeng Fang + + PR middle-end/32824 + * passes.c (init_optimization_passes): Move pass_lim before + pass_copy_prop and pass_dce_loop. + +2010-04-06 Jakub Jelinek + + PR target/43667 + * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP + instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*. + (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of + MULTI_* defines for 4 argument vpermil2p* builtins. + +2010-04-06 Uros Bizjak + + * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare. + * config/i386/i386.c (x86_maybe_negate_const_int): New. + (x86_output_mi_thunk): Use x86_maybe_negate_const_int. + * config/i386/i386.md (*add_1, *addsi_1_zext, *addhi_1, + *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add_2, + *addsi_2_zext, *addhi_2, *addqi_2, *add_3, *addsi_3_zext, + *addhi_3, *addqi_3,*add_5, *addhi_5, *addqi_5): + Use x86_maybe_negate_const_int to output insn mnemonic. + (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow + check from instruction predicate. Update comments. + * config/i386/sync.md (sync_add): Use + x86_maybe_negate_const_int to output insn mnemonic. + +2010-04-06 Jan Hubicka + + PR tree-optimization/42906 + * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add + IGNORE_SELF argument. Set visited_control_parents for fully + processed BBs. + (find_obviously_necessary_stmts): Update call of + mark_control_dependent_edges_necessary. + (propagate_necessity): Likewise. Handle PHI edges more curefully. + +2010-04-06 Uros Bizjak + + * config/i386/i386.md: Remove comment about 'e' and 'E' + operand modifier. + +2010-04-06 Richard Guenther + + PR tree-optimization/43627 + * tree-vrp.c (extract_range_from_unary_expr): Widenings + of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type, + not varying. + +2010-04-06 Jakub Jelinek + + * BASE-VER: Change to 4.6.0. + + PR target/43638 + * config/i386/i386.c (print_operand): Remove 'e' and 'E' code + handling. + +2010-04-06 Richard Guenther + + PR middle-end/43661 + * fold-const.c (fold_comparison): Handle X * 0 CMP 0. + +2010-04-05 Ralf Wildenhues + + * doc/invoke.texi (Optimize Options): Document that LTO + won't remove object access purely due to incompatible + declarations. + +2010-04-04 Matthias Klose + + * graphite-sese-to-poly.c (translate_scalar_reduction_to_array): + Initialize variable. + +2010-04-03 Richard Guenther + + PR middle-end/42509 + * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses + require a non-NULL MEM_OFFSET. + +2010-04-02 Steven Bosscher + + * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c, + basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h, + collect2.h, config/alpha/alpha.c, config/alpha/alpha.md, + config/alpha/predicates.md, config/arm/arm.md, + config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml, + config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c, + config/darwin9.h, config/darwin.c, config/darwin.h, + config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h, + config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c, + config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c, + config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c, + config/mips/mips.md, config/mn10300/mn10300.c, + config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md, + config/rs6000/aix.h, config/rs6000/dfp.md, + config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c, + config/rs6000/vector.md, config/rtems.h, config/rx/rx.md, + config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h, + config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md, + config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c, + config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in, + c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c, + diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi, + doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi, + doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c, + fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h, + gensupport.c, gimple.h, gimple-iterator.c, graphite.c, + graphite-clast-to-gimple.c, graphite-clast-to-gimple.h, + graphite-dependences.c, graphite-poly.c, graphite-poly.h, + graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c, + graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c, + intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h, + ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c, + ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c, + loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c, + objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk, + opt-functions.awk, opth-gen.awk, params.def, passes.c, + postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h, + rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h, + store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c, + tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h, + tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c, + tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c, + tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c, + tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c, + tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c, + tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c, + tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c, + tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c, + tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c, + unwind-dw2-fde-darwin.c, varpool.c: Update copyright years. + +2010-04-02 Ralf Wildenhues + + PR other/43620 + * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1. + * aclocal.m4: Regenerate. + +2010-04-02 Richard Guenther + + PR tree-optimization/43629 + * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands + if we have seen a constant value. + +2010-04-02 Joseph Myers + + * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'. + +2010-04-02 Richard Earnshaw + + PR target/43469 + * arm.c (legitimize_tls_address): Adjust call to + gen_tls_load_dot_plus_four. + (arm_note_pic_base): New function. + (arm_cannot_copy_insn_p): Use it. + * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in + constraint. + +2010-04-02 Ralf Wildenhues + + PR bootstrap/43531 + + Revert: + 2009-09-28 Ralf Wildenhues + + * Makefile.in ($(out_object_file)): Depend on + gt-$(basename $(notdir $(out_file))).h. + +2010-04-01 Ralf Corsépius + + * config.gcc (lm32-*-rtems*): Add t-lm32. + +2010-04-01 Joel Sherrill + + * config.gcc: Add lm32-*-rtems*. + * config/lm32/rtems.h: New file. + +2010-04-01 Dave Korn + + PR target/42609 + * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin. + +2010-04-01 Jakub Jelinek + + * dwarf2out.c (output_compilation_unit_header): For + -gdwarf-4 use version 4 instead of version 3. + (output_line_info): For version 4 and above emit additional + maximum ops per insn header field. + (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define. + + * dwarf2out.c (is_c_family, is_java): Remove. + (lower_bound_default): New function. + (add_bound_info, gen_descr_array_type_die): Use it. + +2010-04-01 Dodji Seketeli + + PR debug/43325 + * dwarf2out.c (gen_variable_die): Allow debug info for variable + re-declaration when it happens in a function. + +2010-04-01 Aldy Hernandez + + * cgraph.c (cgraph_add_function_insertion_hook): Update comment. + (cgraph_remove_function_insertion_hook): Same. + (cgraph_call_function_insertion_hooks): Same. + +2010-04-01 Richard Guenther + + PR middle-end/43614 + * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS + and TREE_THIS_VOLATILE. + (copy_ref_info): Likewise. + * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE. + * tree.c (build6_stat): Ignore side-effects of all but arg5 + for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of + TARGET_MEM_REF. + +2010-04-01 Richard Guenther + + PR tree-optimization/43607 + * ipa-type-escape.c (check_call): Do not access non-existing + arguments. + +2010-04-01 Richard Guenther + + PR middle-end/43602 + Revert + 2010-03-30 Seongbae Park + Jack Howarth + + * tree-profile.c (tree_init_ic_make_global_vars): Make static + variables TLS. + +2010-04-01 Rainer Orth + + * doc/install.texi (Prerequisites): Document libelf usability on + IRIX 5/6 and Solaris 2. + (Specific, i?86-*-solaris2.10): No 64-bit default configuration. + Update GNU as, GNU ld requirements. + (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal. + Document Sun Studio compiler download. + Update and simplify as, ld recommendations. + (Specific, *-*-solaris2.7): Note obsoletion, removal. + +2010-04-01 Rainer Orth + + * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32, + with_tune_32 to pentium4. + +2010-04-01 Uros Bizjak + + * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment. + +2010-04-01 Rainer Orth + + * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5 + obsoletion, removal. + Update IDO URL. + Document GNU as requirement. + Update configure requirements. + (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal. + Recomment IRIX 6.5.18+. + Document IDF/IDL requirement. + Document GNU as requirement. + Document GNU ld bootstrap failure. + Remove freeware.sgi.com reference. + +2010-04-01 Rainer Orth + + * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64 + UNIX V4.0, V5.0 obsoletion, removal. + Remove --with-gc=simple reference. + Update VM requirements during bootstrap. + Remove -oldas bootstrap description. + Update binutils reference. + Remove comparison failure note. + +2010-03-31 Richard Guenther + Zdenek Dvorak + Sebastian Pop + + PR middle-end/43464 + * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes + with multiple arguments. + (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa. + +2010-03-31 Sebastian Pop + + * graphite-dependences.c (print_pddr): Call print_pdr with an + extra argument. + * graphite-poly.c (debug_pdr): Add an extra argument for the + verbosity level. + (print_pdr): Same. + (print_pbb_domain): Same. + (print_pbb): Same. + (print_scop_context): Same. + (print_scop): Same. + (print_cloog): Same. + (debug_pbb_domain): Same. + (debug_pbb): Same. + (print_pdrs): Same. + (debug_pdrs): Same. + (debug_scop_context): Same. + (debug_scop): Same. + (debug_cloog): Same. + (print_scop_params): Same. + (debug_scop_params): Same. + (print_iteration_domain): Same. + (print_iteration_domains): Same. + (debug_iteration_domain): Same. + (debug_iteration_domains): Same. + (print_scattering_function): Same. + (print_scattering_functions): Same. + (debug_scattering_function): Same. + (debug_scattering_functions): Same. + * graphite-poly.h (debug_pdr): Update declaration. + (print_pdr): Same. + (print_pbb_domain): Same. + (print_pbb): Same. + (print_scop_context): Same. + (print_scop): Same. + (print_cloog): Same. + (debug_pbb_domain): Same. + (debug_pbb): Same. + (print_pdrs): Same. + (debug_pdrs): Same. + (debug_scop_context): Same. + (debug_scop): Same. + (debug_cloog): Same. + (print_scop_params): Same. + (debug_scop_params): Same. + (print_iteration_domain): Same. + (print_iteration_domains): Same. + (debug_iteration_domain): Same. + (debug_iteration_domains): Same. + (print_scattering_function): Same. + (print_scattering_functions): Same. + (debug_scattering_function): Same. + (debug_scattering_functions): Same. + +2010-03-31 Sebastian Pop + + * graphite-poly.c (print_scattering_function_1): New. + (print_scattering_function): Call it. + (print_scop_params): Remove spaces at the end of lines. + (print_cloog): New. + (debug_cloog): New. + * graphite-poly.h (print_cloog): Declared. + (debug_cloog): Declared. + +2010-03-31 Sebastian Pop + + * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump + in loop->header. + * tree-flow.h (canonicalize_loop_ivs): Updated declaration. + * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch. + * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter + to switch between adding the IV bump in loop->latch or in loop->header. + +2010-03-31 Sebastian Pop + + * graphite-poly.c (print_scattering_function): Pretty print following + the scoplib format. + (print_pdr): Same. + (print_pbb_domain): Same. + (dump_gbb_cases): Same. + (dump_gbb_conditions): Same. + (print_pdrs): Same. + (print_pbb): Same. + (print_scop_params): Same. + (print_scop_context): Same. + (print_scop): Same. + (print_pbb_body): New. + (lst_indent_to): New. + (print_lst): Start new lines with a #. + * graphite-poly.h (pbb_bb): New. + (pbb_index): Use pbb_bb. + * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of + disjuncts. + * tree-data-ref.c (dump_data_reference): Start new lines with a #. + +2010-03-31 Jakub Jelinek + + * dwarf2out.c (size_of_die): For -gdwarf-4 use + uleb128 size instead of fixed 1 or 2 for dw_val_class_loc + and 0 instead of 1 for dw_val_class_flag. + (value_format): For -gdwarf-4 use DW_FORM_sec_offset for + dw_val_class_range_list, dw_val_class_loc_list, + dw_val_class_lineptr and dw_val_class_macptr, use + DW_FORM_flag_present for dw_val_class_flag and + DW_FORM_exprloc for dw_val_class_loc. + (output_die): For -gdwarf-4 print dw_val_class_loc + size as uleb128 instead of 1 or 2 bytes and don't print + anything for dw_val_class_flag. + + * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn + instead of cselib_lookup following by tweaking locs->setting_insn. + + PR bootstrap/43596 + * cselib.c (cselib_process_insn): Clear cselib_current_insn + even before returning from label, setjmp call or volatile asm + handling. + +2010-03-31 Richard Guenther + + PR middle-end/43600 + * cgraphunit.c (cgraph_output_in_order): Do not allocate + temporary data on stack. + +2010-03-31 Rainer Orth + + * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef. + (PUSHSECTION_ASM_OP): Remove. + (POPSECTION_ASM_OP): Remove. + (PUSHSECTION_FORMAT): Remove. + * config/sol2.h (PUSHSECTION_FORMAT): Define. + * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine. + * config/sol2.c (solaris_output_init_fini): Use it. + +2010-03-31 Jie Zhang + + PR 43574 + * opt-functions.awk (var_type_struct): Use signed char type + for simple variables. + +2010-03-31 Rainer Orth + + * config/sol2.c: Include output.h. + (solaris_assemble_visibility): New function. + * config/t-sol2 (sol2.o): Add output.h dependency. + * config/sol2-protos.h (solaris_assemble_visibility): Declare. + * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY): + Redefine. + +2010-03-31 Jakub Jelinek + + PR target/43580 + * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of + V2SImode or XFmode on PRE_DEC. + + PR debug/43557 + * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like + BLKmode. + +2010-03-31 Jie Zhang + + PR 43562 + * reload.h (caller_save_initialized_p): Declare. + * toplev.c (backend_init_target): Don't call + init_caller_save but set caller_save_initialized_p to false. + * caller-save.c (caller_save_initialized_p): Define. + (init_caller_save): Check caller_save_initialized_p. + * ira.c (ira): Call init_caller_save if flag_caller_saves. + +2010-03-31 Rainer Orth + + PR target/39048 + * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp + and soft-fp/t-softfp to tmake_file. + * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine. + (LIBGCC2_TF_CEXT): Define. + (TF_SIZE): Define. + +2010-03-30 Alexandre Oliva + + PR debug/42977 + * cselib.c (n_useless_values): Document handling of debug locs. + (n_useless_debug_values, n_debug_values): New variables. + (new_elt_loc_list): Don't add to debug values, keep count. + (promote_debug_loc): New. + (cselib_reset_table): Zero new variables. + (entry_and_rtx_equal_p): Promote debug locs. + (discard_useless_locs): Increment n_useless_debug_values for + debug values. + (remove_useless_values): Adjust n_useless_values and n_debug_values + with n_useless_debug_values. + (add_mem_for_addr): Promote debug locs. + (cselib_lookup_mem): Likewise. + (cselib_lookup_addr): Renamed to... + (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call... + (cselib_log_lookup): ... this. Turn into... + (cselib_lookup_addr): ... new wrapper. + (cselib_lookup_from_insn): New. + (cselib_invalidate_regno): Increment n_useless_debug_values for + debug values. + (cselib_invalidate_mem): Likewise. + (cselib_process_insn): Take n_deleted and n_debug_values into + account to guard remove_useless_value call. + (cselib_finish): Zero n_useless_debug_values. + * cselib.h (cselib_lookup_from_insn): Declare. + * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn. + (sched_analyze_2): Likewise. + +2010-03-30 Jakub Jelinek + + * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New + functions. + (adjust_mems): Replace narrowing SUBREG of expression containing + just PLUS, MINUS, MULT and ASHIFT of registers and constants + with operations in the narrower mode. + + PR debug/43593 + * var-tracking.c (dataflow_set_clear_at_call): Invalidate just + regs_invalidated_by_call instead all call_used_reg_set registers. + +2010-03-30 Sebastian Pop + + PR middle-end/43430 + * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type + pointer comparisons with types_compatible_p. + * tree-vect-stmts.c (vectorizable_call): Same. + (vectorizable_condition): Same. + +2010-03-30 Andreas Krebbel + + * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic + stack check if the mask would be zero. + +2010-03-30 Seongbae Park + Jack Howarth + + * tree-profile.c (tree_init_ic_make_global_vars): Make static + variables TLS. + +2010-03-30 Joseph Myers + + PR other/25232 + * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2 + and __unordtf2. + * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version. + Include ___unordxf2 and ___unordtf2. + * config/i386/libgcc-glibc.ver: Do not define inheritance from + GCC_4.4.0 here. + +2010-03-30 Tarik Graba + + * config/lm32/t-lm32: New file. + * config.gcc: Use the above file when targetting lm32. + +2010-03-28 Duncan Sands + + * Makefile.in (PLUGIN_HEADERS): Add except.h. + +2010-03-29 Sebastian Pop + + PR middle-end/43431 + * tree-vect-loop.c (vect_estimate_min_profitable_iters): + Improve vectorization cost model diagnostic. + +2010-03-29 Sebastian Pop + + PR middle-end/43436 + * tree-vect-data-refs.c (vect_analyze_data_refs): When + compute_data_dependences_for_loop returns false, early exit + and output an extra diagnostic for the failed data reference + analysis. + +2010-03-29 Richard Guenther + + PR tree-optimization/43560 + * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter. + (can_sm_ref_p): Treat stores to readonly locations as trapping. + +2010-03-29 Jie Zhang + + PR 43564 + * toplev.c (process_options): Set optimization_default_node + and optimization_current_node. + * opts.c (decode_options): Don't set optimization_default_node + and optimization_current_node. + +2010-03-29 Ralf Corsépius + + * config/rtems.h: Abandon -qrtems_debug. + +2010-03-28 Jan Hubicka + + PR tree-optimization/43505 + * cgraph.c (cgraph_clone_node): When clonning a clone, replacement + map should not be copied. + +2010-03-27 John David Anglin + + PR middle-end/41674 + * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have + cdtors, set DECL_PRESERVE_P. + * ipa.c (cgraph_externally_visible_p): Return true if declaration + should be preseved. + +2010-03-27 Uros Bizjak + + PR tree-optimization/43528 + * stor-layout.c (place_field): Check that constant fits into + unsigned HWI when skipping calculation of MS bitfield layout. + +2010-03-27 Jan Hubicka + + PR middle-end/43391 + * varasm.c (make_decl_rtl): Deal with COMMON flag to make + notice_global_symbol work. + +2010-03-27 Jakub Jelinek + + * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl + instead of dwarf2out_decl. + (struct var_loc_node): Remove section_label field. + (dwarf2out_function_decl): New function. + (dwarf2out_var_location): Don't set section_label field. + (dwarf2out_begin_function): Don't empty decl_loc_table here. + +2010-03-26 Michael Meissner + + PR tree-optimization/43544 + * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): + First argument for builtin vectorized function hook is now a + tree to be able to distinguish between machine specific and + standard builtins. + * targhooks.c (default_builtin_vectorized_function): Ditto. + * targhooks.h (default_builtin_vectorized_function): Ditto. + * target.h (struct gcc_target): Ditto. + * tree-vect-stmts.c (vectorizable_function): Ditto. + * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto. + * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): + Ditto. + +2010-03-26 Joseph Myers + + PR c/43381 + * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a + nested binding iff it is a FUNCTION_DECL. + (store_parm_decls_newstyle): Pass nested=true to bind for + FUNCTION_DECLs amongst parameters. + +2010-03-26 Jakub Jelinek + + * var-tracking.c (vt_expand_loc_callback): Don't run + cselib_expand_value_rtx_cb in dummy mode if + cselib_dummy_expand_value_rtx_cb returned false. + + * var-tracking.c (emit_note_insn_var_location): For one part + notes with offset 0, don't add EXPR_LIST around the location. + * dwarf2out.c (loc_descriptor, dw_loc_list_1, + add_location_or_const_value_attribute): Adjust for that change. + + PR debug/43540 + * dwarf2out.c (reg_save): For DW_CFA_expression put regnum + into first operand and location into second. + (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of + dw_cfi_oprnd_loc for DW_CFA_expression. + (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression. + (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression + assume first argument is regnum and second argument is location. + +2010-03-26 Uros Bizjak + + PR target/42113 + * config/alpha/alpha.md (*cmp_sadd_si): Change mode + of scratch register to DImode. Split to DImode comparison operator. + Use SImode subreg of scratch register in the multiplication. + (*cmp_sadd_sidi): Ditto. + (*cmp_ssub_si): Ditto. + (*cmp_ssub_sidi): Ditto. + +2010-03-26 Uros Bizjak + + PR target/43524 + * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]: + Remove invalid assert and wrong comment. + +2010-03-26 Jakub Jelinek + + PR debug/43516 + * flags.h (final_insns_dump_p): New extern. + * final.c (final_insns_dump_p): New variable. + (rest_of_clean_state): Set it before -fdump-final-insns= + dumping, clear afterwards. + * print-rtl.c (print_rtx): If final_insns_dump_p don't dump + MEM_ALIAS_SET on MEMs. + +2010-03-26 David S. Miller + + * configure.ac: Fix sparc GOTDATA_OP bug check. + * configure: Rebuild. + +2010-03-26 Alan Modra + + * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison. + +2010-03-25 Rainer Orth + + * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP, + TLS_SECTION_ASM_FLAG. + +2010-03-25 Jakub Jelinek + + PR bootstrap/43511 + * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO. + Clear first_function_block_is_cold. + + PR c/43385 + * gimplify.c (gimple_boolify): Only recurse on __builtin_expect + argument if the argument is truth_value_p. + +2010-03-24 Michael Meissner + + * config/rs6000/constraints.md: Update copyright year for my changes. + + PR target/43484 + * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is + used in reg+reg addressing, swap registers. + +2010-03-24 Jakub Jelinek + + PR debug/43293 + * target.h (struct gcc_target): Add code_end hook. + * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void + if not yet defined. + (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END. + * toplev.c (compile_file): Call targetm.asm_out.code_end + hook before unwind info/debug info output. + * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end. + * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define. + (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack. + * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define. + (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack. + * config/i386/i386.c (ix86_file_end): Renamed to... + (ix86_code_end): ... this. Make static. Don't call + file_end_indicate_exec_stack. Emit unwind info using + final_start_function/final_end_function. + (darwin_x86_file_end): Remove. + (TARGET_ASM_CODE_END): Define. + * config/i386/i386.h (TARGET_ASM_FILE_END, + NEED_INDICATE_EXEC_STACK): Don't define. + * config/i386/darwin.h (darwin_x86_file_end): Remove prototype. + (TARGET_ASM_FILE_END): Define to darwin_file_end. + * config/i386/i386-protos.h (ix86_file_end): Remove prototype. + * doc/tm.texi (TARGET_ASM_CODE_END): Document. + + PR target/43498 + * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function + at the beginning and final_end_function at the end. + * config/s390/s390.c (s390_output_mi_thunk): Likewise. + +2010-03-24 Rainer Orth + + * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support + and Sun as TLS syntax. + (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define. + * configure: Regenerate. + * config.in: Regenerate. + * varasm.c (TLS_SECTION_ASM_FLAG): Define default. + (default_elf_asm_named_section): Use it. + * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF. + (i386_output_dwarf_dtprel): Likewise. + (output_addr_const_extra): Likewise. + (output_pic_addr_const): Lowercase @GOTTPOFF. + (output_addr_const_extra): Likewise. + (output_pic_addr_const): Lowercase @GOTNTPOFF. + (output_addr_const_extra): Likewise. + (output_pic_addr_const): Lowercase @INDNTPOFF. + (output_addr_const_extra): Likewise. + (output_pic_addr_const): Lowercase @NTPOFF. + (output_addr_const_extra): Likewise. + (output_pic_addr_const): Lowercase @TPOFF. + (output_addr_const_extra): Likewise. + * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD. + (*tls_global_dynamic_64): Likewise. + (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM. + (*tls_local_dynamic_base_64): Lowercase @TLSLD. + + * defaults.h (TLS_COMMON_ASM_OP): Provide default. + (ASM_OUTPUT_TLS_COMMON): Use it. + * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef. + + PR target/38118 + * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file. + * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ... + * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here. + * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine. + * config/i386/sol2.h (TARGET_SUN_TLS): Redefine. + (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine. + +2010-03-24 Rainer Orth + + * config/i386/i386.c (override_options): Don't accept + -mtls-dialect=sun any longer. + * config/i386/i386.h (TARGET_SUN_TLS): Define as 0. + * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove. + (*tls_local_dynamic_base_32_sun): Likewise. + * config/i386/sol2.h (TARGET_SUN_TLS): Redefine. + +2010-03-24 Jakub Jelinek + + PR debug/43508 + * dwarf2out.c (mem_loc_descriptor): Don't ICE on + VEC_{MERGE,SELECT,CONCAT,DUPLICATE}. + + PR debug/43479 + * ira.c (adjust_cleared_regs): New function. + (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs. + + PR debug/19192 + PR debug/43479 + * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK + from gimple_block. + * expr.c (expand_expr_real): Restore previous + curr_insn_source_location and curr_insn_block after + expand_expr_real_1 call. + (expand_expr_real_1) : Call expand_expr_real + instead of expand_expr_real_1. + +2010-03-23 Vladimir Makarov + + PR rtl-optimization/43413 + * ira-color.c (setup_allocno_available_regs_num): Count prohibited + hard regs too. + +2010-03-22 James E. Wilson + + PR target/43348 + * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp, + call_value_gp, sibcall_gp): Use 's' constraint not 'i'. + +2010-03-22 H.J. Lu + + * config/i386/i386.c (ix86_target_string): Add -mfma. + Fix a typo in comment. + +2010-03-22 Mike Stump + + PR target/23071 + * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align): + Don't overly align based upon packed packed fields. + +2010-03-22 Jason Merrill + + * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]: + Use () rather than [], and move before the element type. + +2010-03-22 Rainer Orth + + * doc/configfiles.texi (Configuration Files): Removed + fixinc/Makefile*, intl/Makefile.*. + * doc/makefile.texi: Fixed markup. Abstract from version + control system used. + (Makefile): Removed obsolete gcc/java/parse.y example. + * doc/sourcebuild.texi: Likewise. + (Top Level): Added config, gnattools, libdecnumber, libgcc, + libgomp, libssp. Removed fastjar. + (Miscellaneous Docs): Clarify location. + Added COPYING3, COPYING3.LIB. + (Front End Directory): Moved Make-lang.in entry to new subsubsection. + +2010-03-22 Rainer Orth + + PR target/38085 + * config/i386/i386.c (x86_function_profiler) + [!NO_PROFILE_COUNTERS]: Fix typo. + * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call + instead of callq. + +2010-03-22 Janis Johnson + Rainer Orth + + * doc/sourcebuild.texi (Test Directives): Split into six + subsections, with most of the current text in new subsections + Directives, Selectors, and Final Actions. + (Directives): Split list of test directives into multiple + subsubsections. + (Selectors): Describe use and syntax of selectors. + (Effective-Target Keywords): Describe all existing keywords. + (Add Options): Describe features for dg-add-options. + (Require Support): Describe variants of dg-require-support. + (Final Actions): Describe commands to use in dg-final. + +2010-03-22 Michael Matz + + PR middle-end/43475 + * recog.c (validate_replace_rtx_group): Replace also in + REG_EQUAL and REG_EQUIV notes. + +2010-03-22 Richard Guenther + + PR tree-optimization/43390 + * tree-vect-stmts.c (get_vectype_for_scalar_type): Make + sure vector extracts are type correct. + +2010-03-22 Richard Guenther + + PR middle-end/40106 + * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as + x * sqrt (x) even when optimizing for size if the target + has native support for sqrt. + +2010-03-22 Jakub Jelinek + + * varasm.c (make_decl_rtl_for_debug): Also clear + flag_mudflap for the duration of make_decl_rtl call. + + PR debug/43443 + * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS + locs from preserved VALUEs. + +2010-03-21 John David Anglin + + PR middle-end/42718 + * pa.md (movmemsi): Set align to one if zero. + (movmemdi): Likewise. + +2010-03-21 Richard Earnshaw + + PR target/42321 + * arm.c (arm_output_epilogue): Correctly match VFP pop instructions + with their corresponding prologue pushes. + +2010-03-20 Andrew Pinski + + PR target/43156 + * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED + at the begining or end. + (spu_expand_epilogue): Likewise. + +2010-03-20 Richard Guenther + + PR rtl-optimization/43438 + * combine.c (make_extraction): Properly zero-/sign-extend an + extraction of the low part of a CONST_INT. Also handle + CONST_DOUBLE. + +2010-03-19 Mike Stump + + * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add. + * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add. + (override_options): Use SUBTARGET32_DEFAULT_CPU. + +2010-03-19 Andrew Pinski + + PR c/43211 + * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was + an error. + +2010-03-19 Bernd Schmidt + + PR rtl-optimization/42258 + * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a + use that may match DEF. + + PR target/40697 + * optabs.c (avoid_expensive_constant): Use rtx_cost to find out + the cost of loading the constant rather than assuming + COSTS_N_INSNS (1). + * config/arm/arm.c (thumb1_rtx_costs) : If the + outer code is AND, do the same tests as the andsi3 expander and + return COSTS_N_INSNS (1) if and is cheap. + + * optabs.c (avoid_expensive_constant): Fix formatting. + +2010-03-19 Michael Matz + + PR c++/43116 + * attribs.c (decl_attributes): When rebuilding a function pointer + type use the same qualifiers as the original pointer type. + +2010-03-19 Martin Jambor + + * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant + and is_gimple_ip_invariant_address. + +2010-03-19 Ramana Radhakrishnan + + Revert + 2009-10-01 Ramana Radhakrishnan + + * config/arm/arm.c (arm_override_options): Turn off + flag_dwarf2_cfi_asm for AAPCS variants. + +2010-03-19 Ramana Radhakrishnan + + PR target/43399 + * config/arm/arm.c (emit_multi_reg_push): Update comments. + Use PRE_MODIFY instead of PRE_DEC. + (emit_sfm): Use PRE_MODIFY instead of PRE_DEC. + (vfp_emit_fstmd): Likewise. + +2010-03-19 Michael Matz + + PR target/43305 + * builtins.c (expand_builtin_interclass_mathfn, + expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls + if that fails. + +2010-03-19 Richard Guenther + + PR tree-optimization/43415 + * tree-ssa-pre.c (phi_translate): Split out worker to ... + (phi_translate_1): ... this. + (phi_translate): Move all caching here. Cache all NARY + and REFERENCE translations. + +2010-03-19 David S. Miller + + With help from Eric Botcazou. + * config/sparc/sparc.c: Include dwarf2out.h. + (emit_pic_helper): Delete. + (pic_helper_symbol_name): Delete. + (pic_helper_emitted_p): Delete. + (pic_helper_needed): New. + (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'. + (get_pc_thunk_name): New. + (load_pic_register): Remove 'delay_pic_helper' arg. Use + get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol. + Set pic_helper_needed to true. Don't call emit_pic_helper. + (sparc_expand_prologue): Update load_pic_register call. + (sparc_output_mi_thunk): Likewise. + (sparc_file_end): Emit a hidden comdat symbol for the PIC + thunk if possible. Output CFI information as needed. + +2010-03-18 Francois-Xavier Coudert + Jack Howarth + + PR target/36399 + * config/i386/i386.h: Fix ABI on darwin x86-32. + +2010-03-18 Aldy Hernandez + + * tree.h: Declare make_decl_rtl_for_debug. + * varasm.c (make_decl_rtl_for_debug): New. + * dwarf2out.c (rtl_for_decl_location): Call it. + * cfgexpand.c (expand_debug_expr): Call it. + +2010-03-18 Jakub Jelinek + + PR bootstrap/43399 + * var-tracking.c (adjust_mems) : Allow BLKmode + mem_mode. + + PR bootstrap/43403 + * var-tracking.c (vt_init_cfa_base): Do nothing if + cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register. + +2010-03-18 Alexandre Oliva + + PR debug/42873 + * var-tracking.c (canonicalize_vars_star): New. + (dataflow_post_merge_adjust): Use it. + +2010-03-18 Jakub Jelinek + + PR debug/43058 + * var-tracking.c (non_suitable_const): New function. + (add_uses): For DEBUG_INSNs with constants, don't record any + value, instead just the constant value itself. + (compute_bb_dataflow) : If PAT_VAR_LOCATION_LOC + is not VAR_LOC_UNKNOWN_P, set var to the constant. + (emit_notes_in_bb): Likewise. + (emit_note_insn_var_location): For onepart variables if + cur_loc is a VOIDmode constant, use DECL_MODE. + +2010-03-18 Martin Jambor + + PR middle-end/42450 + * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare. + * cgraphunit.c (cgraph_materialize_all_clones): Update calls in + all non-clones. Moved call redirection... + (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function. + (cgraph_materialize_all_clones): Dispose of all + combined_args_to_skip bitmaps. + (verify_cgraph_node): Do not check for edges pointing to wrong + nodes in inline clones. + * tree-inline.c (copy_bb): Call + cgraph_redirect_edge_call_stmt_to_callee. + * ipa.c (cgraph_remove_unreachable_nodes): Call + cgraph_node_remove_callees even when there are used clones. + +2010-03-18 H.J. Lu + + * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0. + +2010-03-18 H.J. Lu + + PR target/43383 + * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0 + for 32bit. + +2010-03-18 Michael Matz + + PR middle-end/43419 + * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5) + into sqrt(x) if we need to preserve signed zeros. + +2010-03-18 Steven Bosscher + Eric Botcazou + + PR rtl-optimization/43360 + * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL + note if we don't know its invariant status. + +2010-03-18 Michael Matz + + PR tree-optimization/43402 + * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow + PHI chains of ssa names registered for update. + +2010-03-17 Peter Bergner + + PR target/42427 + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for + non-offsettable and pre_modify update addressing. + * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1" + and "2" alternatives "#". + (*movdd_softfloat32): Make all alternatives "#"; + * config/rs6000/rs6000.md (DIFD): New define_mode_iterator. + (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#". + (*movdf_softfloat32): Make all alternatives "#"; + (movdi): Use the new DIFD mode iterator to create a common splitter + for movdi, movdf and movdd patterns. + +2010-03-18 Shujing Zhao + + * common.opt (dumpdir): Remove redundant tab. + +2010-03-17 Martin Jambor + + PR tree-optimization/43347 + * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the + original base is DECL_ARTIFICIAL or DECL_IGNORED_P. + +2010-03-17 Bernd Schmidt + + PR rtl-optimization/42216 + * regrename.c (create_new_chain): New function, broken out from... + (scan_rtx_reg): ... here. Call it. Handle the case where we are + appending a use to an empty chain. + (build_def_use): Remove previous changes that convert OP_INOUT to + OP_OUT operands; instead detect the case where an OP_INOUT operand + uses a previously untracked register and create an empty chain for it. + +2010-03-17 Ralf Wildenhues + + * doc/extend.texi (Function Attributes): Rewrite unfinished + sentence in ms_abi documentation. + +2010-03-17 Alan Modra + + * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var. + * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define. + (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL. + * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define. + +2010-03-16 Richard Henderson + + PR middle-end/43365 + * tree-eh.c (replace_goto_queue): Also replace in the eh_seq. + (lower_try_finally): Save and restore eh_seq around the expansion + of the try-finally. + +2010-03-16 Aldy Hernandez + + * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug + statements before splitting block. + +2010-03-16 Rainer Orth + + * doc/sourcebuild.texi (Testsuites): Fix markup. + Use pathnames relative to gcc/testsuite. + (Test Directives): Move description of how timeout is determined. + (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc. + (C Tests): Correct gcc.misc-tests directory. + Framework tests now live in gcc.test-framework. + +2010-03-16 Richard Guenther + + PR middle-end/43379 + * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI + operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly. + +2010-03-16 Aldy Hernandez + Alexandre Oliva + + PR tree-optimization/42917 + * lambda-code.c (remove_iv): Skip debug statements. + (lambda_loopnest_to_gcc_loopnest): Likewise. + (not_interesting_stmt): Debug statements are not interesting. + +2010-03-16 Jakub Jelinek + + PR debug/43051 + PR debug/43092 + * cselib.c (cselib_preserve_constants, + cfa_base_preserved_val): New static variables. + (preserve_only_constants): New function. + (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't + clear its REG_VALUES. If cselib_preserve_constants, don't + empty the whole hash table, but preserve there VALUEs with constants, + cfa_base_preserved_val and cfa_base_preserved_val plus constant. + (cselib_preserve_cfa_base_value): New function. + (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val. + (cselib_init): Change argument to int bitfield. Set + cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS + is in it. + (cselib_finish): Clear cselib_preserve_constants and + cfa_base_preserved_val. + * cselib.h (enum cselib_record_what): New enum. + (cselib_init): Change argument to int. + (cselib_preserve_cfa_base_value): New prototype. + * postreload.c (reload_cse_regs_1): Adjust cselib_init caller. + * dse.c (dse_step1): Likewise. + * cfgcleanup.c (thread_jump): Likewise. + * sched-deps.c (sched_analyze): Likewise. + * gcse.c (local_cprop_pass): Likewise. + * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback. + If FN is non-NULL, call the callback always and whenever it returns + non-NULL just return that. Only do rtx_equal_p if FN is NULL. + * rtl.h (simplify_replace_fn_rtx): Add argument to callback. + * combine.c (propagate_for_debug_subst): Add old_rtx argument, + compare from with old_rtx and if it isn't rtx_equal_p, return NULL. + * Makefile.in (var-tracking.o): Depend on $(RECOG_H). + * var-tracking.c: Include recog.h. + (bb_stack_adjust_offset): Remove. + (vt_stack_adjustments): Don't call it, instead just gather the + adjustments using insn_stack_adjust_offset_pre_post on each bb insn. + (adjust_stack_reference): Remove. + (compute_cfa_pointer): New function. + (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables. + (struct adjust_mem_data): New type. + (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New + functions. + (get_address_mode): New function. + (replace_expr_with_values): Use it. + (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P. + Use get_address_mode. For cfa_base_rtx return MO_CLOBBER. + (adjust_sets): Remove. + (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant. + Use get_address_mode. + (get_adjusted_src): Remove. + (add_stores): Don't call it. Never reuse expr SET. Don't add extra + MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode. + (add_with_sets): Don't call adjust_sets. + (fp_setter, vt_init_cfa_base): New functions. + (vt_initialize): Change return type to bool. Move most of pool etc. + initialization to the beginning of the function from end. Pass + CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init. + If !frame_pointer_needed, call vt_stack_adjustment before mos + vector is filled, call vt_init_cfa_base if argp/framep has been + eliminated to sp. If frame_pointer_needed and argp/framep has + been eliminated to hard frame pointer, set + hard_frame_pointer_adjustment and call vt_init_cfa_base after + encountering fp setter in the prologue. For MO_ADJUST, call + log_op_type before pusing the op into mos vector, not afterwards. + Call adjust_insn before cselib_process_insn/add_with_sets, + call cancel_changes (0) afterwards. + (variable_tracking_main_1): Adjust for vt_initialize calling + vt_stack_adjustments and returning whether it succeeded or not. + +2010-03-15 Aldy Hernandez + + * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip + debug statements. + +2010-03-15 Jakub Jelinek + + * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg + has been set. + (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when + drap_reg has not been set. + +2010-03-15 Michael Matz + + PR middle-end/43300 + * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp, + use it to expand block copies. + (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge, + insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy. + (insert_value_copy_on_edge): Use store_expr for BLKmode values. + +2010-03-15 Richard Guenther + + PR tree-optimization/43367 + * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI + elimination check. + +2010-03-15 Richard Guenther + + PR tree-optimization/43317 + * ipa-struct-reorg.c (create_new_general_access): Update stmt. + +2010-03-15 Martin Jambor + + PR tree-optimization/43141 + * tree-sra.c (create_abstract_origin): New function. + (modify_function): Call create_abstract_origin. + +2010-03-15 Chris Demetriou + + * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it + wasn't copied. + +2010-03-13 Sebastian Pop + + PR middle-end/43354 + * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not + call insert_out_of_ssa_copy for default definitions. + +2010-03-13 Sebastian Pop + + * graphite-clast-to-gimple.c (my_long_long): Defined. + (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node. + * graphite-sese-to-poly.c (my_long_long): Defined. + (scop_ivs_can_be_represented): Use it. + +2010-03-13 Sebastian Pop + + * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params, + graphite-max-bbs-per-function, and loop-block-tile-size. + * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal" + with "maximum". + (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same. + +2010-03-13 Sebastian Pop + + * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove + forward declaration. + * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment. + (add_upper_bounds_from_estimated_nit): New. + (build_loop_iteration_domains): Use it. + +2010-03-13 Sebastian Pop + + * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document. + +2010-03-13 Sebastian Pop + + PR middle-end/43306 + * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT + should be an INTEGER_CST. Also handle CASE_CONVERT. + +2010-03-13 Sebastian Pop + + * graphite.c (graphite_initialize): To bound the number of bbs per + function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION. + * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared. + * doc/invoke.texi: Document it. + +2010-03-13 Sebastian Pop + + * graphite-sese-to-poly.c (build_poly_scop): Do not return bool. + * graphite-sese-to-poly.h (build_poly_scop): Same. + +2010-03-13 Sebastian Pop + + * graphite-sese-to-poly.c (build_poly_scop): Limit scops following + the number of parameters in the scop. Use as an upper bound + PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS. + * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared. + * doc/invoke.texi: Document it. + +2010-03-13 Jerry Quinn + + * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi. + * doc/c-tree.texi: Remove. + * doc/generic.texi: Merge c-tree.texi here. + * doc/gccint.texi (Trees): Remove menu entry. + (c-tree.texi): Remove @include. + * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC. + * doc/languages.texi (Reading RTL): Ditto. + +2010-03-12 Steve Ellcey + + PR target/42869 + * config/ia64/sync.md (sync_compare_and_swap): Move memory fence. + +2010-03-12 Michael Meissner + + PR middle-end/42431 + * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid + code added to work around reload clobbering CONST insns. + +2010-03-12 Jakub Jelinek + + * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove. + (cselib_preserve_definitely, cselib_clear_preserve): Remove. + (cselib_preserve_only_values): Remove retain argument, don't + traverse hash table with cselib_{preserve_definitely,clear_preserve}. + * cselib.h (cselib_preserve_only_values): Remove retain argument. + * var-tracking.c (micro_operation): Move insn field before union. + Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type. + (struct variable_tracking_info_def): Remove n_mos field, change + mos into a vector of micro_operations. + (count_uses, count_uses_1, count_stores, count_with_sets): Remove. + (bb_stack_adjust_offset, log_op_type, add_uses, add_stores, + compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos + changing into a vector. + (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores + come before all other uops generated by add_stores. + (vt_add_function_parameters): Adjust for cselib_preserve_only_values + argument removal. + (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into + a vector. Run just one pass over the bbs instead of separate counting + and computation phase. + (vt_finalize): Free VTI (bb)->mos vector instead of array. + + PR debug/43329 + * tree-inline.c (remap_decls): Put old_var rather than origin_var + into *nonlocalized_list vector. + * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin + even if origin is non-NULL. + (gen_variable_die): Likewise. + (process_scope_var): Don't change origin. + (gen_decl_die): Likewise. + * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p + before adding new edges instead of after it, fix moving over + debug stmts. + +2010-03-11 David S. Miller + + * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple + of four. + * configure: Rebuild. + +2010-03-11 Martin Jambor + + PR tree-optimization/43257 + * tree.c (assign_assembler_name_if_neeeded): New function. + (free_lang_data_in_cgraph): Assembler name assignment moved to the + above new function. + * tree.h (assign_assembler_name_if_neeeded): Declare. + * cgraphunit.c (cgraph_analyze_function): Create an assembler name for + the function if needed. + +2010-03-11 Chris Demetriou + + * Makefile.in (stmp-int-hdrs): Make include/unwind.h, + include/stdint-gcc.h, and include/stdint.h world-readable. + +2010-03-11 Richard Guenther + + PR tree-optimization/43255 + * tree-vrp.c (process_assert_insertions_for): Do not insert + asserts for trivial conditions. + +2010-03-11 Andreas Krebbel + + PR tree-optimization/43280 + * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number + generation. Move calculation of size out of the if branch. + (find_bswap): Modify compare number generation. + +2010-03-11 Richard Guenther + + PR lto/43200 + * lto-streamer-in.c (maybe_fixup_decls): Simplify. + (input_gimple_stmt): Fixup handled component types during + operand read. Also fix up decls in ADDR_EXPRs. + +2010-03-10 Eric Botcazou + + * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32. + * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus. + +2010-03-10 Jan Hubicka + + PR c/43288 + * ipa.c (function_and_variable_visibility) Normalize COMMON bits. + * varasm.c (get_variable_section): Don't do that here... + (make_decl_rtl): ... and here. + (do_assemble_alias): Produce decl RTL. + (assemble_alias): Likewise. + +2010-03-10 Jakub Jelinek + + PR debug/43290 + * reg-notes.def (REG_CFA_SET_VDRAP): New note. + * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting + of fde->vdrap_reg. + (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note. + (based_loc_descr): Only express drap or vdrap regno based expressions + using DW_OP_fbreg when not optimizing. + * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing, + make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add + REG_CFA_SET_VDRAP note. + +2010-03-10 Alexander Monakov + + PR tree-optimization/43236 + * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one + error in calculation of base address in reverse iteration case. + (generate_builtin): Take number of latch executions if the statement + is in the latch. + +2010-03-10 Andrey Belevantsev + + PR middle-end/42859 + * tree-eh.c: Include pointer-set.h. + (lower_eh_dispatch): Filter out duplicate case labels and + remove the unneeded edge when the label is unused. Return + true when some edges are removed. + (execute_lower_eh_dispatch): When any lowering resulted in + removing an edge, also delete unreachable blocks. + +2010-03-10 Jakub Jelinek + + PR bootstrap/43287 + * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle + UNSPEC_MACHOPIC_OFFSET. + +2010-03-09 Andreas Schwab + + PR target/43294 + * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define. + (m68k_delegitimize_address): New function. + +2010-03-09 Jakub Jelinek + + PR debug/43299 + * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs. + + PR debug/43299 + * var-tracking.c (adjust_sets): New function. + (count_with_sets, add_with_sets): Use it. + (get_adjusted_src): New inline function. + (add_stores): Use it. + + PR debug/43304 + * var-tracking.c (vt_expand_loc_callback) : If dummy, + call cselib_dummy_expand_value_rtx_cb instead of + cselib_expand_value_rtx_cb. + + PR debug/43293 + * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h. + * config/i386/i386.c: Include debug.h and dwarf2out.h. + (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc + and .cfi_endproc around the pic thunks. + (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure + all queued unwind info register saves are saved before the call. + For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is + considered as sp-=4 for unwind info and the pop as sp+=4 which + also clobbers dest, but doesn't actually restore it. + + PR debug/43290 + * config/i386/i386.c (ix86_get_drap_rtx): Don't set + RTX_FRAME_RELATED_P. + +2010-03-09 Jie Zhang + + * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing + whitespaces in output template. + +2010-03-09 Jie Zhang + + * ira-lives.c (check_and_make_def_use_conflict): Don't fall + out array boundary. + +2010-03-08 Jakub Jelinek + + * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and + builtins.exp in a separate job. + +2010-03-08 Sebastian Pop + + * graphite-sese-to-poly.c (add_param_constraints): Use + lower_bound_in_type and upper_bound_in_type. + +2010-03-08 Sebastian Pop + + * graphite-sese-to-poly.c (add_param_constraints): Use sizetype + instead of unsigned_type_node. + +2010-03-08 Sebastian Pop + Reza Yazdani + + PR middle-end/43065 + * graphite-sese-to-poly.c (add_param_constraints): Insert bounds + on pointer type parameters. + +2010-03-08 Tobias Grosser + + PR middle-end/42644 + PR middle-end/42130 + * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also + handle conversions from pointer to integers. + (gcc_type_for_cloog_iv): Choose the smalles signed integer as an + induction variable, to be able to work with code generated by CLooG. + * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New. + (build_poly_scop): Bail out if we cannot codegen a loop. + +2010-03-08 Tobias Grosser + + * graphite-clast-to-gimple.c (translate_clast): Do not short-cut + code generation with gloog_error. + +2010-03-08 Sebastian Pop + + * sese.c (expand_scalar_variables_ssa_name): Add new argument for type. + Call fold_convert on all the returned values. + (expand_scalar_variables_expr): Pass to + expand_scalar_variables_ssa_name the type of the resulting expression. + +2010-03-08 Sebastian Pop + + * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed + ppl_min_for_le_pointset. + Use ppl_Pointset_Powerset_C_Polyhedron_minimize. + * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration. + +2010-03-08 Sebastian Pop + + * graphite-dependences.c (map_into_dep_poly): Removed. + (dependence_polyhedron_1): Use combine_context_id_scat. + +2010-03-08 Sebastian Pop + + * graphite-poly.h (struct poly_scattering): Add layout documentation. + (struct poly_bb): Same. + (combine_context_id_scat): New. + +2010-03-08 Sebastian Pop + + PR middle-end/42326 + * sese.c (name_defined_in_loop_p): Return false for default + definitions. + +2010-03-08 Sebastian Pop + + * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify + and clean up the logic. + +2010-03-08 Sebastian Pop + + * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove + early return. + +2010-03-08 Jakub Jelinek + + * var-tracking.c (remove_cselib_value_chains): Define only for + ENABLE_CHECKING. + (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs, + delete_slot_part, emit_notes_for_differences_1): Don't call + remove_cselib_value_chains here. + (set_slot_part, emit_notes_for_differences_2): Don't call + add_cselib_value_chains here. + (preserved_values): New vector. + (preserve_value): New function. + (add_uses, add_stores, vt_add_function_parameters): Use it + instead of cselib_preserve_value. + (changed_values_stack): New vector. + (check_changed_vars_0): New function. + (check_changed_vars_1, check_changed_vars_2): Use it. + (emit_notes_for_changes): Call set_dv_changed (*, false) on all + changed_values_stack VALUEs. + (vt_emit_notes): For all preserved_values call + add_cselib_value_chains. If ENABLE_CHECKING call + remove_cselib_value_chains before verifying value_chains is empty. + Initialize and free changed_values_stack. + (vt_initialize): Initialize preserved_values. + (vt_finalize): Free preserved_values. + +2010-03-08 Richard Guenther + + PR tree-optimization/43269 + * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom + region detection. + +2010-03-08 Martin Jambor + + * ipa-prop.h (struct ipa_param_descriptor): Removed the called field. + (ipa_is_param_called): Removed. + * ipa-prop.c (ipa_note_param_call): Do not set the called flag. + (ipa_print_node_params): Do not print the called flag. + (ipa_write_node_info): Do not stream the called flag. + (ipa_read_node_info): Likewise. + +2010-03-07 Jakub Jelinek + + PR debug/43176 + * Makefile.in (var-tracking.o): Depend on pointer-set.h. + * cselib.c (struct expand_value_data): Add dummy field. + (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize + dummy to false. + (cselib_dummy_expand_value_rtx_cb): New function. + (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate + any rtl. + * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype. + * var-tracking.c: Include pointer-set.h. + (variable): Change n_var_parts to char from int. Add + cur_loc_changed and in_changed_variables fields. + (variable_canonicalize): Remove. + (shared_var_p): New inline function. + (unshare_variable): Maintain cur_loc_changed and + in_changed_variables fields. If var was in changed_variables, + replace it there with new_var. Just copy cur_loc instead of + resetting it to something else. + (variable_union): Don't recompute cur_loc. Use shared_var_p. + (dataflow_set_union): Don't call variable_canonicalize. + (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids + of their DEBUG_EXPR_TREE_DECLs. + (canonicalize_loc_order_check): Verify that cur_loc is NULL + and in_changed_variables and cur_loc_changed is false. + (variable_merge_over_cur): Clear cur_loc, in_changed_variables + and cur_loc_changed. Don't update cur_loc here. + (variable_merge_over_src): Don't call variable_canonicalize. + (dataflow_set_preserve_mem_locs): Use shared_var_p. When + removing loc that is equal to cur_loc, clear cur_loc, + set cur_loc_changed and ensure variable_was_changed is called. + (dataflow_set_remove_mem_locs): Use shared_var_p. Only + compare pointers in cur_loc check, if it is equal to loc, + clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here. + (variable_different_p): Remove compare_current_location argument, + don't compare cur_loc. + (dataflow_set_different_1): Adjust variable_different_p caller. + (variable_was_changed): If dv had some var in changed_variables + already, reset in_changed_variables flag for it and propagate + cur_loc_changed over to the new variable. On empty var + always set cur_loc_changed. Set in_changed_variables on whatever + var is added to changed_variables. + (set_slot_part): Clear cur_loc_changed and in_changed_variables. + Use shared_var_p. When removing loc that is equal to cur_loc, + clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the + end, don't set it to something else, just call variable_was_changed. + (delete_slot_part): Use shared_var_p. When cur_loc equals to + loc being removed, clear cur_loc and set cur_loc_changed. + Set cur_loc_changed if all locations have been removed. + (struct expand_loc_callback_data): New type. + (vt_expand_loc_callback): Add dummy mode in which no rtxes are + allocated. Always create SUBREGs if simplify_subreg failed. + Prefer to use cur_loc, when that fails and still in + changed_variables (and seen first time) recompute it. Set + cur_loc_changed of variables which had to change cur_loc and + compute elcd->cur_loc_changed if any of the subexpressions used + had to change cur_loc. + (vt_expand_loc): Adjust to pass arguments in + expand_loc_callback_data structure. + (vt_expand_loc_dummy): New function. + (emitted_notes): New variable. + (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs + that weren't used for any other decl in current + emit_notes_for_changes call call vt_expand_loc_dummy to update + cur_loc. For -fno-var-tracking-assignments, set cur_loc to + first loc_chain location if NULL before. Always use just + cur_loc instead of first loc_chain location. When cur_loc_changed + is false, when not --enable-checking=rtl just don't emit any note. + When rtl checking, compute the note and assert it is the same + as previous note. Clear cur_loc_changed and in_changed_variables + at the end before removing from changed_variables. + (check_changed_vars_3): New function. + (emit_notes_for_changes): Traverse changed_vars to call + check_changed_vars_3 on each changed var. + (emit_notes_for_differences_1): Clear cur_loc_changed and + in_changed_variables. Recompute cur_loc of new_var. + (emit_notes_for_differences_2): Clear cur_loc if new variable appears. + (vt_emit_notes): Initialize and destroy emitted_notes. + +2010-03-07 Bernd Schmidt + + PR rtl-optimization/42220 + * regrename.c (scan_rtx) : + Use verify_reg_tracked to determine if we should use OP_OUT rather + than OP_INOUT. + (build_def_use): If we see an in-out operand for a register that we + know nothing about, treat is an output if possible, fail the block if + not. + +2010-03-06 Alexandre Oliva + + PR debug/42897 + * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed + permanently. + +2010-03-06 Alexandre Oliva + + PR debug/42897 + * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug + uses of relevant DEFs that are dead outside the loop too. + +2010-03-06 Alexandre Oliva + + * var-tracking.c (dataflow_set_merge): Swap src and src2. + Reverted: + 2010-01-13 Jakub Jelinek + PR debug/41371 + * var-tracking.c (values_to_unmark): New variable. + (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in + values_to_unmark vector. Moved body to... + (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO, + instead queue it into values_to_unmark vector. + (vt_find_locations): Free values_to_unmark vector. + +2010-03-05 Eric Botcazou + + * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables. + (site.exp): Export them when plugins are enabled. + +2010-03-05 Sebastian Pop + + PR middle-end/42326 + * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions + that contain scevs. + (chrec_fold_multiply): Same. + +2010-03-04 Andrew Pinski + + PR c/43248 + * c-decl.c (build_compound_literal): Return early if init is + an error_mark_node. + +2010-03-04 Martin Jambor + + PR tree-optimization/43164 + PR tree-optimization/43191 + * tree-sra.c (type_consists_of_records_p): Reject records with + zero-size bit-fields at the end. + +2010-03-04 Mike Stump + + * Makefile.in (TAGS): Remove *.y. + +2010-03-04 Richard Guenther + + PR tree-optimization/40761 + * tree-ssa-pre.c (compute_antic): Walk reverse postorder + in reverse order. + (my_rev_post_order_compute): New function. + (init_pre): Call it. + +2010-03-04 Changpeng Fang + + PR middle-end/43209 + * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not + decrease the cost of an IV candidate when the cost is infinite. + +2010-03-04 Ralf Wildenhues + + * doc/extend.texi (Vector Extensions, X86 Built-in Functions): + Use '3DNow!' for the extension of that name, ensure normal space + after the string. + * doc/invoke.texi (i386 and x86-64 Options): Likewise. + +2010-03-03 Jeff Law + + * PR middle-end/32693 + * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather + than gen_rtx_SUBREG. + (extract_bit_field_1): Likewise. + +2010-03-03 Janis Johnson + + * doc/sourcebuild.texi (Test directives): Document that arguments + include-opts and exclude-opts are now optional for dg-skip-if, + dg-xfail-if, dg-xfail-run-if, and dg-shouldfail. + +2010-03-03 Jason Merrill + + PR c++/12909 + * cgraph.h (varpool_node): Add extra_name field. + * varpool.c (varpool_extra_name_alias): New. + (varpool_assemble_decl): Emit extra name aliases. + (varpool_mark_needed_node): Look past an extra name alias. + * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias. + * lto-streamer-in.c (lto_input_tree): Read it. + * lto-streamer-out.c (output_unreferenced_globals): Write it. + +2010-03-03 Eric Botcazou + + * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into... + (sparc*-*-solaris2*): ...this. + +2010-03-03 Jakub Jelinek + + PR debug/43229 + * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR, + WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without + ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR, + FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR. + + PR debug/43237 + * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die, + fallthrough to default handling, just with want_address 0 instead of 2. + For single element lists, add_AT_loc directly, otherwise create an + artificial variable DIE and stick location list to it. + + PR debug/43177 + * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode. + (VAL_EXPR_HAS_REVERSE): Define. + (reverse_op): New function. + (add_stores): For reversible operations add an extra MO_VAL_USE. + +2010-03-02 Jason Merrill + + * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size. + +2010-03-02 Eric Botcazou + + * config.gcc (sparc-*-linux*): Do not include sparc/gas.h. + (sparc64-*-linux*): Likewise. + (sparc64-*-solaris2*): Include assembler files before linker ones. + (sparc-*-solaris2*): Simplify and reorder to match previous case. + * config/sparc/gas.h: Delete. + * config/sparc/sol2-64.h: Add copyright notice. + * config/sparc/sol2-gas-bi.h: Likewise. + * config/sparc/sol2-gld.h: Likewise. + * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete. + * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine. + * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise. + * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine. + (sparc_elf_asm_named_section): Rename into... + (sparc_solaris_elf_asm_named_section): ...this. Always define. + +2010-03-02 Uros Bizjak + + * config/alpha/alpha.c (override_options): Fix -mtune error message. + +2010-03-02 Jeff Law + + PR middle-end/42431 + * reload1.c (rtx_p, substitute_stack): Declare. + (substitute): Record addresses of changed rtxs. + (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore. + Restore the original rtx when complete. + (reload): Free subsitute_stack when complete. + +2010-03-02 Janis Johnson + + * doc/gccint.texi (menu): Add Testsuites as a chapter. + * doc/sourcebuild.texi (Testsuites): Move up a level to be a + new chapter. + (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests, + LTO Testing, gcov Testing, profopt Testing, compat Testing, + Torture Tests): Change from subsection to section. + +2010-03-02 Jakub Jelinek + Steven Bosscher + + * var-tracking.c (vt_initialize): Scan insns in ebb chunks + instead of bb. + +2010-03-02 Reza Yazdani + + PR middle-end/42640 + * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced + the assignment from the new induction variable to the assignment + of the value from the original loop PHI function. + +2010-03-01 Janis Johnson + Daniel Jacobowitz + + * doc/sourcebuild.texi (Test directives): Clarify options to + dg-skip-if. + +2010-03-01 Rainer Orth + + * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]: + Disable cfi directives unless GCC and gas agree on using read-only + .eh_frame sections for 64-bit. + * configure: Regenerate. + +2010-03-01 Richard Guenther + + PR tree-optimization/43220 + * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize + BUILT_IN_STACK_{SAVE,RESTORE} around alloca. + +2010-03-01 Richard Guenther + Martin Jambor + + PR middle-end/41250 + * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on + gimplified parameters. + +2010-03-01 Christian Bruel + + * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P. + +2010-03-01 H.J. Lu + + * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64. + +2010-03-01 Richard Guenther + + PR middle-end/43213 + * expr.c (expand_assignment): Use the alias-oracle to tell + if the rhs aliases the result decl. + +2010-03-01 Rainer Orth + + PR pch/14940 + * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine + to sol_gt_pch_get_address. + (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and + 64-bit, SPARC and x86. + (sol_gt_pch_get_address): New function. + +2010-03-01 Marco Poletti + + * toplev.h (inform_n, error_n): Declare. + * diagnostic.c (inform_n, error_n): New function. + +2010-03-01 Jakub Jelinek + + * cfgexpand.c (expand_used_vars): If an artificial non-ignored var + has no rtl yet when processing local_decls, queue it and recheck + if deferred stack allocation hasn't assigned it rtl. + +2010-02-28 Kaz Kojima + + * config/sh/sh.c (unspec_bbr_uid): New. + (gen_block_redirect): Use it instead of INSN_UID. + (gen_far_branch): Likewise. + +2010-02-28 H.J. Lu + + * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make + it the same as TARGET_SUBTARGET64_ISA_DEFAULT. + +2010-02-28 Ralf Wildenhues + + * doc/invoke.texi (Warning Options, RX Options): Fix typos. + (Warning Options): -Wno-conversion-null is valid for + Objective-C++ as well. + * doc/tm.texi (Named Address Spaces): Likewise. + * doc/plugins.texi (Plugins): Replace TABs with spaces. + * doc/tree-ssa.texi (Tree SSA): Likewise. + +2010-02-27 H.J. Lu + + PR bootstrap/43202 + * config.gcc: Don't enable SSE math for i[34567]86-*-darwin* + by default. Don't set the default arch for + i[34567]86-*-darwin*|x86_64-*-darwin*. + +2010-02-27 H.J. Lu + + PR bootstrap/43202 + * config.gcc: Enable SSE math for i[34567]86-*-darwin* by + default. Set the default 32bit/64bit archs with $with_arch + instead of $arch for i[34567]86-*-*|x86_64-*-* targets. + +2010-02-27 Richard Guenther + + PR tree-optimization/43186 + * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param. + * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document. + * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit + unroller iterations. + +2010-02-27 H.J. Lu + + * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is + required and i[34567]86-*-* targets don't support 64bit ISA. + +2010-02-26 Eric Botcazou + + PR ada/43096 + * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have + the same alias set. + +2010-02-26 H.J. Lu + + * config.gcc: Set the default arch at least to Prescott for + i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets + if SSE math is enabled. + +2010-02-26 Manuel López-Ibáñez + + * diagnostic.c (diagnostic_initialize): Update. + (diagnostic_report_diagnostic): Test inhibit_notes_p for + informative notes. + * diagnostic.h (diagnostic_context): New bool inhibit_notes_p. + (diagnostic_inhibit_notes): New. + * toplev.c (process_options): inhibit notes with -fcompare-debug. + +2010-02-26 Manuel López-Ibáñez + + PR c/20631 + * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89. + * doc/standards.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/trouble.texi: Likewise. + * doc/cppopts.texi: Likewise. + * doc/install.texi: Likewise. + * c.opt (std=c90,std=gnu90): New options. + * c-opts.c (c_common_handle_option): Handle them. + +2010-02-26 Manuel López-Ibáñez + + PR c/24577 + * c-decl.c (undeclared_variable): Use an informative note. + +2010-02-26 Richard Guenther + + PR tree-optimization/43186 + * gimple.h (gimple_fold): Remove. + * gimple.c (gimple_fold): Remove. Inline into single user ... + * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here. + Try harder for conditions. + +2010-02-26 Jakub Jelinek + + PR debug/43190 + * function.c (used_types_insert): Don't skip through named pointer + types. Don't use TYPE_MAIN_VARIANT if the original type has a name + and it is different from the main variant's type. + +2010-02-26 Nick Clifton + + * config/rx/rx.md (sminsi3): Remove bogus alternative. + +2010-02-26 H.J. Lu + + * config.gcc: Support --with-fpmath=sse for x86. + + * config/i386/ssemath.h: New. + + * doc/install.texi (--with-fpmath=sse): Documented. + +2010-02-26 Richard Guenther + + PR tree-optimization/43188 + * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build + vector types of over-aligned element type. + +2010-02-26 Uros Bizjak + + PR target/43175 + * config/i386/i386.c (expand_vec_perm_blend): Use correct + operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx. + +2010-02-26 Jan Kratochvil + + * doc/invoke.texi (-fvar-tracking-assignments): Fix typo. + +2010-02-26 Jakub Jelinek + + * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H). + * var-tracking.c: Include diagnostic.h. + (debug_dv): New function. + (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N. + + PR debug/43160 + * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs. + (add_value_chain, add_value_chains, remove_value_chain, + remove_value_chains): Handle DEBUG_EXPRs. + (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs. + + PR debug/43161 + * regcprop.c (struct queued_debug_insn_change): New type. + (struct value_data_entry): Add debug_insn_changes field. + (struct value_data): Add n_debug_insn_changes field. + (debug_insn_changes_pool): New variable. + (free_debug_insn_changes, apply_debug_insn_changes, + cprop_find_used_regs_1, cprop_find_used_regs): New functions. + (kill_value_one_regno): Call free_debug_insn_changes if needed. + (init_value_data): Clear debug_insn_changes and n_debug_insn_changes + fields. + (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue + changes for them. + (copyprop_hardreg_forward_1): Don't call apply_change_group for + DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN + changes, call cprop_find_used_regs via note_stores. + (copyprop_hardreg_forward): When copying vd from predecessor + which has any queued DEBUG_INSN changes, make sure the pointers are + cleared. At the end call df_analyze and then if there are any + DEBUG_INSN changes queued at the end of some basic block for still + live registers, apply them. + (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish. + +2010-02-25 Uros Bizjak + + * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line. + (arm*-*-*): Ditto. + +2010-02-25 H.J. Lu + + * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-* + targets. Set the default with_cpu/with_arch from arch/cpu. + Allow x86-64 and native for with_cpu/with_arch. + +2010-02-25 Nicolas Benoit + + * ebitmap.c: Change calls to verify_popcount with calls to + sbitmap_verify_popcount. + (ebitmap_clear_bit): Fixed map->cacheindex test and + map>cache update when bit clearing results in an empty + element. + +2010-02-25 Michael Meissner + + PR target/43154 + * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI. + (vec_interleave_high): Rename from vec_interleave_highv2df + and support both V2DF and V2DI modes. + (vec_interleave_low): Rename from vec_interleave_lowv2df and + support both V2DF and V2DI modes. + (general): Delete trailing whitespace from a few patterns. + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add + V2DF/V2DI interleave high/low builtins. + + * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add + new VSX builtins. + + * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI + interleave high/low functions. + +2010-02-25 Gerald Pfeifer + + * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of + #pragma extern_prefix. + +2010-02-25 Jakub Jelinek + + PR debug/43166 + * cfgexpand.c (expand_debug_expr) : If mode is + BLKmode, assert op0 is a MEM and just adjust its mode. + + PR debug/43165 + * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg + if bitpos isn't multiple of mode's bitsize. + +2010-02-24 Manuel López-Ibáñez + + * c.opt (-ftemplate-depth=): New. + (-ftemplate-depth-): Deprecate. + * optc-gen.awk: Handle -ftemplate-depth=. + * opth-gen.awk: Likewise. + * c-opts.c (c_common_handle_option): Likewise. + * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=. + +2010-02-24 Jason Merrill + + * doc/invoke.texi: Improve -Wabi and -fabi-version docs. + +2010-02-24 Rainer Orth + + * cfg.c (alloc_aux_for_block): Remove inline. + (alloc_aux_for_edge): Likewise. + +2010-02-24 Rainer Orth + + * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion. + +2010-02-24 Rainer Orth + + * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define. + * config/i386/sol2-gas.h: New file. + * config.gcc (i[34567]86-*-solaris2*): Use it. + +2010-02-24 Manuel López-Ibáñez + + PR c/43128 + * c-typeck.c (ep_convert_and_check): New. + (build_conditional_expr): Use it. + (build_binary_op): Likewise. + +2010-02-24 Jakub Jelinek + + * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan. + + PR debug/43150 + * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA + bounds even for -O+. + * var-tracking.c (track_expr_p): If !need_rtl, don't mandate + expr needs to have DECL_NAME set. + +2010-02-24 Nick Clifton + + * config/mep/mep.c: Include gimple.h. + (mep_function_uses_sp): Delete unused function. + (mep_gimplify_va_arg_expr): Change types of pre_p and post_p + parameters. Use unsigned integers to count args. Return a + NULL_RTX instead of an error_mark_node. Toidy up formatting. + +2010-02-23 Jakub Jelinek + + PR target/43107 + * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes + greater or equal to nelt instead of 2 * nelt. + (expand_vec_perm_1): When op0 and op1 are equal, mask indexes + with nelt - 1. + +2010-02-23 Jason Merrill + + PR debug/42800 + * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars + in cfun->local_decls even if they have register types. + + PR c++/42837 + * stor-layout.c (place_field): Don't warn about unnecessary + DECL_PACKED if the type is packed. + +2010-02-23 Jakub Jelinek + + PR target/43139 + * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all + GOTOFF relocs, even when the base reg isn't pic pointer. + +2010-02-23 Michael Matz + + PR debug/43077 + * cfgexpand (expand_debug_expr): Expand TERed ssa names in place. + (expand_gimple_basic_block): Generate and use debug temps if there + are debug uses left after the last real use of TERed ssa names. + Unlink debug immediate uses when they are expanded. + +2010-02-23 Manuel López-Ibáñez + + PR 43123 + * config/i386/i386.c (override_options): Reorganise to provide + better error messages. + +2010-02-22 Sebastian Pop + + PR middle-end/43083 + * graphite-scop-detection.c (create_single_exit_edge): Move + the call to find_single_exit_edge to.... + (create_sese_edges): ...here. Don't handle multiple edges + exiting the function. + (build_graphite_scops): Don't handle multiple edges + exiting the function. + +2010-02-22 Sebastian Pop + + PR middle-end/43097 + * sese.c (get_rename): Assert that old_name is an SSA_NAME. + (rename_variables_in_stmt): Continue when the use is not an SSA_NAME. + +2010-02-22 Sebastian Pop + + PR middle-end/43026 + * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF. + +2010-02-22 Manuel López-Ibáñez + + PR c++/43126 + * c-typeck.c (convert_arguments): Print declaration location. + * c-common.c (validate_nargs): Rename as + builtin_function_validate_nargs. + (check_builtin_function_arguments): Update. + +2010-02-22 Richard Guenther + + PR lto/43045 + * tree-inline.c (declare_return_variable): Use the type of + the call stmt lhs if available. + +2010-02-22 Duncan Sands + + * passes.c (register_pass): Always consider all pass lists when + ref_pass_instance_number is zero. + +2010-02-22 Richard Guenther + + PR tree-optimization/42749 + * tree-tailcall.c (adjust_return_value_with_ops): Drop update + parameter. Do arithmetic in the original type. + (update_accumulator_with_ops): Likewise. + (adjust_accumulator_values): Adjust. + +2010-02-22 Andreas Krebbel + + * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative. + (QI to BLKmode splitter): New splitter. + +2010-02-22 H.J. Lu + + * config/i386/i386.c (initial_ix86_tune_features): Turn on + X86_TUNE_INTER_UNIT_MOVES for m_ATOM. + +2010-02-22 Richard Guenther + + * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo. + +2010-02-22 Hans-Peter Nilsson + + Migrate crti, crtn, crtbegin, crtend build rules to libgcc. + * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set. + ($(T)crti.o, $(T)crtn.o): Remove rules. + +2010-02-21 Tobias Burnus + + PR fortran/35259 + * doc/invoke.texi (-fassociative-math): Document that this + option is automatically enabled for Fortran. + +2010-02-20 David S. Miller + + * configure.ac: Test if linker and assembler properly support + GOTDATA_OP relocations. + * configure: Rebuild. + * config.in: Likewise. + * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New. + (movsi_lo_sum_pic): Use %gdop_*() relocs if available. + (movsi_high_pic): Likewise. + (movdi_lo_sum_pic): Likewise. + (movdi_high_pic): Likewise. + (movsi_pic_gotdata_op): New pattern. + (movdi_pic_gotdata_op): Likewise. + * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2, + emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load. + +2010-02-20 Uros Bizjak + + PR target/43067 + * config/i386/sse.md (xop_mulv2div2di3_low): Change type + attribute to ssemul. + (xop_mulv2div2di3_high): Ditto. + +2010-02-20 Manuel López-Ibáñez + + PR c++/35669 + * c.opt (Wconversion-null): New option. + * doc/invoke.texi (Wconversion-null): Document. + +2010-02-20 Manuel López-Ibáñez + + * common.opt (Wlarger-than-): Add Undocumented. + +2010-02-19 Mike Stump + + * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it. + +2010-02-19 Jason Merrill + + PR target/40332 + * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance. + * configure: Likewise. + +2010-02-20 Alan Modra + + PR middle-end/42344 + * cgraph.h (cgraph_make_decl_local): Declare. + * cgraph.c (cgraph_make_decl_local): New function. + (cgraph_make_node_local): Use it. + * cgraphunit.c (cgraph_function_versioning): Likewise. + * ipa.c (function_and_variable_visibility): Likewise. + +2010-02-19 Jakub Jelinek + + PR bootstrap/43121 + * except.c (sjlj_emit_function_enter): Don't call + add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn + directly. + * rtl.h (add_reg_br_prob_note): Remove prototype. + +2010-02-19 Manuel López-Ibáñez + + PR 41779 + * c-common.c (conversion_warning): Remove widening conversions + before checking the conversion of integers to reals. + +2010-02-19 Mike Stump + + PR middle-end/43125 + * c-decl.c (merge_decls): Merge DECL_PRESERVE_P. + + PR objc/43061 + * cgraphunit.c (process_function_and_variable_attributes): Check + DECL_PRESERVE_P instead of looking up attribute "used". + * ipa-pure-const.c (check_decl): Likewise. + * ipa-reference.c (has_proper_scope_for_analysis): Likewise. + * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise. + * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P + instead of attribute "used". + * config/sol2-c.c (solaris_pragma_init): Likewise. + (solaris_pragma_fini): Likewise. + +2010-02-19 Jakub Jelinek + + * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field): + Use XCNEW instead of xcalloc. + (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use + XNEW instead of xmalloc. + (get_fields): Use XNEWVEC instead of xmalloc. + + PR debug/43084 + * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't + populate vars array. + (create_new_general_access): For debug stmts just reset value. + (get_stmt_accesses): For accesses within debug stmts just record them + using add_access_to_acc_sites instead of preventing the peeling or + counting them as accesses. + + PR middle-end/42233 + * dojump.c (do_jump) : Invert priority. + +2010-02-19 Richard Guenther + + PR tree-optimization/42916 + * tree-vect-slp.c (vect_slp_analyze_bb): Count only real + instructions. + +2010-02-19 Andreas Schwab + + * configure.ac: Replace all uses of changequote in macro arguments + with proper quoting. + +2010-02-19 Jakub Jelinek + + PR middle-end/42233 + * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller. + +2010-02-19 Richard Guenther + + PR tree-optimization/42944 + * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage + test for aliasing with errno. + +2010-02-19 Jakub Jelinek + + PR middle-end/42233 + * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump, + do_jump_1, do_compare_rtx_and_jump): Add PROB argument. + * dojump.c: Include output.h. + (inv): New inline function. + (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump, + do_jump_by_parts_greater_rtx, do_jump_by_parts_greater, + do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx, + do_jump_by_parts_equality, do_compare_and_jump): Add PROB + argument, pass it down to other calls. + (do_compare_rtx_and_jump): Likewise. If PROB is not -1, + add REG_BR_PROB note to the conditional jump. + * cfgexpand.c (add_reg_br_prob_note): Removed. + (expand_gimple_cond): Don't call it, add the probability + as last argument to jumpif_1/jumpifnot_1. + * Makefile.in (dojump.o): Depend on output.h. + * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump + callers. + * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise. + * stmt.c (do_jump_if_equal): Likewise. + * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise. + * loop-unswitch.c (compare_and_jump_seq): Likewise. + * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): + Likewise. + * optabs.c (expand_doubleword_shift, expand_abs): Likewise. + * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and + jumpifnot_1 callers. + (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump + callers. + (store_expr): Adjust jumpifnot caller. + (store_constructor): Adjust jumpif caller. + + PR middle-end/42233 + * gimplify.c (gimple_boolify): For __builtin_expect call + gimple_boolify also on its first argument. + +2010-02-18 Uros Bizjak + + * configure.ac (gnu-unique-object): Wrap regexps using [] in + changequote block. + (__stack_chk_fail): Ditto. Remove quadrigraphs. + * configure: Regenerated. + +2010-02-18 Ulrich Weigand + + * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call + lang_hooks.types_compatible_p instead of comptypes. + +2010-02-18 Sebastian Huber + + * config/arm/lib1funcs.asm (__prefer_thumb__): New define. + (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant + if __prefer_thumb__ is defined. + +2010-02-18 Martin Jambor + + PR tree-optimization/43066 + * tree-sra.c (build_ref_for_offset_1): Return false on encountering an + array with zero-sized element type. + +2010-02-18 Jakub Jelinek + + * dwarf2out.c (add_var_loc_to_decl): Change last argument to + rtx, allocate struct var_loc_node here and return it to the + caller, and only if it is actually needed. + (dwarf2out_var_location): Adjust add_var_loc_to_decl caller, + move it earlier and return immediately if it returns NULL. + +2010-02-17 Mikael Pettersson + + * config/sparc/gas.h: New file. Restore + TARGET_ASM_NAMED_SECTION to its ELF default. + * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not + check !HAVE_GNU_AS. + * config/sparc/sparc.c (sparc_elf_asm_named_section): + Likewise. Add ATTRIBUTE_UNUSED to prototype. + * config.gcc (sparc*-*-linux*): Include sparc/gas.h + after sparc/sysv4.h. + +2010-02-17 Dave Korn + + * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name. + +2010-02-17 Steven Bosscher + + * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC + patterns from predicated pattern. + +2010-02-17 Uros Bizjak + + PR target/43103 + * config/i386/sse.md (xop_vpermil23): Use avxmodesuffixf2c + for insn mnemonic suffix. + +2010-02-17 Richard Guenther + + * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis + to loop PHI nodes. + +2010-02-17 Jakub Jelinek + + PR debug/42918 + * caller-save.c (save_call_clobbered_regs): If BB ends with + a DEBUG_INSN, move any notes in between last real insn and the last + DEBUG_INSN after the last DEBUG_INSN. + +2010-02-16 Joern Rennecke + + * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): + Fix return type. Fix argument type. Explain meaning of return value. + +2010-02-16 Richard Guenther + + PR tree-optimization/41043 + * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops. + (vrp_visit_assignment_or_call): Do not ask SCEV for regular + statements ... + (vrp_visit_phi_node): ... but only for loop PHI nodes. + +2010-02-16 Ira Rosen + + PR tree-optimization/43074 + * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New. + * tree-vect-loop.c (vect_analyze_loop_operations): Add + vectorizable cycles in hybrid SLP check. + * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. + +2010-02-16 Richard Guenther + + * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know. + (true_dependence): If memrefs_conflict_p computes must-alias + trust it. Move TBAA check after offset-based disambiguation. + (canon_true_dependence): Likewise. + +2010-02-16 Alexandre Oliva + + * params.def (PARAM_MAX_VARTRACK_SIZE): New. + * doc/invoke.texi: Document it. + * var-tracking.c: Include toplev.h and params.h. + (vt_find_locations): Return bool indicating success. Compute + hash sizes unconditionally. Check new parameter, report. + (variable_tracking_main_1): Check vt_find_locations results and + retry. Renamed from... + (variable_tracking_main): ... this. New wrapper to preserve + flag_var_tracking_assignments. + * Makefile.in (var-tracking.o): Adjust dependencies. + +2010-02-16 Jack Howarth + Jakub Jelinek + + PR target/42854 + * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute + if weak_import attribute is present. + * config/darwin.c (machopic_select_section): Likewise. + +2010-02-15 Joern Rennecke + + * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document. + (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise. + (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise. + (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise. + + * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument + types. + + * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): + Fix argument types. + + * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names. + Rewrite text to refer to the names. + +2010-02-15 Sebastian Pop + + * config/i386/i386-builtin-types.def + (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared. + (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared. + (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared. + (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared. + * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD, + IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and + IX86_BUILTIN_VPERMIL2PS256. + (MULTI_ARG_4_DF2_DI_I): Defined. + (MULTI_ARG_4_DF2_DI_I1): Defined. + (MULTI_ARG_4_SF2_SI_I): Defined. + (MULTI_ARG_4_SF2_SI_I1): Defined. + (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd, + __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and + __builtin_ia32_vpermil2ps256. + (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I, + MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and + MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments. + (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I, + MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and + MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3, + CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and + CODE_FOR_xop_vpermil2v8sf3. + * config/i386/i386.md (UNSPEC_VPERMIL2): Declared. + * config/i386/sse.md (xop_vpermil23): New insn pattern. + * config/i386/xopintrin.h (_mm_permute2_pd): New. + (_mm256_permute2_pd): New. + (_mm_permute2_ps): New. + (_mm256_permute2_ps): New. + +2010-02-15 Nick Clifton + + * config/h8300/h8300.c (h8300_push_pop): Use bool type for + boolean parameters. Use emit_jump_insn when emitting a pop + instruction containing a return insn. + (push): Use 'true' rather than '1' as second parameter to F. + (h8300_expand_prologue): Likewise. + Use 'true' and 'false' for boolean parameters to h8300_push_pop. + (h8300_expand_epilogue): Likewise. + +2010-02-15 Richard Guenther + + PR middle-end/43068 + * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset + if that is zero. + +2010-02-15 Nick Clifton + + * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous + delta. + +2010-02-14 Marco Poletti + + * intl.c (fake_ngettext): New function. + * intl.h (fake_ngettext): Declare. + (ngettext): Define macro. + * collect2.c (notice_translated): New function. + (main): Use notice_translated and ngettext. + * collect2.h (notice_translated): Declare. + +2010-02-14 Steven Bosscher + + * reorg.c (delete_computation): Comment fixes. + * caller-save.c (setup_save_areas): Idem. + * sel-sched-dump.c (dump_lv_set): Idem. + * rtl.def: Idem. + +2010-02-14 Andreas Krebbel + + * config/s390/s390.c (s390_sched_init): New function. + (TARGET_SCHED_INIT): Target hook defined. + +2010-02-12 Dave Korn + Jack Howarth + Iain Sandoe + + PR target/42982 + Partial revert of unintended change in fix for PR41605. + * config/darwin.h: Fix typo. + * config/darwin9.h: Same. + +2010-02-11 Jakub Jelinek + + * c-pch.c (pch_init): Clear v. + +2010-02-11 Sebastian Pop + + PR middle-end/42930 + * graphite-scop-detection.c (graphite_can_represent_scev): Call + graphite_can_represent_init for MULT_EXPR. + +2010-02-11 Sebastian Pop + + PR middle-end/42914 + PR middle-end/42530 + * graphite-sese-to-poly.c (remove_phi): New. + (translate_scalar_reduction_to_array): Call remove_phi. + +2010-02-11 Sebastian Pop + + PR middle-end/42771 + * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters. + * graphite-clast-to-gimple.h (gloog): Update declaration. + * graphite-poly.c (new_scop): Clear POLY_SCOP_P. + * graphite-poly.h (struct poly_bb): Add missing comments. + (struct scop): Add poly_scop_p field. + (POLY_SCOP_P): New. + * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P. + * graphite.c (graphite_transform_loops): Build the polyhedral + representation for each scop before code generation. + * sese.c (rename_variables_in_operand): Removed. + (rename_variables_in_expr): Return the renamed expression. + (rename_sese_parameters): New. + * sese.h (rename_sese_parameters): Declared. + +2010-02-11 Richard Guenther + + PR tree-optimization/42998 + * tree-ssa-pre.c (create_expression_by_pieces): Treat + POINTER_PLUS_EXPR properly. + +2010-02-11 Sebastian Pop + Changpeng Fang + + PR middle-end/40886 + * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement + the cost of an IV candidate when the IV is used in a test against zero. + + * gcc.dg/tree-ssa/ivopts-3.c: New. + +2010-02-11 Richard Guenther + + PR lto/41664 + * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize + pointer-vs-decl case by swapping refs. Handle some cases + of pointer-vs-decl disambiguations more conservatively. + * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p + to false after expanding. + +2010-02-11 Richard Guenther + + PR driver/43021 + * gcc.c (process_command): Handle LTO file@offset case more + appropriately. + +2010-02-11 Jakub Jelinek + + * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any + modifications outside of the DEBUG_INSN. Accept CLOBBERs inside + of DEBUG_INSNs. + (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs. + + * dwarf2out.c (mem_loc_descriptor) : Use DW_OP_deref_size + if MEM's mode size isn't DWARF2_ADDR_SIZE. + (mem_loc_descriptor) : Allow also VOIDmode arguments. + Optimize eq/ne comparisons when both arguments are known to be + zero-extended. + (mem_loc_descriptor) : Allow also VOIDmode arguments. + Don't mask operands unnecessarily if they are known to be already + zero-extended. + +2010-02-10 Vladimir Makarov + + * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note + instead of loop. + +2010-02-10 Richard Guenther + + PR tree-optimization/43017 + * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop + for wrapping signed arithmetic. + +2010-02-10 Jakub Jelinek + + PR debug/43010 + * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die + if no debug info should be emitted for it. + +2010-02-10 Kaz Kojima + + * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION + note when flag_exceptions is set. + +2010-02-10 Duncan Sands + + * Makefile.in (PLUGIN_HEADERS): Add debug.h. + +2010-02-10 Richard Guenther + + PR c/43007 + * tree.c (get_unwidened): Handle constants. + * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR. + +2010-02-10 Martin Jambor + + PR lto/42985 + * ipa-prop.c (ipa_update_after_lto_read): Count parameters and + check for variable argument counts independently. + +2010-02-10 Christian Bruel + + PR target/42841 + * config/sh/sh.c (find_barrier): Increase length for non delayed + conditional branches. + +2010-02-10 Christian Bruel + + * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting. + +2010-02-10 Jakub Jelinek + + * builtins.c (set_builtin_user_assembler_name): Also handle + ffs if int is smaller than word. + +2010-02-09 Vladimir Makarov + + PR middle-end/42973 + * ira-conflicts.c (get_dup): Remove. + (process_reg_shuffles): Add new parameter. Use it as an + additional guard for copy generation. + (add_insn_allocno_copies): Rewrite. + +2010-02-09 Alexander Monakov + + * common.opt (fsched2-use-traces): Preserved for backward + compatibility. + * doc/invoke.texi: Remove the documentation about option + -fsched2-use-traces. + * sched-rgn.c (rest_of_handle_sched2): Remove usage of + flag_sched2_use_traces. + * opts.c (common_handle_option): Add OPT_fsched2_use_traces to + the backward compatibility flag section. + +2010-02-09 Richard Guenther + + PR tree-optimization/43008 + * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl, + make HEAP variables initialized from global memory if they + are not known builtin functions. + (find_func_aliases): Adjust. + +2010-02-09 Richard Guenther + + PR tree-optimization/43000 + * tree-vrp.c (vrp_int_const_binop): Only handle unsigned + arithmetic manually. + +2010-02-08 Jakub Jelinek + + PR tree-optimization/42931 + * tree-loop-linear.c (try_interchange_loops): Don't call + double_int_mul if estimated_loop_iterations failed. + +2010-02-08 Martin Jambor + + PR middle-end/42898 + * tree-sra.c (build_accesses_from_assign): Do not mark in + should_scalarize_away_bitmap if stmt has volatile ops. + (sra_modify_assign): Do not process assigns piecemeal if if stmt + has volatile ops. + +2010-02-08 Joern Rennecke + + * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document. + +2010-02-07 Adam Nemet + + * config/mips/mips.md (*_trunc_exts): Fix comment + before the pattern. + +2010-02-07 Andrew Pinski + + PR middle-end/42946 + * df-core.c (df_finish_pass): Change type of saved_flags to int. + +2010-02-07 Sebastian Pop + + PR middle-end/42988 + * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND + to unknown_dependence. + (graphite_legal_transform_dr): Handle the unknown_dependence. + (graphite_carried_dependence_level_k): Same. + +2010-02-07 Sebastian Pop + + * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/. + +2010-02-07 Richard Guenther + + PR middle-end/42991 + * expr.c (get_inner_reference): Always initialize *pbitsize. + +2010-02-07 Richard Guenther + + PR middle-end/42956 + * gimplify.c (gimple_fold_indirect_ref): Avoid generating + new ARRAY_REFs on variable size element or minimal index arrays. + Complete. + * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use + gimple_fold_indirect_ref. + +2010-02-06 Richard Earnshaw + + PR target/42957 + * arm.c (arm_override_options): Just return if the user has specified + an invalid fpu name. + +2010-02-03 Jason Merrill + + PR c++/42870 + * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call + i386_pe_maybe_record_exported_symbol. + +2010-02-05 Steve Ellcey + + PR target/42924 + * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine. + (pa_delegitimize_address): New function. + +2010-02-05 Ozkan Sezer + + * config/i386/msformat-c.c (ms_printf_length_specs): Set the + scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs. + +2010-02-05 Richard Guenther + + PR lto/42762 + * lto-streamer-in.c (get_resolution): Deal with references + to undefined functions. + +2010-02-05 Richard Guenther + + * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions. + (fold_const_aggregate_ref): Likewise. + (ccp_fold_stmt): Substitute loads. + (maybe_fold_reference): Verify types before substituting. + Unshare properly. + (fold_gimple_assign): Unshare properly. + (fold_stmt_1): Insert conversion if necessary before replacing the RHS. + +2010-02-05 Nathan Froyd + + * config/rs6000/rs6000.c (rs6000_override_options): Invert check + for rs6000_gen_cell_microcode. + +2010-02-04 Richard Guenther + + PR rtl-optimization/42952 + * dse.c (const_or_frame_p): Remove MEM handling. + +2010-02-04 Nick Clifton + + * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define. + (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define. + (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM. + (mn10300_asm_output_mi_thunk): New function. + (mn10300_can_output_mu_thunk): New function. + * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define. + (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1. + (FUNCTION_ARG): Delete incorrect comment. + +2010-02-03 Jason Merrill + + PR c++/40138 + * fold-const.c (operand_equal_p): Handle erroneous types. + +2010-02-03 Kaushik Phatak + + * config/h8300/h8300.md (can_delay): Fix attibute condition. + +2010-02-03 Vladimir Makarov + + PR rtl-optimization/42941 + * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead + of xmalloc. + +2010-02-03 Jason Merrill + + PR c++/35652 + * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics. + +2010-02-03 Alexandre Oliva + + PR debug/42896 + * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash. + (cselib_reset_table): Renamed from... + (cselib_reset_table_with_next_value): ... this. + (cselib_get_next_uid): Renamed from... + (cselib_get_next_unknown_value): ... this. + * cselib.c (next_uid): Renamed from... + (next_unknown_value): ... this. + (cselib_clear_table): Adjust. + (cselib_reset_table): Adjust. Renamed from... + (cselib_reset_table_with_next_value): ... this. + (cselib_get_next_uid): Adjust. Renamed from... + (cselib_get_next_unknown_value): ... this. + (get_value_hash): Use hash. + (cselib_hash_rtx): Likewise. + (new_cselib_val): Adjust. Set and dump uid. + (cselib_lookup_mem): Pass next_uid as hash. + (cselib_subst_to_values): Likewise. + (cselib_log_lookup): Dump uid. + (cselib_lookup): Pass next_uid as hash. Adjust. + (cselib_process_insn): Adjust. + (cselib_init): Initialize next_uid. + (cselib_finish): Adjust. + (dump_cselib_table): Likewise. + * dse.c (canon_address): Dump value uid. + * print-rtl.c (print_rtx): Print value uid. + * var-tracking.c (VARIABLE_HASH_VAL): Dropped. + (dvuid): New type. + (dv_uid): New function, sort of renamed from... + (dv_htab_hash): ... this, reimplemented in terms of it and... + (dv_uid2hash): ... this. New. + (variable_htab_eq): Drop excess assertions. + (tie_break_pointers): Removed. + (canon_value_cmp): Compare uids. + (variable_post_merge_New_vals): Print uids. + (vt_add_function_parameters): Adjust. + (vt_initialize): Reset table. Adjust. + +2010-02-03 Richard Guenther + + PR tree-optimization/42944 + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc. + (call_may_clobber_ref_p_1): Likewise. Properly handle + malloc and calloc clobbering errno. + +2010-02-03 Steven Bosscher + + * doc/invoke.texi: Fix name of sched1 dump. + + * opts.c (decode_options): Set flag_tree_switch_conversion + only conditionally on optimize >= 2. + + * gcse.c: Assorted comment fixes in pass description. + +2010-02-03 Anthony Green + + * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce + nop padding in order to maintain alignment of storage location of + target function address. + (moxie_trampoline_init): Store target function address at newly + aligned location. + * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment + to 32. + (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding. + +2010-02-03 Richard Guenther + + PR middle-end/42927 + * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification. + +2010-02-03 Rainer Orth + + * config.gcc: Reenable check for obsolete targets. + Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*, + mips-sgi-irix6.[0-4]*. + +2010-02-02 Nick Clifton + + * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum + constant size of 4 as being the same as 0. + * doc/invoke.texi (RX Options): Document that -mmax-constant-size + can take values in the range 0..4. + +2010-02-02 Jack Howarth + + PR java/41991 + * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction() + as _darwin10_Unwind_FindEnclosingFunction(). + * libgcc-libsystem.ver: New. + +2010-02-01 Vladimir Makarov + + PR target/41399 + * sched-deps.c (sched_analyze_insn): Ignore fixed registers for + implicitly set registers. + +2010-02-01 Richard Earnshaw + + * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K. + (arm_override_options): Allow automatic selection of the thread + pointer register if thumb2. + (legitimize_pic_address): Improve code sequences for Thumb2. + (arm_call_tls_get_addr): Likewise. + (legitimize_tls_address): Likewise. + * arm.md (pic_load_addr_arm): Delete. Replace with ... + (pic_load_addr_32bit): ... this. New named pattern. + * thumb2.md (pic_load_addr_thumb2): Delete. + (pic_load_dot_plus_four): Delete. + (tls_load_dot_plus_four): New named pattern. + +2010-02-01 Rainer Orth + + PR libgomp/29986 + * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry. + Document fix for TLS bug. + +2010-01-31 Richard Guenther + + * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be + conservatively correct. + +2010-01-31 John David Anglin + + PR target/42850 + Revert: + 2010-01-02 John David Anglin + + * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two. + +2010-01-31 Kaveh R. Ghazi + + * doc/install.texi: Update recommended GMP/MPFR/MPC versions. + +2010-01-31 Kai Tietz + + * config.gcc: Adjust order of makefile fragments for mingw targets. + +2010-01-31 Richard Guenther + + PR middle-end/42898 + * gimplify.c (gimplify_init_constructor): For volatile LHS + initialize a temporary. + +2010-01-31 Matthias Klose + + * configure.ac: Fix __stack_chk_fail check for cross builds configured + --with-headers + * configure: Regenerate. + +2010-01-29 Eric Botcazou + + * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have + the same alias set and their sizes different constantness. + (aliasing_component_refs_p): Revert 2009-10-24 change. + +2010-01-29 Rainer Orth + + * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl + unused. + +2010-01-29 Richard Guenther + + * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute. + Assert we successfully updated the call. + +2010-01-29 Jakub Jelinek + + PR rtl-optimization/42889 + * df.h (df_set_bb_dirty_nonlr): New prototype. + * df-core.c (df_set_bb_dirty_nonlr): New function. + * df-scan.c (df_insn_rescan): Call it instead of + df_set_bb_dirty for DEBUG_INSNs. + +2010-01-29 Richard Guenther + + PR middle-end/37448 + * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid + quadratic behavior in most cases. + +2010-01-28 Uros Bizjak + + PR target/42891 + * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode + in the call to gen_x86_movsicc_0_m1. + +2010-01-28 Richard Guenther + + PR tree-optimization/42871 + * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders. + +2010-01-28 Richard Guenther + + * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate + into call arguments. + +2010-01-28 Richard Guenther + + PR middle-end/42883 + * tree-cfgcleanup.c (remove_forwarder_block): Do not remove + the forwarder if the destination is an EH landing pad. + +2010-01-28 Razya Ladelsky + + * tree-parloops.c (transform_to_exit_first_loop): Update the basic + block list passed to gimple_duplicate_sese_tail. + (parallelize_loops): Avoid parallelization when the function + has_nonlocal_label. + Avoid parallelization when the preheader is IRREDUCIBLE. + Try to optimize when estimated_loop_iterations_int is unresolved. + Add the loop's location to the dump file. + * tree-cfg.c (add_phi_args_after_redirect): Remove. + (gimple_duplicate_sese_tail): Remove the check for the latch. + Redirect nexits to the exit block. + Remove handling of the incoming edges to the latch. + Redirect the backedge from the copied latch to the exit bb. + +2010-01-28 Michael Matz + + PR target/42881 + * config/i386/i386.c (ix86_expand_vector_init_duplicate): + Wrap force_reg into a sequence, emit it before user. + +2010-01-28 Stephen Thomas + + * config/arm/arm.md (bswapsi2): Add support for bswapsi2. + (arm_rev): New. + (arm_legacy_rev): Likewise. + (thumb_legacy_rev): Likewise. + +2010-01-27 Jakub Jelinek + + * dwarf2out.c (mem_loc_descriptor): Remove special casing of + CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call + on MEM's address failed, try avoid_constant_pool_reference and + recurse if it returned something different. + (loc_descriptor): If for MEM mem_loc_descriptor failed on the + address, try avoid_constant_pool_reference and recurse if it + returned something different. + (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the + address and avoid_constant_pool_reference returned something + different, don't set have_address. + +2010-01-27 Alexandre Oliva + + PR debug/42861 + * var-tracking.c (val_store): Add modified argument, obey it. + Adjust callers. + (count_uses): Move down logging of main. + (compute_bb_dataflow): Use val_store for MO_VAL_USEs that + don't need resolution. + (emit_notes_in_bb): Likewise. + +2010-01-27 Richard Guenther + + PR middle-end/42878 + * tree-inline.c (remap_decl): Delay remapping of SSA name + default definitions until we need them. + +2010-01-27 Jakub Jelinek + + * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine. + (rs6000_delegitimize_address): New function. + + * config/s390/s390.c (s390_delegitimize_address): Call + delegitimize_mem_from_attrs. + + PR middle-end/42874 + * tree-inline.c (cannot_copy_type_1): Removed. + (copy_forbidden): Don't forbid copying of functions containing + records/unions with variable length fields. + +2010-01-27 Christian Bruel + + Revert: + PR target/42841 + * config/sh/sh.c (find_barrier): Increase length for non delayed + conditional branches. + +2010-01-27 Matthias Klose + + * configure.ac (gnu-unique-object): Fix ldd version check. + * configure: Regenerate. + +2010-01-26 Rainer Orth + + * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for + HAVE_GNU_AS value. + * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION): + Test for HAVE_GNU_AS value. + +2010-01-26 Rainer Orth + + * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint. + * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE, + INT64_TYPE): Define. + (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define. + (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, + INT_LEAST64_TYPE): Define. + (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE, + UINT_LEAST64_TYPE): Define. + (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE) + INT_FAST64_TYPE): Define. + (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, + UINT_FAST64_TYPE): Define. + (INTMAX_TYPE, UINTMAX_TYPE): Define. + (INTPTR_TYPE, UINTPTR_TYPE): Define. + (SIG_ATOMIC_TYPE): Define. + +2010-01-26 Richard Guenther + + * df-scan.c (df_scan_set_bb_info): Remove assert. + (df_insn_rescan_debug_internal): Merge asserts. + (df_install_ref): Likewise. + (df_mark_reg): Use bitmap_set_range. + (df_hard_reg_used_p): Remove assert. + (df_hard_reg_used_count): Likewise. + +2010-01-26 Richard Guenther + + PR rtl-optimization/42685 + * web.c (web_main): Ignore DEBUG_INSNs. + +2010-01-26 Joern Rennecke + + * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments. + + (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter. + Fix types of fndecl and arglist parameters. + +2010-01-26 Richard Guenther + + PR middle-end/42806 + * tree-eh.c (unsplit_eh): Skip debug insns. + +2010-01-26 Richard Guenther + + PR tree-optimization/42250 + * ipa-type-escape.c (type_escape_execute): Do not analyze clones. + +2010-01-26 Jakub Jelinek + + PR fortran/42866 + * omp-low.c (expand_omp_sections): Only use single_pred if + l2_bb is single_pred_p. + +2010-01-25 Christian Bruel + + PR target/42841 + * config/sh/sh.c (find_barrier): Increase length for non delayed + conditional branches. + (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P. + +2010-01-24 David S. Miller + + * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only + define if not using GAS. + * config/sparc/sparc.c (sparc_elf_asm_named_section): + Likewise. Delete SECTION_MERGE code, which is only applicable + when using GAS. + +2010-01-24 Mark Mitchell + + PR c++/42748 + * config/arm/arm.c (arm_mangle_type): Do not warn about changes to + mangling of va_list in system headers. + +2010-01-23 Toon Moene + + * tree-predcom.c (combine_chains): Return NULL, not false. + +2010-01-23 Joern Rennecke + + * tree-loop-distribution.c (distribute_loop): Fix declaration and + initialization of variable res to agree with return type. + +2010-01-22 Steve Ellcey + + * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency. + * tree-sra.c: Add include of expr.h. + +2010-01-22 Jakub Jelinek + + * tree-into-ssa.c (maybe_register_def): If stmt ends the bb, + insert the debug stmt on the single non-EH edge from the stmt. + +2010-01-22 Richard Henderson + + PR tree-opt/42833 + * tree-sra.c (sra_modify_assign): Delay re-gimplification of + the RHS until after generate_subtree_copies has insertted its + code before the current statement. + +2010-01-22 Joern Rennecke + + * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type. + + * gcc-plugin.h (plugin_init): Use "C" likage for c++. + +2010-01-21 Martin Jambor + + PR tree-optimization/42585 + * tree-sra.c (struct access): New field grp_total_scalarization. + (dump_access): Dump the new field. + (should_scalarize_away_bitmap): New variable. + (cannot_scalarize_away_bitmap): Likewise. + (sra_initialize): Allocate new bitmaps. + (sra_deinitialize): Free new bitmaps. + (create_access_1): New function. + (create_access): Parts moved to create_access_1. + (type_consists_of_records_p): New function. + (completely_scalarize_record): Likewise. + (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap. + (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap. + (sort_and_splice_var_accesses): Hint groups with a total_scalarization + access. + (analyze_all_variable_accesses): Completely scalarize small eligible + records. + +2010-01-21 Martin Jambor + + * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields. + +2010-01-21 Andrew Haley + + * gcc.c (process_command): Move lang_specific_driver before + setting cc_libexec_prefix. + +2010-01-21 Richard Guenther + + PR middle-end/19988 + * fold-const.c (negate_expr_p): Pretend only negative + real constants are easily negatable. + +2010-01-20 Janis Johnson + Jason Merrill + + * tree.h (TYPE_TRANSPARENT_UNION): Replace with ... + (TYPE_TRANSPARENT_AGGR): this, for union and record. + * calls.c (initialize argument_information): Handle it. + * c-common.c (handle_transparent_union_attribute): Use new name. + * c-decl.c (finish_struct): Ditto. + * c-typeck.c (type_lists_compatible_p): Ditto. + (convert_for_assignment): Use new name and also handle record. + * function.c (aggregate_value_p): Handle it. + (pass_by_reference): Ditto. + (assign_parm_data_types): Ditto. + * print-tree.c (print_node): Ditto. + * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto. + * lto-streamer-out.c (pack_ts_type_value_fields): Ditto. + * tree.c (first_field): New fn. + +2010-01-21 Dave Korn + + PR target/42818 + * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers, + even when linking statically, for now. + +2010-01-20 Alexandre Oliva + + PR debug/42715 + * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set + without a cselib val. + (count_uses): Accept MO_VAL_SET with no val on stores. + (add_stores): Likewise. + +2010-01-20 Jakub Jelinek + + * var-tracking.c (check_value_val): Add a compile time assertion. + (dv_is_decl_p): Simplify. + (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use + gcc_assert if ENABLE_CHECKING. + +2010-01-20 Alexandre Oliva + + PR debug/42782 + * var-tracking.c: Include tree-flow.h. + (mem_dies_at_call): New. + (dataflow_set_preserve_mem_locs): Use it. + (dataflow_set_remove_mem_locs): Likewise. + (dump_var): Renamed from dump_variable. Adjust all callers. + (dump_var_slot): Renamed from dump_variable_slot. Likewise. + * Makefile.in (var-tracking.o): Adjust deps. + +2010-01-20 Joern Rennecke + + * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list. + +2010-01-20 Richard Guenther + + PR tree-optimization/42717 + * tree-ssa-dce.c (get_live_post_dom): Remove. + (forward_edge_to_pdom): Take an arbitrary edge to copy + degenerate PHI args from. + (remove_dead_stmt): Use the first post-dominator even if it + does not contain live statements as redirection destination. + +2010-01-20 Richard Guenther + + * tree-inline.c (estimate_num_insns): Handle EH builtins. + +2010-01-20 Jakub Jelinek + + * sel-sched.c (create_speculation_check): Remove set but not used + variable twin. + (try_transformation_cache): Remove set but not used variable ds. + (calculate_privileged_insns): Remove set but not used variables + cur_insn and min_spec_insn. + (find_best_expr): Remove set but not used variable avail_n. + * tree-predcom.c (base_names_in_chain_on): Remove set but not used + variable e. + * cgraphunit.c (assemble_thunk): Remove set but not used variable + false_label. + * haifa-sched.c (remove_notes): Remove set but not used variable prev. + * graphite-clast-to-gimple.c (gloog): Remove set but not used variable + new_scop_exit_edge. + +2010-01-20 Felyza Wishbringer + + PR bootstrap/42786 + * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx + cpu types. Add support for *-sse3 cpu types. + (x86_64-*-*): Ditto. + +2010-01-20 Jakub Jelinek + + PR middle-end/42803 + * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE + argument, call initializer_constant_valid_p_1 instead of + initializer_constant_valid_p, pass CACHE to it, return NULL + immediately if first call returns NULL. + (initializer_constant_valid_p_1): New function. + (initializer_constant_valid_p): Use it. + +2010-01-20 Thomas Quinot + + * tree.def (PLACEHOLDER_EXPR): Fix comment. + +2010-01-20 Jakub Jelinek + + * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead + of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}. + (loc_list_from_tree): Don't handle unsigned division. Handle + signed modulo using DW_OP_{over,over,div,mul,minus}. + * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned + modulo instead of signed. + +2010-01-20 DJ Delorie + + * config/h8300/h8300.c (F): Add "in_epilogue" flag. + (Fpa): Pass it + (h8300_emit_stack_adjustment): Propogate it. + (push): Pass it. + (h8300_expand_prologue): Likewise. + (h8300_expand_epilogue): Likewise. + +2010-01-19 Michael Matz + + PR tree-optimization/41783 + * tree-data-ref.c (toplevel): Include flags.h. + (dump_data_dependence_relation): Also dump the inputs if the + result will be unknown. + (split_constant_offset_1): Look through some conversions. + * tree-predcom.c (determine_roots_comp): Restart a new chain if + the offset from last element is too large. + (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF. + (reassociate_to_the_same_stmt): Handle vector registers. + * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations + (e.g. conversions). + * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add + wide_prolog_niters argument, emit widening instructions. + (vect_do_peeling_for_alignment): Adjust caller, use widened + variant of the iteration cound. + * Makefile.in (tree-data-ref.o): Add $(FLAGS_H). + +2010-01-19 Ramana Radhakrishnan + + PR target/38697 + * config/arm/neon-testgen.m (emit_automatics): New parameter + features. Adjust for Fixed_return_reg feature. + (test_intrinsic): Call emit_automatics with new feature. + * config/arm/neon.ml: Update copyright years. + (features): New Fixed_return_reg feature. + (ops): Update feature for Vget_low. + +2010-01-19 Jakub Jelinek + + PR tree-optimization/42719 + * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug + stmt uses. + + PR debug/42728 + * fwprop.c (all_uses_available_at): Return false if def_set dest + is a REG that is used in def_insn. + +2010-01-19 Joern Rennecke + + * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names. + + (TARGET_CC_MODES_COMPATIBLE): Put return value in braces. + Add argument names. + + (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language. + + * target.h (struct gcc_target) : Change type + of last argument to secondary_reload_info *. + +2010-01-18 Uros Bizjak + + PR target/42774 + * config/alpha/predicates.md (aligned_memory_operand): Return 0 for + memory references with unaligned offsets. Remove CQImode handling. + (unaligned_memory_operand): Return 1 for memory references with + unaligned offsets. Remove CQImode handling. + +2010-01-18 Richard Guenther + + PR middle-end/39954 + * cfgexpand.c (expand_call_stmt): TER pointer arguments in + builtin calls. + +2010-01-18 Richard Guenther + + PR tree-optimization/42781 + * tree-ssa-structalias.c (find_what_var_points_to): Skip + restrict processing only if the original variable was artificial. + +2010-01-18 Joern Rennecke + + * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to + find number of popped argument bytes. + + (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces. + Fix the text that describes the return value for invalid insns. + + (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list. + + (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types. + Clarify what 'cost of the -dependence' is. Fix quoting. + + * toplev.c (default_get_pch_validity): Rename argument to "sz". + * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise. + +2010-01-17 Jakub Jelinek + + * dwarf2out.c (mem_loc_descriptor): Don't ICE on + {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}. + +2010-01-17 Richard Guenther + + PR middle-end/42248 + * function.c (split_complex_args): Take a VEC to modify. + (assign_parms_augmented_arg_list): Build a VEC instead of + a chain of PARM_DECLs. + (assign_parms_unsplit_complex): Take a VEC of arguments. + Do not fixup unmodified parms. + (assign_parms): Deal with the VEC. + (gimplify_parameters): Likewise. + +2010-01-17 Richard Guenther + + * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI + node existence check. + * tree-vect-loop.c (vect_analyze_loop_form): Likewise. + * tree-cfgcleanup.c (merge_phi_nodes): Likewise. + * tree-ssa-dce.c (forward_edge_to_pdom): Likewise. + * tree-cfg.c (gimple_execute_on_growing_pred): Likewise. + (gimple_execute_on_growing_pred): Likewise. + +2010-01-17 Richard Guenther + + PR tree-optimization/42773 + * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence. + (compute_antic_aux): Likewise. + (compute_partial_antic_aux): Likewise. + +2010-01-17 Jie Zhang + + PR debug/42767 + * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE + and US_TRUNCATE. + +2010-01-17 Joern Rennecke + + * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of + appearance. + + (TARGET_LEGITIMATE_ADDRESS_P): Add return type. + Fix markup for strict argument. + + (TARGET_SCHED_REORDER2): Fix argument types. + + (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type. + (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise. + + (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name. + (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise. + + (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): + Add argument name. + + (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation. + (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise. + (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise. + (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise. + (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise. + + (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo. + + (TARGET_SCHED_GEN_SPEC_CHECK): Fix name. + + (TARGET_ASM_RELOC_RW_MASK): Add return type. + (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type. + + (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter. + + (TARGET_ASM_FILE_START): Put @findex before paragraph start. + Use prototype. + + (TARGET_ASM_NAMED_SECTION): Fix argument list. + + (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr. + (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise. + + (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr. + + (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types. + + (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup + referring to it. Fix language. + + (TARGET_HAVE_CTORS_DTORS): Use @deftypevr. + + (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument. + + (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types. + + (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument. + + (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and + '@var{stream}. Remove stray 'and'. + + (TARGET_ARM_EABI_UNWINDER): Use @deftypevr. + + (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument. + + (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article. + + (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was + misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P. + + (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces. + Fix description of return value. + Rename argument "sz" to "len." + + (TARGET_CXX_GUARD_MASK_BIT): Add missing article. + Clarify meaning of 'true' return value. + + (TARGET_SHIFT_TRUNCATION_MASK): Fix return type. + + (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of + rep_mode versus mode_rep. + + (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document. + + (TARGET_BUILTIN_DECL): Fix name. + + (TARGET_COMMUTATIVE_P): Fix type of first argument. + + (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL. + + (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type. + + (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook. + + (TARGET_RELAXED_ORDERING): Use @deftypevr. + + (TARGET_GET_DRAP_RTX): Note that this is a hook. + Clarify language. + + (TARGET_BUILTIN_RECIPROCAL): Fix argument types. + Rename argument tm_fn to md_fn. + + (TARGET_OPTION_PRINT): Fix argument list. + +2010-01-16 Harsha Jagasia + + PR target/42664 + * config/i386/i386.c (ix86_fixup_binary_operands): + Revert FMA4 fixup of operands. + +2010-01-16 Ralf Wildenhues + + PR gcc/42525 + * Makefile.in (write_entries_to_file, install-plugin): + Use \012 instead of \n with tr. + +2010-01-16 Richard Sandiford + + * configure.ac (HAVE_AS_REF): New C macro. + * configure: Regenerate. + * config.in: Likewise. + * collect2.c (main): Only postpone SCAN_DWEH to the second pass + if HAVE_AS_REF. + * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define + if HAVE_AS_REF. + +2010-01-16 Joern Rennecke + + * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types. + + (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types. + + (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types. + + (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces. + + (TARGET_IN_SMALL_DATA_P): Fix argument type. + + (TARGET_BINDS_LOCAL_P): Fix argument type. + + (TARGET_ASM_FILE_END): Use prototype. + + (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces. + + (TARGET_DWARF_CALLING_CONVENTION): Fix argument type. + + (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types. + + (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type. + + (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces. + (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise. + + (TARGET_PCH_VALID_P): Put 'const char *' in braces. + (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise. + + (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces. + (TARGET_ADDR_SPACE_SUBSET_P): Likewise. + (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces. + (TARGET_ADDR_SPACE_CONVERT): Likewise. + + (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces. + + (TARGET_MACHINE_DEPENDENT_REORG: Use prototype. + + (TARGET_INIT_BUILTINS): Use prototype. + + (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN): + Put 'const char *' in braces. Fix parameter types. + (TARGET_INVALID_CONVERSION): Fix parameter types. + (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise. + (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise. + + (TARGET_PROMOTED_TYPE): Remove braces around 'tree'. + Fix argument type. + + (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'. + + (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'. + +2010-01-15 Joern Rennecke + + * doc/tm.texi (TARGET_HELP): Fix return type. + + (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode' + in braces. Fix argument types. + + (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype. + + (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype. + + (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type. + + (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces. + (TARGET_FIXED_POINT_SUPPORTED_P): Likewise. + + (TARGET_MANGLE_TYPE): Fix argument types. + + (TARGET_IRA_COVER_CLASSES): Use prototype. + + (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype. + + (TARGET_CAN_ELIMINATE): Use identifiers for argument names. + + (TARGET_PROMOTE_PROTOTYPES): Fix argument type. + + (TARGET_MUST_PASS_IN_STACK): Fix argument type. + + (TARGET_CALLEE_COPIES): Fix argument types. + + (TARGET_SPLIT_COMPLEX_ARG): Fix argument type. + + (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types. + + (TARGET_FUNCTION_VALUE): Fix argument types. + + (TARGET_RETURN_IN_MSB): Fix argument type. + + (TARGET_RETURN_IN_MEMORY): Fix argument types. + + (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types. + + (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type. + + (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text + agree with return type. + + (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype. + +2010-01-15 Jing Yu + + PR rtl-optimization/42691 + * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set + a pseudo to a constant and are merged, and adjust comments. + +2010-01-15 Eric Botcazou + + * config/i386/sse.md (avx_vperm2f1283): Fix typo. + +2010-01-15 Richard Guenther + + PR middle-end/42739 + * tree-cfgcleanup.c (remove_forwarder_block): Move destination + labels of computed or non-local gotos to the destination. + * tree-cfg.c (gimple_verify_flow_info): Verify that a EH + landing pad label is the first label. + +2010-01-15 Richard Guenther + + * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru. + +2010-01-14 Michael Meissner + + PR target/42747 + * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn + to allow generation of the xssqrtdp instruction on power7. + (sqrtdf2_fpr): Ditto. + +2010-01-14 Jakub Jelinek + + PR middle-end/42674 + * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in + functions with noreturn attribute. + + PR c++/42608 + * varasm.c (declare_weak): Add weak attribute to decl if it + doesn't have one already. + (assemble_external): Only add decls to weak_decls if they also + have weak attribute. + +2010-01-14 Alexandre Oliva + + * var-tracking.c (var_reg_delete): Don't delete the association + between REGs and values or one-part variables if the register + isn't clobbered. + +2010-01-14 Jakub Jelinek + + PR debug/42657 + * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just + because its first operand is a non-localized variable. + +2010-01-14 Martin Jambor + + PR tree-optimization/42706 + * tree-sra.c (encountered_recursive_call): New variable. + (encountered_unchangable_recursive_call): Likewise. + (sra_initialize): Initialize both new variables. + (callsite_has_enough_arguments_p): New function. + (scan_function): Call decl and flags check only for IPA-SRA, check + whether there is a recursive call and whether it has enough arguments. + (all_callers_have_enough_arguments_p): New function. + (convert_callers): Look for recursive calls only when + encountered_recursive_call is set. + (ipa_early_sra): Bail out either if + !all_callers_have_enough_arguments_p or + encountered_unchangable_recursive_call. + +2010-01-14 Alexander Monakov + + * sel-sched.c: Add 2010 to copyright years. + * sel-sched-ir.c: Likewise. + * sel-sched-ir.h: Likewise. + +2010-01-14 Martin Jambor + + PR tree-optimization/42714 + * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type + constructors specially. + +2010-01-14 Andi Kleen + + * config/i386/drivers-i386.c (detect_caches_intel): + Add l2sizekb parameter and fill in. + (host_detect_local_cpu): Add l2sizekb, fill in. + Add Atom small cache heuristic. + +2010-01-14 Andi Kleen + + * config/i386/drivers-i386.c (detect_caches_cpuid4): + Add level3 parameter and fill in. + (detect_caches_intel): Handle level3 cache. + +2010-01-14 Andi Kleen + + * config/i386/drivers-i386.c (host_detect_local_cpu): + Fix core duo detection. + +2010-01-14 Andi Kleen + + * config/i386/drivers-i386.c (host_detect_local_cpu): + Fix Atom detection. + +2010-01-14 Alexander Monakov + + * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to... + (rs6000_variable_issue_1): this. Use... + (rs6000_variable_issue): here. Reimplement. Print debug info. + +2010-01-14 Alexander Monakov + + * sel-sched-ir.c (sel_restore_other_notes): Rename to + sel_restore_notes. Update all callers. Call reemit_notes + for all insns. + +2010-01-14 Andrey Belevantsev + + PR rtl-optimization/42246 + * sel-sched-ir.h (get_all_loop_exits): Include exits from inner + loops. + +2010-01-14 Andrey Belevantsev + + * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of + all successors is the same as number of successors in current region. + +2010-01-14 Alexander Monakov + + * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression + to rename is not separable. Otherwise check that its LHS is not NULL. + +2010-01-14 Alexander Monakov + + * sel-sched.c (choose_best_reg_1): Loop over all regs for mode. + +2010-01-14 Alexander Monakov + + * sel-sched.c (mark_unavailable_hard_regs): Do not try to search + available registers when failed to discover LHS register class. + Fix indentation. Update comment. + +2010-01-14 Andrey Belevantsev + Alexander Monakov + + PR rtl-optimization/42389 + * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE + to can_issue_more. + (advance_state_on_fence): Likewise. + (sel_target_adjust_priority): Print debug output only when + sched_verbose >= 4, not 2. + (get_expr_cost): Do not issue all unique insns on the next cycle. + (fill_insns): Initialize can_issue_more from the value saved + with the fence. + * sel-sched-ir.c (flist_add): New parameter issue_more. + Init FENCE_ISSUE_MORE with it. + (merge_fences): Likewise. + (init_fences): Update call to flist_add. + (add_to_fences, add_clean_fence_to_fences) + (add_dirty_fence_to_fences): Likewise. + (move_fence_to_fences): Update call to merge_fences. + (invoke_reorder_hooks): Do not reset can_issue_more on insns from + sched groups. + * sel-sched-ir.h (struct _fence): New field issue_more. + (FENCE_ISSUE_MORE): New accessor macro. + +2010-01-14 Andrey Belevantsev + + PR rtl-optimization/42388 + * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks + that have no predecessors nor successors. Do not call move_bb_info + for empty blocks outside of current region. + +2010-01-14 Alexander Monakov + + PR rtl-optimization/42294 + * sel-sched-ir.h (struct _sel_insn_data): Update comment. + * sel-sched.c (move_exprs_to_boundary): Transitively add all + originators' originators. + +2010-01-14 Alexander Monakov + + PR rtl-optimization/39453 + PR rtl-optimization/42246 + * sel-sched-ir.c (considered_for_pipelining_p): Do not test + for pipelining_p. + (sel_add_loop_preheaders): Add preheader to last_added_blocks. + +2010-01-14 Andrey Belevantsev + Alexander Monakov + + PR middle-end/42245 + * sel-sched-ir.c (sel_recompute_toporder): New. Use it... + (maybe_tidy_empty_bb): ... here. Make static. Add new + argument. Update all callers. + (tidy_control_flow): ... and here. Recompute topological order + of basic blocks in region if necessary. + (sel_redirect_edge_and_branch): Change return type. Return true + if topological order might have been invalidated. + (purge_empty_blocks): Export and move from... + * sel-sched.c (purge_empty_blocks): ... here. + * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype. + (maybe_tidy_empty_bb): Delete prototype. + (purge_empty_blocks): Declare. + +2010-01-14 Andrey Belevantsev + + PR rtl-optimization/42249 + * sel-sched.c (try_replace_dest_reg): When chosen register + and original register is the same, do not bail out early, but + still check all original insns for validity of replacing destination + register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function + in this case. + +2010-01-14 Jakub Jelinek + + PR c/42721 + Port from no-undefined-overflow branch: + 2009-03-09 Richard Guenther + + * fold-const.c (add_double_with_sign): Fix unsigned overflow detection. + +2010-01-14 Richard Guenther + + PR lto/42665 + * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node. + +2010-01-14 Ira Rosen + + PR tree-optimization/42709 + * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type + as scalar type in creation of constant vector operand. + +2010-01-14 Ralf Wildenhues + + PR testsuite/42414 + * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%) + (check-parallel-%): Match `testsuite' directory component only + at the end. + +2010-01-14 Shujing Zhao + + PR translation/39521 + * gcc.c (do_spec_1): Wrapped the error and notice messages of specs + strings with _(). + +2010-01-13 Richard Guenther + + PR tree-optimization/42730 + * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for + offset zero. + +2010-01-13 Steve Ellcey + + PR target/pr42542 + * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT + for V2SI by subtracting (-(INT MAX) - 1) from both operands to make + them signed. + +2010-01-13 Bernd Schmidt + + * config/bfin/libgcc-bfin.ver: Regenerate based on current + libgcc-std.ver. Add entries for ___smulsi3_highpart and + ___umulsi3_highpart. + + * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling + rather than schedule_insns if the pass is enabled. + +2010-01-13 Martin Jambor + + PR tree-optimization/42704 + * tree-sra.c (sra_modify_assign): Do not delete assignments to + SSA_NAMEs. + +2010-01-13 Martin Jambor + + PR tree-optimization/42703 + * tree-sra.c (analyze_access_subtree): Check that we can build a + reference to the original data within the aggregate. + +2010-01-13 Richard Guenther + + PR tree-optimization/42705 + * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels. + +2010-01-13 Richard Guenther + + PR middle-end/42716 + * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs. + +2010-01-13 Jakub Jelinek + + PR debug/41371 + * var-tracking.c (values_to_unmark): New variable. + (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in + values_to_unmark vector. Moved body to... + (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO, + instead queue it into values_to_unmark vector. + (vt_find_locations): Free values_to_unmark vector. + +2010-01-13 Wolfgang Gellerich + + * config/s390/s390.c (override_options): Set + default of max-pending-list-length to 256 + +2010-01-13 Richard Guenther + + PR lto/42678 + * tree-pass.h (PROP_gimple_lcx): New. + * cfgexpand.c (pass_expand): Require PROP_gimple_lcx. + * passes.c (init_optimization_passes): Move pass_lower_complex_O0 + before the final cleanup_eh. + (dump_properties): Dump PROP_gimple_lcx. + * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx. + (tree_lower_complex_O0): Remove. + (gate_no_optimization): Run if PROP_gimple_lcx is not set. + (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run + tree_lower_complex, schedule TODO_update_ssa. + * lto-streamer-out.c (output_function): Stream the functions + properties. + * lto-streamer-in.c (input_function): Likewise. + (lto_read_body): Do not override them here. + +2010-01-12 Joseph Myers + + PR c/42708 + * c-typeck.c (build_c_cast): Fold value cast to union type before + wrapping it in a CONSTRUCTOR. + +2010-01-12 Jakub Jelinek + + PR rtl-optimization/42699 + * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are + involved. + +2010-01-12 Rainer Orth + + * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC, + SUBTARGET_WARN_UNUSED_SPEC): Move ... + config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC, + SUBTARGET_WARN_UNUSED_SPEC): ... here + * config/mips/iris5.h (LIBGCC_SPEC): Define. + +2010-01-12 Julian Brown + + * config/arm/neon-schedgen.ml (Utils): Don't try to + open missing module. + (find_with_result): New. + +2010-01-12 Jakub Jelinek + + PR debug/42662 + * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx + sharing when canonicalizing ({lt,ge}u (plus a b) b). + + PR tree-optimization/42645 + * tree-inline.c (processing_debug_stmt): Move earlier. Make static. + (remap_ssa_name): If processing_debug_stmt and name wasn't found in + decl_map, set processing_debug_stmt to -1 and return name without + any remapping. + +2010-01-11 Dave Korn + + * doc/install.texi (Specific#x-x-cygwin): Document minimum required + binutils version, and reword target configuration description. + +2010-01-11 Andy Hutchinson + + * config/avr/avr.h (LINKER_NAME): Remove. + +2010-01-11 Janis Johnson + + PR target/42416 + * config/rs6000/rs6000.c (rs6000_override_options): On targets + that support VSX, warn for -mno-altivec if vsx is not disabled, + and disable vsx. + +2010-01-11 Joseph Myers + Shujing Zhao + + PR translation/42469 + * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=, + fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab + character between option name and help text. + * c.opt (imultilib): Likewise. + +2010-01-10 Rafael Avila de Espindola + + * lto-streamer-out.c (output_unreferenced_globals): Output static + variables. + +2010-01-10 Steven Bosscher + + PR rtl-optimization/42621 + * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not + optimizing for size. + (duplicate_computed_gotos): Remove now-redundant check. + +2010-01-10 Steve Ellcey + + PR target/37454 + * configure.ac: Save and restore LDFLAGS and LIBS + * configure: Regenerate. + +2010-01-10 Richard Guenther + + PR middle-end/42667 + * builtins.c (fold_builtin_strlen): Add type argument and + convert the resulting length to it. + (fold_builtin_1): Adjust. + +2010-01-09 Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten + sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by + 1 insn. + (num_insns_constant_wide): Adjust for that change. + +2010-01-09 Alexandre Oliva + + PR debug/42631 + * web.c (union_defs): Add used argument, to combine uses of + uninitialized regs. + (entry_register): Adjust type and tests of used argument. + (web_main): Widen used for new use. Pass it to union_defs. + * df.h (union_defs): Adjust prototype. + +2010-01-09 Alexandre Oliva + + PR debug/42630 + * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug + uses in new incoming argument. Free body. + (reset_debug_uses_in_loop): New. + (analyze_insn_to_expand_var): Call the latter if the former found + anything. Fix whitespace. Reject invalid dest overlaps before + going through all insns in the loop. + +2010-01-09 Alexandre Oliva + + PR debug/42629 + * haifa-sched.c (dying_use_p): Debug insns don't count. + +2010-01-09 Alexandre Oliva + + PR middle-end/42363 + * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls. + * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice. + (verify_gimple_call): Reject LHS in noreturn calls. + +2010-01-09 Alexandre Oliva + + PR debug/42604 + PR debug/42395 + * tree-vect-loop-manip.c (adjust_info): New type. + (adjust_vec): New pointer to vector. + (adjust_debug_stmts_now, adjust_vec_debug_stmts): New. + (adjust_debug_stmts, adjust_phi_and_debug_stmts): New. + (slpeel_update_phis_for_duplicate_loop): Use them. + (slpeel_update_phi_nodes_for_guard1): Likewise. + (slpeel_update_phi_nodes_for_guard2): Likewise. + (slpeel_tree_peel_loop_to_edge): Likewise. + (vect_update_ivs_after_vectorizer): Likewise. + +2010-01-09 Alexandre Oliva + + * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren. + (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise. + +2010-01-09 Alexandre Oliva + + * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence + bogus uninitialized warning. + +2010-01-09 Richard Guenther + + PR middle-end/42512 + * tree-scalar-evolution.c (interpret_loop_phi): Make sure + the evolution is compatible with the initial condition. + +2010-01-09 Jakub Jelinek + + * gcc.c (process_command): Update copyright notice dates. + * gcov.c (print_version): Likewise. + * gcov-dump.c (print_version): Likewise. + * mips-tfile.c (main): Likewise. + * mips-tdump.c (main): Likewise. + +2010-01-08 Andy Hutchinson + + PR target/41885 + * config/avr/avr.md (rotlqi3): Add CONST_INT_P check. + (rotlhi3): Delete. + (rotlhi3_8): Delete. + (rotlsi3): Delete. + (rotlsi3_8): Delete. + (rotlsi3_16): Delete. + (rotlsi3_24): Delete. + (rotl3): New. + (*rotw3): New. + (*rotb3): New. + * config/avr/avr.c (avr_rotate_bytes): New function. + * config/avr/avr-proto.h (avr_rotate_bytes): New function. + +2010-01-08 Steve Ellcey + + PR target/37454 + * configure.ac: Modify -rdynamic check. + * configure: Regenerate. + +2010-01-08 DJ Delorie + + * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler + register popping order. + +2010-01-08 Richard Guenther + + PR lto/42528 + * c.opt (fsigned-char): Also let LTO handle this option. + (funsigned-char): Likewise. + +2010-01-07 Richard Guenther + + * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING. + (gimple_op): Likewise. + (gimple_op_ptr): Likewise. + (gimple_assign_set_lhs): Remove gcc_assert. + (gimple_assign_set_rhs1): Likewise. + (gimple_assign_set_rhs2): Likewise. + (gimple_call_set_lhs): Likewise. + (gimple_call_set_fn): Likewise. + (gimple_call_set_fndecl): Likewise. + (gimple_call_fndecl): Likewise. + (gimple_call_return_type): Likewise. + (gimple_call_set_chain): Likewise. + (gimple_call_num_args): Likewise. + (gimple_call_set_arg): Likewise. + (gimple_cond_set_code): Likewise. + (gimple_cond_set_lhs): Likewise. + (gimple_cond_set_rhs): Likewise. + (gimple_cond_set_true_label): Likewise. + (gimple_cond_set_false_label): Likewise. + (gimple_label_set_label): Likewise. + (gimple_goto_set_dest): Likewise. + (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING. + (gimple_debug_bind_get_value): Likewise. + (gimple_debug_bind_get_value_ptr): Likewise. + (gimple_debug_bind_set_var): Likewise. + (gimple_debug_bind_set_value): Likewise. + (gimple_debug_bind_reset_value): Likewise. + (gimple_debug_bind_has_value_p): Likewise. + (gimple_return_retval_ptr): Remove gcc_assert. + (gimple_return_retval): Likewise. + (gimple_return_set_retval): Likewise. + * tree-flow.h (struct gimple_df): Remove nonlocal_all member. + (safe_referenced_var_iterator): Remove. + (FOR_EACH_REFERENCED_VAR_SAFE): Likewise. + * tree-flow-inline.h (gimple_nonlocal_all): Remove. + (fill_referenced_var_vec): Remove. + (first_readonly_imm_use): Remove redundant gcc_assert. + (phi_arg_index_from_use): Combine gcc_asserts. + (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING. + (first_imm_use_stmt): Remove redundant gcc_assert. + * tree-cfg.c (verify_gimple_call): Verify function and chain + operands. Verify arguments. + (verify_types_in_gimple_stmt): Verify condition code and labels. + +2010-01-07 Richard Guenther + + PR tree-optimization/42641 + * sese.c (rename_map_elt_info): Use the SSA name version, do + not hash pointers. + +2010-01-07 Jakub Jelinek + + PR tree-optimization/42625 + * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*, + TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases. + +2010-01-07 Duncan Sands + + * Makefile.in (PLUGIN_HEADERS): Add version.h. + +2010-01-07 Uros Bizjak + + PR target/42511 + * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when + note itself is not function_invariant_p. + +2009-01-07 Steven Bosscher + + * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist): + Do not add the DF_NOTE problem. + * store-motion.c (execute_rtl_store_motion): Likewise. + +2010-01-07 Martin Jambor + + PR tree-optimization/42157 + * tree-sra.c (compare_access_positions): Stabilize sort if both + accesses have integer types, return zero immediately if they are the + same. + +2010-01-06 Richard Henderson + + PR middle-end/41883 + * haifa-sched.c (add_to_note_list): Merge into ... + (concat_note_lists): ... here, and ... + (unlink_other_notes, rm_other_notes): Merge into... + (remove_notes): ... here. Create REG_SAVE_NOTEs for + NOTE_INSN_EPILOGUE_BEG. + +2010-01-06 Richard Guenther + + * ipa-inline.c (cgraph_decide_inlining_incrementally): Do + not inline regular functions into always-inline functions. + +2010-01-06 Nick Clifton + + * config/rx/rx.h (enum rx_cpu_type): Add RX200. + (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are + used together. + (OVERRIDE_OPTIONS): Delete. + (OPTIMIZATION_OPTIONS): Define. + (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option. + * config/rx/rx.c (rx_handle_option): Issue an error message if + -mcpu=rx200 and -fpu are used together. + (rx_set_optimization_options): New function. Issue an error + message if an optimization attribute attempts to reset the FPU/ + math optimization pairing. + * config/rx/rx-protos.h (rx_set_optimization_options): Prototype. + * config/rx/rx.opt: Set the default to 32-bit doubles. + * config/rx/t-rx: Add multilibs for -nofpu option. + * doc/invoke.texi: Update documentation of RX options. + +2010-01-06 Richard Guenther + + * tree-ssa-pre.c (name_to_id): New global. + (alloc_expression_id): Simplify SSA name handling. + (lookup_expression_id): Likewise. + (init_pre): Zero name_to_id. + (fini_pre): Free it. + +2010-01-06 Uros Bizjak + + * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM. + +2010-01-05 H.J. Lu + + PR target/42542 + * config/i386/sse.md (smaxv2di3): New. + (umaxv2di3): Likewise. + (sminv2di3): Likewise. + (uminv2di3): Likewise. + +2010-01-05 Eric Botcazou + + PR target/42564 + * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete. + * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + (sparc_tls_referenced_p): Likewise. + * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address + and adjust calls to legitimize_pic_address. + (legitimate_constant_p) Use sparc_tls_referenced_p. + (legitimate_pic_operand_p): Likewise. + (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P. + (sparc_tls_symbol_ref_1): Delete. + (sparc_tls_referenced_p): Make static, recognize specific patterns. + (legitimize_tls_address): Make static, handle CONST patterns. + (legitimize_pic_address): Make static, remove unused parameter and + adjust recursive calls. + (sparc_legitimize_address): Make static, use sparc_tls_referenced_p + and adjust call to legitimize_pic_address. + (sparc_output_mi_thunk): Likewise. + +2010-01-05 Paolo Bonzini + H.J. Lu + + PR target/42542 + * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT + for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both + operands to make them signed. + + Revert: + 2010-01-04 H.J. Lu + + PR target/42542 + * config/i386/i386.c (ix86_expand_int_vcond): Don't convert + GTU to GT for V4SI and V2DI. + + * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP. + (umin3): Removed. + (uminv8hi3): New. + (uminv4si3): Likewise. + +2010-01-05 Martin Jambor + + PR tree-optimization/42462 + * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of + current_function_decl to helper functions and macros. + +2010-01-05 Rainer Orth + + PR bootstrap/41771 + * flags.h: Don't include real.h. + (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS, + HONOR_SIGN_DEPENDENT_ROUNDING): Move ... + * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, + HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here. + * dominance.c: Update copyright. + * gimple.c (walk_gimple_op): Remove inline. + * tree-ssa-reassoc.c: Include real.h. + * Makefile.in (FLAGS_H): Remove $(REAL_H). + (tree-ssa-reassoc.o): Depend on $(REAL_H). + +2010-01-05 Nick Clifton + + * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second + register to push into the stack frame when the accumulator has to + be saved during interrupts. + +2010-01-05 Eric Fisher + + * doc/invoke.texi: Remove the documentation about option + -Wunreachable-code. + * common.opt (Wunreachable-code): Preserved for backward + compatibility. + * tree-cfg.c: Remove the implementation of -Wunreachable-code. + * opts.c (common_handle_option): Add OPT_Wunreachable_code to + the backward compatibility flag section. + +2010-01-05 Richard Guenther + + * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize. + +2010-01-05 Jakub Jelinek + + PR other/42611 + * cfgexpand.c (expand_one_var): Diagnose too large variables. + + PR tree-optimization/42508 + * tree-sra.c (convert_callers): Check for recursive call + by comparing cgraph nodes instead of decls. + (modify_function): Call ipa_modify_formal_parameters also + on all same_body aliases. + + * cgraphunit.c (cgraph_materialize_all_clones): Compare + cgraph nodes when checking for same_body aliases. + +2010-01-05 Richard Guenther + + * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant + allocation and lookup. + (get_or_alloc_expr_for_constant): Likewise. + (phi_translate): Sink allocation. + +2010-01-04 Richard Guenther + + * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate + a new entry only if needed. + * tree-ssa-dom.c (lookup_avail_expr): Likewise. + * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one + hashtable lookup. + * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate + the result array. + (phi_translate): Handle CONSTANTs early. + +2010-01-04 Martin Jambor + + PR tree-optimization/42398 + * tree-sra.c (struct access): Removed flag grp_different_types. + (dump_access): Do not dump the removed flag. + (sort_and_splice_var_accesses): Do not set the removed flag. + (sra_modify_expr): Check for type compatibility directly. + +2010-01-04 Martin Jambor + + PR tree-optimization/42366 + * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on + edges with variable number of parameters. + * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done + flag instead of asserting it. + (ipa_read_node_info): Read uses_analysis_done flag. + +2010-01-04 Richard Guenther + + * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use + iterative_hash_* as intended. + (vn_reference_compute_hash): Likewise. Simplify hashing + SSA names. + (vn_reference_lookup_2): Likewise. + (vn_nary_op_compute_hash): Likewise. + (vn_phi_compute_hash): Likewise. + (expressions_equal_p): Remove strange code. + * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable (). + (pre_expr_hash): Likewise. Simplify hashing SSA names. + (bitmap_insert_into_set_1): Take value-id as parameter. + (add_to_value): Pass it. + (bitmap_insert_into_set): Likewise. + (bitmap_value_insert_into_set): Likewise. Remove redundant check. + +2010-01-04 Jakub Jelinek + + PR driver/42442 + * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define. + (do_self_spec): For switches with SWITCH_IGNORE set set also + SWITCH_IGNORE_PERMANENTLY. + (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead + of SWITCH_IGNORE. + +2010-01-04 Rafael Avila de Espindola + + * lto-streamer-out.c (output_unreferenced_globals): Output the full + tree of an unreferenced global var. + +2010-01-04 H.J. Lu + + PR target/42542 + * config/i386/i386.c (ix86_expand_int_vcond): Don't convert + GTU to GT for V4SI and V2DI. + + * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP. + (umin3): Removed. + (uminv8hi3): New. + (uminv4si3): Likewise. + +2010-01-04 H.J. Lu + + PR lto/42581 + * collect2.c (main): Turn on trace in collect2 if -v is passed + to gcc with LTO. + +2010-01-03 Jerry Quinn + + * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update + description of expression operand. + +2010-01-03 Andrew Jenner + + * configure.ac: Add install-html to target_list for Make-hooks. + * configure: Regenerate. + * fortran/Make-lang.in (F95_HTMLFILES): New. + (fortran.html): Use it. + (fortran.install-html): New. + * Makefile.in (install-html): Add lang.install-html. + * java/Make-lang.in (JAVA_HTMLFILES): New. + (java.html): Use it. + (java.install-html): New. + * objc/Make-lang.in (objc.install-html): New. + * objcp/Make-lang.in (obj-c++.install-html): New. + * cp/Make-lang.in (c++.install-html): New. + * ada/gcc-interface/Make-lang.in (ada.install-html): New. + * lto/Make-lang.in (lto.install-html): New. + +2010-01-03 H.J. Lu + + PR lto/42520 + * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt. + +2009-01-03 Steven Bosscher + + PR rtl-optimization/41862 + * store-motion.c (store_killed_in_insn, compute_store_table, + remove_reachable_equiv_notes, replace_store_insn, + build_store_vectors): Ignore all DEBUG_INSNs. + +2010-01-03 H.J. Lu + + PR lto/41564 + * common.opt: Add dumpdir. + + * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase + isn't specified. + (option_map): Add --dumpdir. + + * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir. + + * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o. + + * opts.c (decode_options): Try dump_dir_name first if + dump_base_name isn't an absolute path. + (common_handle_option): Handle OPT_dumpdir. + + * toplev.c (dump_dir_name): New. + (print_switch_values): Also ignore -dumpdir. + + * toplev.h (dump_dir_name): New. + +2010-01-03 Richard Guenther + + PR tree-optimization/42589 + * tree-ssa-math-opts.c (execute_optimize_bswap): Allow + double-word expansion of bswap32. + +2010-01-03 Steven Bosscher + + * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM + with BLOCK_FOR_INSN. + * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise. + * ifcvt.c (noce_get_alt_condition, noce_try_abs, + noce_process_if_block): Likewise. + * gcse.c (compute_local_properties, insert_expr_in_table, + insert_set_in_table, canon_list_insert, find_avail_set, + pre_insert_copy_insn): Likewise. + + * basic-block.h (BLOCK_NUM): Move from here... + * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler. + +2010-01-03 Richard Guenther + + PR tree-optimization/42438 + * tree-ssa-pre.c (struct bb_bitmap_sets): Add + contains_may_not_return_call flag. + (BB_MAY_NOTRETURN): New. + (valid_in_sets): Trapping nary operations are not valid + in blocks that may not return. + (insert_into_preds_of_block): Remove check for trapping expressions. + (compute_avail): Compute also BB_MAY_NOTRETURN. + +2010-01-03 Gerald Pfeifer + + * doc/invoke.texi: Add 2010 to copyright years. + +2010-01-03 Eric Botcazou + + * config/sparc/sparc.c: Fix formatting nits. + +2010-01-02 Gerald Pfeifer + Alexander Monakov + + * doc/invoke.texi (Optimize Options): Reword introduction a bit. + +2010-01-02 Richard Guenther + + PR middle-end/42577 + * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks. + (simplify_switch_using_ranges): Mark to be removed edges + as non-executable. + +2010-01-02 John David Anglin + + * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two. + + * collect2.c (scan_libraries): Add missing argument in call to + scan_prog_file. + +2010-01-02 Uros Bizjak + + PR target/42448 + * config/alpha/predicates.md (aligned_memory_operand): Return false + for CQImode. + (unaligned_memory_operand): Return true for CQImode. + * config/alpha/alpha.c (get_aligned_mem): Assert that location + doesn not cross aligned SImode word boundary. + +2010-01-02 Anatoly Sokolov + + * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_): + Remove. + * config/avr/avr-protos.h (avr_init_once, avr_optimization_options, + avr_change_section, avr_reg_class_from_letter) : Remove declaration. + +2010-01-02 Richard Guenther + + PR lto/41597 + * toplev.c (compile_file): Emit LTO marker properly. Change + it to __gnu_lto_v1. + * collect2.c (scan_prog_file): Adjust for changed LTO marker. + +2010-01-01 Richard Guenther + + PR debug/42455 + * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order. + +2010-01-01 Richard Guenther + + PR c/42570 + * c-decl.c (grokdeclarator): For zero-size arrays force + structural equality checks as layout_type does. + +2010-01-01 H.J. Lu + + * builtins.c: Update copyright to 2010. + +2010-01-01 H.J. Lu + + PR lto/42531 + * lto-streamer-out.c (produce_asm): Revert the last change. + (copy_function): Likewise. + + * lto-streamer.c (lto_get_section_name): Skip any leading + asterisk in name. + +2010-01-01 Richard Guenther + + PR middle-end/42559 + * builtins.c (get_object_alignment): Do not use DECL_ALIGN + for LABEL_DECLs. + + +Copyright (C) 2010 Free Software Foundation, Inc. + Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index 34e1326fb8e..76e872dddb3 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -2109,6 +2109,8 @@ override_options (void) if (flag_pic && TARGET_CONST16) error ("-f%s is not supported with CONST16 instructions", (flag_pic > 1 ? "PIC" : "pic")); + else if (TARGET_FORCE_NO_PIC) + flag_pic = 0; else if (XTENSA_ALWAYS_PIC) { if (TARGET_CONST16) diff --git a/gcc/config/xtensa/xtensa.opt b/gcc/config/xtensa/xtensa.opt index 0be75c4b69a..18f8bf3aae1 100644 --- a/gcc/config/xtensa/xtensa.opt +++ b/gcc/config/xtensa/xtensa.opt @@ -26,6 +26,10 @@ mfused-madd Target Report Mask(FUSED_MADD) Enable fused multiply/add and multiply/subtract FP instructions +mforce-no-pic +Target Report Mask(FORCE_NO_PIC) +Disable position-independent code (PIC) for use in OS kernel code + mlongcalls Target Use indirect CALLXn instructions for large programs diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index baa8e88f348..17b1b3fdb80 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -889,6 +889,7 @@ See i386 and x86-64 Options. @emph{Xtensa Options} @gccoptlist{-mconst16 -mno-const16 @gol -mfused-madd -mno-fused-madd @gol +-mforce-no-pic @gol -mserialize-volatile -mno-serialize-volatile @gol -mtext-section-literals -mno-text-section-literals @gol -mtarget-align -mno-target-align @gol @@ -17082,6 +17083,12 @@ When this option is enabled, GCC inserts @code{MEMW} instructions before The default is @option{-mserialize-volatile}. Use @option{-mno-serialize-volatile} to omit the @code{MEMW} instructions. +@item -mforce-no-pic +@opindex mforce-no-pic +For targets, like GNU/Linux, where all user-mode Xtensa code must be +position-independent code (PIC), this option disables PIC for compiling +kernel code. + @item -mtext-section-literals @itemx -mno-text-section-literals @opindex mtext-section-literals -- 2.30.2