OSDN Git Service

PR c++/44127
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 5bd72ca..4a71722 100644 (file)
@@ -1,3 +1,702 @@
+2010-05-14  Jason Merrill  <jason@redhat.com>
+
+       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  <jh@suse.cz>
+
+       * 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  <jakub@redhat.com>
+
+       PR debug/44136
+       * cfgexpand.c (expand_debug_expr): If non-memory op0
+       has BLKmode, return NULL.
+
+2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
+
+       * 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 <reg, reg> instead of movapd <reg, reg> when replacing
+       movsd <reg, reg> or movss <reg, reg> 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  <pthaugen@us.ibm.com>
+
+       * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
+       result to unsigned.
+
+2010-05-14  Tristan Gingold  <gingold@adacore.com>
+
+       * toplev.c (default_debug_hooks): Remove this variable.
+       (process_options): Remove assignments to default_debug_hooks.
+
+2010-05-14  Martin Jambor  <mjambor@suse.cz>
+
+       * 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  <rguenther@suse.de>
+
+       PR tree-optimization/44124
+       * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
+
+2010-05-14  Alan Modra  <amodra@gmail.com>
+
+       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  <jh@suse.cz>
+
+       * varpool.c (decide_is_variable_needed): Drop code checking
+       TREE_SYMBOL_REFERENCED.
+
+2010-05-13  Jan Hubicka  <jh@suse.cz>
+
+       * 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  <aesok@post.ru>
+
+       * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
+
+2010-05-13  Jeff Law  <law@redhat.com>
+
+       * ira-conflicts.c (print_allocno_conflicts): New function broken out
+       from...
+       (print_conflicts): Call print_allocno_conflicts.
+
+2010-05-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/44104
+       * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
+       if it is NULL.
+
+2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
+
+       * 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  <mjambor@suse.cz>
+
+       * 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  <schwab@linux-m68k.org>
+
+       * 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  <jakub@redhat.com>
+
+       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  <jh@suse.cz>
+
+       * 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  <jason@redhat.com>
+
+       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  <jh@suse.cz>
+
+       * 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  <tmsriram@google.com>
+
+       * 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  <kazu@codesourcery.com>
+           Nathan Froyd  <froydnj@codesourcery.com>
+
+       * c-common.c (sync_resolve_params): Remove write-only variable.
+
+2010-05-12  Anatoly Sokolov  <aesok@post.ru>
+
+       * 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  <kazu@codesourcery.com>
+           Nathan Froyd  <froydnj@codesourcery.com>
+
+       * 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  <kazu@codesourcery.com>
+           Nathan Froyd  <froydnj@codesourcery.com>
+
+       * 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  <froydnj@codesourcery.com>
+
+       * 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  <jh@suse.cz>
+
+       * 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  <hongjiu.lu@intel.com>
+
+       PR target/44088
+       * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
+
+2010-05-12  Jakub Jelinek  <jakub@redhat.com>
+
+       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  <maxim@codesourcery.com>
+
+       * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
+       for __stack_chk_guard.
+
+2010-05-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * 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  <jh@suse.cz>
+
+       * lto-symtab.c (lto_symtab_free): New function.
+       * lto-streamer.h (lto_symtab_free): Declare.
+
+2010-05-11  Jan Hubicka  <jh@suse.cz>
+
+       * 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  <jh@suse.cz>
+
+       * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
+       Mark as used.
+
+2010-05-11  Jan Hubicka  <jh@suse.cz>
+
+       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  <kai.tietz@onevision.com>
+
+       * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
+
+2010-05-11  Jan Hubicka  <jh@suse.cz>
+
+       * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
+       into every boundary.
+
+2010-05-11  Jan Hubicka  <jh@suse.cz>
+
+       * matrix-reorg.c (matrix_reorg): Rebuild edges.
+
+2010-05-11  Jan Hubicka  <jh@suse.cz>
+
+       * 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  <jh@suse.cz>
+
+       * 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  <jh@suse.cz>
+
+       * 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  <borntraeger@de.ibm.com>
+
+       * 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  <borntraeger@de.ibm.com>
+
+       * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
+
+2010-05-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * 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  <jakub@redhat.com>
+
+       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  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
+
+2010-05-10  Jan Hubicka  <jh@suse.cz>
+
+       * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
+       commited change.
+
+2010-05-10  Jan Hubicka  <jh@suse.cz>
+
+       * 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  <jh@suse.cz>
+
+       * 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  <jh@suse.cz>
+
+       * 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  <matz@suse.de>
+
+       * 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  <hongjiu.lu@intel.com>
+           Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/44012
+       * ira-build.c (remove_unnecessary_allocnos): Nullify
+       regno_allocno_map of the removed allocno.
+
+2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
+       to /dev/null.
+       * configure: Regenerate.
+
+2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * 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  <rguenther@suse.de>
+
+       * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
+       marked if the entry identifier is marked.
+
+2010-05-10  Richard Guenther  <rguenther@suse.de>
+
+       * 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  <rguenther@suse.de>
+
+       PR tree-optimization/44050
+       * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
+
+2010-05-10  Wei Guozhi  <carrot@google.com>
+
+       PR target/42879
+       * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
+
+2010-05-09  Joseph Myers  <joseph@codesourcery.com>
+
+       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  <rguenther@suse.de>
+
+       PR middle-end/44024
+       * fold-const.c (tree_single_nonzero_warnv_p): Properly
+       handle &FUNCTION_DECL.
+
+2010-05-09  Joseph Myers  <joseph@codesourcery.com>
+
+       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  <hongjiu.lu@intel.com>
+
+       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  <rguenther@suse.de>
+
+       * gcc.c (store_arg): Handle temporary file deletion for
+       joined arguments.
+
+2010-05-09  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/44043
+       * ipa-inline.c (estimate_function_body_sizes): Return after
+       disregarding inline limits.
+
+2010-05-09  Richard Guenther  <rguenther@suse.de>
+
+       * gcc.c (store_arg): Revert last change.
+
+2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
+
+       PR middle-end/28685
+       * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
+       (optimize_ops_list): Call it.
+
+2010-05-08  Richard Guenther  <rguenther@suse.de>
+
+       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  <ebotcazou@adacore.com>
+
+       * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
+       domain types as equal if they are both PLACEHOLDER_EXPRs.
+
+2010-05-08  Richard Guenther  <rguenther@suse.de>
+
+       * lto-wrapper.c (run_gcc): Remove linker output from
+       command line for LTRANS invocation.
+
+2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * 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  <steven@gcc.gnu.org>
+
+       * 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  <Ralf.Wildenhues@gmx.de>
 
        PR documentation/44016
 
        * 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.
+       * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
 
 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
 
        * 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.
+       * 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.
+       (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  <jakub@redhat.com>
 
-       * gcc.dg/Wunused-var-8.c: Move to...
-       * c-c++-common/Wunused-var-6.c: ... here.  New test.
-
        PR bootstrap/43994
        * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
        instead of DF_REF_REAL_REG.
        (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.
+       (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.
 
        (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.
+       * 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.
        (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.
+       (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.
        (lto_output_ref): New.
        (add_references): New.
        (output_refs): New.
-       (output_cgraph): Compute boundary based on references;
-       output refs.
+       (output_cgraph): Compute boundary based on references; output refs.
        (output_varpool): Accept cgraph_node_set argument.
        (input_ref): New.
        (input_refs): New.
        * 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.
+       (vectorizable_conversion, vectorizable_operation,
+       vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
 
 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
 
 
 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
 
-       * stor-layout.c (pending_sizes): Change the type to
-       VEC(tree,gc) *.
+       * 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.
 2010-05-05  Jan Hubicka  <jh@suse.cz>
 
        * 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_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;
        * 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_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,
 
 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
 
-       * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
-       dependencies.
+       * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
 
        * gengtype.h (erro_at_line): Constify pos argument.
 
 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/43799
-       * config/i386/i386.md (sse_prologue_save): Add clobber CC
-       register.
+       * config/i386/i386.md (sse_prologue_save): Clobber CC register.
        (*sse_prologue_save_insn1): Likewise.
        (SSE prologue save splitter): Likewise.
 
 
 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
 
-       * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove
-       static.
+       * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
 
 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
 
        (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.g
+       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.
        * 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.
+       (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.
 
 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
 
-       * config/s390/s390.c (override_options): Adjust the z10
-         defaults for max-unroll-times, max-completely-peeled-insns
-         and max-completely-peel-times.
+       * 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  <Andreas.Krebbel@de.ibm.com>