+2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/invoke.texi (Warning Options): Add missing hyphen.
+ (-fprofile-dir): Minor grammatical fixes.
+ (-fbranch-probabilities): Likewise.
+
+2011-01-25 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/45136
+ PR debug/45130
+ * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
+ debug insns.
+ (no_real_insns_p, schedule_block, set_priorities): Drop special
+ treatment of boundary debug insns.
+ * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug
+ insns.
+ * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
+ * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
+ (BOUNDARY_DEBUG_INSN_P): Likewise.
+ (SCHEDULE_DEBUG_INSN_P): Likewise.
+ * sched-rgn.c (init_ready_list): Drop special treatment of
+ boundary debug insns.
+ * final.c (rest_of_clean-state): Clear notes' BB.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * Makefile.in (LAMBDA_H): Removed.
+ (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
+ (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
+ lambda-trans.o, and tree-loop-linear.o.
+ (lto-symtab.o): Remove dependence on LAMBDA_H.
+ (tree-loop-linear.o): Remove rule.
+ (lambda-mat.o): Same.
+ (lambda-trans.o): Same.
+ (lambda-code.o): Same.
+ (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
+ (tree-vect-slp.o): Same.
+ * hwint.h (gcd): Moved here.
+ (least_common_multiple): Same.
+ * lambda-code.c: Removed.
+ * lambda-mat.c: Removed.
+ * lambda-trans.c: Removed.
+ * lambda.h: Removed.
+ * tree-loop-linear.c: Removed.
+ * lto-symtab.c: Do not include lambda.h.
+ * omega.c (gcd): Removed.
+ * passes.c (init_optimization_passes): Remove pass_linear_transform.
+ * tree-data-ref.c (print_lambda_vector): Moved here.
+ (lambda_vector_copy): Same.
+ (lambda_matrix_copy): Same.
+ (lambda_matrix_id): Same.
+ (lambda_vector_first_nz): Same.
+ (lambda_matrix_row_add): Same.
+ (lambda_matrix_row_exchange): Same.
+ (lambda_vector_mult_const): Same.
+ (lambda_vector_negate): Same.
+ (lambda_matrix_row_negate): Same.
+ (lambda_vector_equal): Same.
+ (lambda_matrix_right_hermite): Same.
+ * tree-data-ref.h: Do not include lambda.h.
+ (lambda_vector): Moved here.
+ (lambda_matrix): Same.
+ (dependence_level): Same.
+ (lambda_transform_legal_p): Removed declaration.
+ (lambda_collect_parameters): Same.
+ (lambda_compute_access_matrices): Same.
+ (lambda_vector_gcd): Same.
+ (lambda_vector_new): Same.
+ (lambda_vector_clear): Same.
+ (lambda_vector_lexico_pos): Same.
+ (lambda_vector_zerop): Same.
+ (lambda_matrix_new): Same.
+ * tree-flow.h (least_common_multiple): Removed declaration.
+ * tree-parloops.c (lambda_trans_matrix): Moved here.
+ (LTM_MATRIX): Same.
+ (LTM_ROWSIZE): Same.
+ (LTM_COLSIZE): Same.
+ (LTM_DENOMINATOR): Same.
+ (lambda_trans_matrix_new): Same.
+ (lambda_matrix_vector_mult): Same.
+ (lambda_transform_legal_p): Same.
+ * tree-pass.h (pass_linear_transform): Removed declaration.
+ * tree-ssa-loop.c (tree_linear_transform): Removed.
+ (gate_tree_linear_transform): Removed.
+ (pass_linear_transform): Removed.
+ (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
+ flag_loop_interchange.
+
+2011-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/47265
+ PR tree-optimization/47443
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
+ if name still has some uses.
+
+2011-01-25 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/47382
+ * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
+ (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
+
+2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
+
+ * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
+ sjlj_except_unwind_info.
+
+2011-01-25 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/47426
+ * tree-ssa-structalias.c (ipa_pta_execute): Make externally
+ visible functions results escape.
+
+2011-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/45701
+ * config/arm/arm.c (any_sibcall_uses_r3): New function.
+ (arm_get_frame_offsets): Use it.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/47271
+ * tree-if-conv.c (bb_postdominates_preds): New.
+ (if_convertible_bb_p): Call bb_postdominates_preds.
+ (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
+ (predicate_scalar_phi): Call bb_postdominates_preds.
+
+2011-01-25 Nick Clifton <nickc@redhat.com>
+
+ * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
+ * config/rx/rx.c (rx_function_value): Likewise.
+ (rx_promote_function_mode): Likewise.
+ (gen_safe_add): Place an outsized immediate value inside an UNSPEC
+ in order to make it legitimate.
+ * config/rx/rx.md (adddi3_internal): If the second operand is a
+ MEM make sure that the first operand is the same as the result
+ register.
+ (addsi3_unspec): Delete.
+ (subdi3): Do not accept immediate operands.
+ (subdi3_internal): Likewise.
+
+2011-01-25 Jeff Law <law@redhat.com>
+
+ PR rtl-optimization/37273
+ * ira-costs.c (scan_one_insn): Detect constants living in memory and
+ handle them like argument loads from stack slots. Do not double
+ count memory for memory constants and argument loads from stack slots.
+
+2011-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/47427
+ PR tree-optimization/47428
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
+ coalesce if the new root var would be TREE_READONLY.
+
+2011-01-25 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/47414
+ * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
+ correct type for TBAA.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
+ (close_phi_written_to_memory): Call for_each_index with
+ dr_indices_valid_in_loop.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
+ when it is initialized.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
+ call to graphite_find_data_references_in_stmt.
+ * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
+ (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
+ call to graphite_find_data_references_in_stmt.
+ (analyze_drs_in_stmts): Same.
+ * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
+ in which the scalar analysis of indices is performed.
+ (create_data_ref): Same. Update call to dr_analyze_indices.
+ (find_data_references_in_stmt): Update call to create_data_ref.
+ (graphite_find_data_references_in_stmt): Same.
+ * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
+ declaration.
+ (create_data_ref): Same.
+ * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
+ call to create_data_ref.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-sese-to-poly.c (build_poly_scop): Move
+ rewrite_commutative_reductions_out_of_ssa before
+ find_scop_parameters.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
+ VAR_DECL, PARM_DECL, and RESULT_DECL.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c (reduction_dr_1): Allow several reductions
+ in a reduction PBB.
+ * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
+ that have already been marked as PBB_IS_REDUCTION.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-scop-detection.c (same_close_phi_node): New.
+ (remove_duplicate_close_phi): New.
+ (make_close_phi_nodes_unique): New.
+ (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
+ * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
+ of both data references to be the same.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c (build_lexicographical_constraint): Remove the
+ gdim parameter.
+ (build_lexicographical_constraint): Adjust call to ppl_powerset_is_empty.
+ (dependence_polyhedron): Same.
+ (graphite_legal_transform_dr): Same.
+ (graphite_carried_dependence_level_k): Same.
+ * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params parameter.
+ * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-sese-to-poly.c
+ (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
+ (close_phi_written_to_memory): New.
+ (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
+ and unshare_expr.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * doc/install.texi: Update the expected version number of PPL to 0.11.
+ * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
+ #if PPL_VERSION_MINOR < 11.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c: Include graphite-cloog-util.h.
+ (new_poly_ddr): Inlined into dependence_polyhedron.
+ (free_poly_ddr): Moved close by new_poly_ddr.
+ (dependence_polyhedron_1): Renamed dependence_polyhedron.
+ Early return NULL when ppl_powerset_is_empty returns true.
+ (dependence_polyhedron): Renamed new_poly_ddr. Call only once
+ poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
+ (graphite_legal_transform_dr): Call new_poly_ddr.
+ (graphite_carried_dependence_level_k): Same.
+ (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
+ (dot_transformed_deps_stmt_1): Removed.
+ (dot_deps_stmt_1): Call dot_deps_stmt_2.
+ (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
+ (dot_deps_1): Call dot_deps_2.
+ * Makefile.in (graphite-dependences.o): Add missing dependence on
+ graphite-cloog-util.h.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
+ (build_lexicographical_constraint): Same.
+ (dependence_polyhedron_1): Same.
+ (graphite_legal_transform_dr): Same.
+ (graphite_carried_dependence_level_k): Same.
+ * graphite-ppl.c (ppl_powerset_is_empty): New.
+ * graphite-ppl.h (ppl_powerset_is_empty): Declared.
+ * tree-data-ref.c (dump_data_reference): Print the basic block index.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
+ the "a followed by b" relation and document it.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c (build_lexicographical_constraint): Stop the
+ iteration when the bag of constraints is empty.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
+ nest and two loop depths as parameters.
+ (lst_try_interchange_loops): Call lst_interchange_profitable_p after
+ lst_perfect_nestify.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-dependences.c (print_pddr): Call
+ ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
+
+2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-ppl.c (debug_gmp_value): New.
+ * graphite-ppl.h (debug_gmp_value): Declared.
+
+2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
+
+ * doc/install.texi: Document availability of cloog-0.16.
+
+2011-01-25 Vladimir Kargov <kargov@gmail.com>
+
+ * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
+ invalid postdominance info.
+
+2011-01-24 Jan Hubicka <jh@suse.cz>
+
+ PR c/21659
+ * doc/extend.texi (weak pragma): Drop claim that it must
+ appear before definition.
+ * varasm.c (merge_weak, declare_weak): Only sanity check
+ that DECL is not output at a time it is declared weak.
+
+2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+ * machmode.def: Fixed comments.
+
+2011-01-24 Kai Tietz <kai.tietz@onevision.com>
+
+ * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
+
+2011-01-24 Paul Koning <ni1d@arrl.net>
+
+ * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
+ WORDS_BIG_ENDIAN.
+
+2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/46519
+ * config/i386/i386.c: Include sbitmap.h and fibheap.h.
+ (block_info): Add scanned and prev.
+ (move_or_delete_vzeroupper_2): Return if the basic block
+ has been scanned and the upper 128bit state is unchanged
+ from the last scan.
+ (move_or_delete_vzeroupper_1): Return true if the exit
+ state is changed.
+ (move_or_delete_vzeroupper): Visit basic blocks using the
+ work-list based algorithm based on vt_find_locations in
+ var-tracking.c.
+
+ * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
+
+2011-01-24 Nick Clifton <nickc@redhat.com>
+
+ * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
+ * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
+ -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
+ then define __v850e1__.
+ * doc/invoke.texi: Document -mv850es.
+
+2011-01-24 Richard Henderson <rth@redhat.com>
+
+ * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
+ compound unordered comparisons.
+ * config/rx/rx.c (rx_split_fp_compare): Remove.
+ * config/rx/rx-protos.h: Update.
+ * config/rx/rx.md (gcc_conds, rx_conds): Remove.
+ (cbranchsf4): Don't call rx_split_fp_compare.
+ (*cbranchsf4): Use rx_split_cbranch.
+ (*cmpsf): Don't accept "i" constraint.
+ (*conditional_branch): Only valid after reload.
+ (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
+
+2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/47385
+ * config/rs6000/altivec.md (vector constant splitters): Add
+ support for creating vector single precision constants if -mvsx is
+ used and we would create the constant using Altivec primitives.
+
+2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
+ Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR rtl-optimization/47166
+ * reload1.c (emit_reload_insns): Disable the spill_reg_store
+ mechanism for PRE_MODIFY and POST_MODIFY.
+ (inc_for_reload): For PRE_MODIFY, return the insn that sets the
+ reloadreg.
+
+2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
+
+ * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
+
+2011-01-22 Jan Hubicka <jh@suse.cz>
+
+ PR lto/47333
+ * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
+
+2011-01-22 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimization/43884
+ PR lto/44334
+ * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
+ * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
+
+2011-01-22 Anatoly Sokolov <aesok@post.ru>
+
+ * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
+ * config/s390/s390.c (s390_register_move_cost,
+ s390_memory_move_cost): New.
+ (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
+
+2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ PR middle-end/47401
+ * except.c (sjlj_assign_call_site_values): Move setting the
+ crtl->uses_eh_lsda flag to ...
+ (sjlj_mark_call_sites): ... here.
+ (sjlj_emit_function_enter): Support NULL dispatch label.
+ (sjlj_build_landing_pads): In a function with no landing pads
+ that still has must-not-throw regions, generate code to register
+ a personality function with empty LSDA.
+
+2011-01-21 Richard Henderson <rth@redhat.com>
+
+ * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
+
+ * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
+
+ * compare-elim.c: New file.
+ * Makefile.in (OBJS-common): Add it.
+ (compare-elim.o): New.
+ * common.opt (fcompare-elim): New.
+ * opts.c (default_options_table): Add OPT_fcompare_elim.
+ * tree-pass.h (pass_compare_elim_after_reload): New.
+ * passes.c (init_optimization_passes): Add it.
+ * recog.h: Protect against re-inclusion.
+ * target.def (TARGET_FLAGS_REGNUM): New POD hook.
+ * doc/invoke.texi (-fcompare-elim): Document it.
+ * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
+ * doc/tm.texi: Rebuild.
+
+2011-01-22 Nick Clifton <nickc@redhat.com>
+
+ * config/rx/rx.md (cstoresf4): Pass comparison operator to
+ rx_split_fp_compare.
+
+2011-01-22 Nick Clifton <nickc@redhat.com>
+
+ * config/rx/rx.md (UNSPEC_CONST): New.
+ (deallocate_and_return): Wrap the amount popped off the stack in
+ an UNSPEC_CONST in order to stop it being rejected by
+ -mmax-constant-size.
+ (pop_and_return): Add a "(return)" rtx.
+ (call): Drop the immediate operand.
+ (call_internal): Likewise.
+ (call_value): Likewise.
+ (call_value_internal): Likewise.
+ (sibcall_internal): Likewise.
+ (sibcall_value_internal): Likewise.
+ (sibcall): Likewise. Generate an explicit call using
+ sibcall_internal.
+ (sibcall_value): Likewise.
+ (mov<>): FAIL if a constant operand is not legitimate.
+ (addsi3_unpsec): New pattern.
+
+ * config/rx/rx.c (rx_print_operand_address): Handle UNPSEC
+ CONSTs.
+ (ok_for_max_constant): New function.
+ (gen_safe_add): New function.
+ (rx_expand_prologue): Use gen_safe_add.
+ (rx_expand_epilogue): Likewise.
+ (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
+ UNSPEC CONSTs.
+
+2011-01-21 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/47053
+ * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
+ (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
+ statements are deleted.
+ (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
+ is nonempty, then purge dead edges and cleanup the CFG.
+
+2011-01-21 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/47402
+ Temporarily revert:
+ 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
+ PR debug/47106
+ * tree-dfa.c (create_var_ann): Mark variable as used.
+
+2011-01-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/45566
+ * except.c (convert_to_eh_region_ranges): Emit queued no-region
+ notes from other section in hot/cold partitioning even if
+ last_action is -3. Increment call_site_base.
+
+ PR rtl-optimization/47366
+ * fwprop.c (forward_propagate_into): Return bool. If
+ any changes are made, -fnon-call-exceptions is used and
+ REG_EH_REGION note is present, call purge_dead_edges
+ and return true if it purged anything.
+ (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
+ any EH edges were purged.
+
+2011-01-21 Jeff Law <law@redhat.com>
+
+ PR rtl-optimization/41619
+ * caller-save.c (setup_save_areas): Break out code to determine
+ which hard regs are live across calls by examining the reload chains
+ so that it is always used.
+ Eliminate code which checked REG_N_CALLS_CROSSED.
+
+2011-01-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/47355
+ * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
+ NOP has non-debug uses beyond PHIs in new_bb.
+
+2011-01-21 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/47106
+ * cfgexpand.c (account_used_vars_for_block): Only account vars
+ that are annotated as used.
+ (estimated_stack_frame_size): Don't set TREE_USED.
+ * tree-dfa.c (create_var_ann): Mark variable as used.
+
+2011-01-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/47395
+ * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
+
+2011-01-21 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/47365
+ * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
+ (vn_reference_lookup_pieces): Adjust.
+ (vn_reference_lookup): Likewise.
+ * tree-ssa-sccvn.c (vn_walk_kind): New static global.
+ (vn_reference_lookup_3): Only look through kills if in
+ VN_WALKREWRITE mode.
+ (vn_reference_lookup_pieces): Adjust.
+ (vn_reference_lookup): Likewise.
+ (visit_reference_op_load): Likewise.
+ (visit_reference_op_store): Likewise.
+ * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
+ (compute_avail): Likewise.
+ (eliminate): Likewise.
+
+2011-01-21 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
+ DECL_IGNORED_P non-reg vars if they are used.
+
+ PR tree-optimization/47391
+ * varpool.c (const_value_known_p): Return false if
+ decl is volatile.
+
+2011-01-21 Kai Tietz <kai.tietz@onevision.com>
+
+ PR bootstrap/47215
+ * config/i386/i386.c (ix86_local_alignment): Handle
+ case for va_list_type_node is nil.
+ (ix86_canonical_va_list_type): Likewise.
+
+2011-01-21 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
+ builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
+
+2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ * config/arm/arm.md (define_attr type): Rename f_load
+ and f_store to f_fpa_load and f_fpa_store. Update.
+ (write_conflict): Deal with rename fallout.
+ (*push_fp_multi): Likewise.
+ * config/arm/fpa.md (f_load): Use f_fpa_load.
+ (f_store): Use f_fpa_store.
+ (*movsf_fpa): Likewise.
+ (*movdf_fpa): Likewise.
+ (*movxf_fpa): Likewise.
+ (*thumb2_movsf_fpa): Likewise.
+ (*thumb2_movdf_fpa): Likewise.
+ (*thumb2_movxf_fpa): Likewise.
+ * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
+ f_loadd and f_stored.
+ (*thumb2_movdi_vfp): Likewise.
+ (*thumb2_movsf_vfp): Fix attribute to f_loads.
+ (*thumb2_movsi_vfp): Likewise.
+ * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
+ Use f_loads instead of f_load.
+ * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
+
+2011-01-20 Anatoly Sokolov <aesok@post.ru>
+
+ * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
+ * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
+ * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
+ (xtensa_mode_dependent_address_p): New function.
+ (constantpool_address_p): Make static. Change return type to bool.
+ Change argument type to const_rtx. Use CONST_INT_P predicate.
+
+2011-01-20 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/46583
+ * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
+
+2011-01-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/47283
+ * cfgexpand.c (expand_debug_expr): Instead of generating
+ (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
+ etc. handling.
+
+2011-01-20 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/47370
+ * tree-inline.c (remap_gimple_op_r): Recurse manually for
+ the pointer operand of MEM_REFs.
+
+2011-01-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/46130
+ * ipa-split.c (consider_split): If return_bb contains non-virtual
+ PHIs other than for retval or if split_function would not adjust it,
+ refuse to split.
+
+2011-01-20 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/47167
+ * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
+ Revert previous change, only avoid enumeral type changes.
+
+2011-01-19 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/47291
+ * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
+ (gen_scheduled_generic_parms_dies): New functions.
+ (gen_struct_or_union_type_die): Schedule template parameters DIEs
+ generation for the end of CU compilation.
+ (dwarf2out_finish): Generate template parameters DIEs here.
+
+2011-01-19 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/46240
+ * tree-into-ssa.c (maybe_register_def): Do not attempt to add
+ debug bind stmt on merge edges.
+
+2011-01-19 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/47079
+ PR debug/46724
+ * function.c (instantiate_expr): Instantiate incoming rtl of
+ implicit arguments, and recurse on VALUE_EXPRs.
+ (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
+ * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
+
+2011-01-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * c-parser.c (c_parser_for_statement): Initialize
+ collection_expression.
+
+2011-01-19 Joseph Myers <joseph@codesourcery.com>
+
+ * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
+
+2011-01-19 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
+ (LINK_SHLIB_SPEC): Don't use %(link_path).
+ (SUBTARGET_EXTRA_SPECS): Remove link_path.
+
+2011-01-19 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
+ (NO_SHARED_LIB_SUPPORT): Remove.
+ (LINK_SHLIB_SPEC): Remove one conditional definition.
+
+2011-01-19 Joseph Myers <joseph@codesourcery.com>
+
+ * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
+ %{call_shared}.
+ * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
+ * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
+ * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
+ %{call_shared} and conditionals on these options not being passed.
+ * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
+ %{call_shared}.
+
+2011-01-19 Jakub Jelinek <jakub@redhat.com>
+
+ * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
+ simplify.
+
+ * ipa-split.c: Spelling fixes.
+
+2011-01-19 Richard Henderson <rth@redhat.com>
+
+ * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
+ (*mulsi3): Likewise.
+
+ * longlong.h [__mn10300__] (count_leading_zeros): New.
+ [__mn10300__] (umul_ppmm, smul_ppmm): New.
+ [__mn10300__] (add_ssaaaa, subddmmss): New.
+ [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
+ [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
+
+2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
+
+2011-01-19 Richard Henderson <rth@redhat.com>
+
+ * config/mn10300/mn10300.md (addsi3_flags): New.
+ (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
+ (subsi3_flags, subc_internal, subdi3): New.
+ (subdi3_internal, *subdi3_degenerate): New.
+ * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
+
+ * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
+ (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
+ (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
+ * config/mn10300/mn10300-protos.h: Update.
+ * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
+ (return_ret): Likewise. Rename from return_internal_regs.
+ (return_internal): Remove.
+
+ * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
+ (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
+ (mn10300_legitimate_constant_p): Likewise.
+ (mn10300_can_use_return_insn): Use mn10300_initial_offset.
+ (mn10300_frame_size): New.
+ (mn10300_expand_prologue): Use it.
+ (mn10300_expand_epilogue): Likewise.
+ (mn10300_initial_offset): Likewise.
+ * config/mn10300/mn10300-protos.h: Update.
+ * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
+ * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
+ (prologue, epilogue, return_internal): Tidy output code.
+ (mn10300_store_multiple_operation, return): Likewise.
+ (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
+ (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
+ (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
+ (load_pic, am33_load_pic): New.
+ (mn10300_load_pic0, mn10300_load_pic1): New.
+
+ * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
+ * config/mn10300/mn10300.c (CC_FLAG_Z): New.
+ (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
+ (cc_flags_for_mode, cc_flags_for_code): New.
+ (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
+ overflow flag is not valid. Validate that the flags we need
+ for the comparison are valid.
+ (mn10300_output_cmp): Remove.
+ (mn10300_output_add): New.
+ (mn10300_select_cc_mode): Use cc_flags_for_code.
+ (mn10300_split_cbranch): New.
+ (mn10300_match_ccmode): New.
+ (mn10300_split_and_operand_count): New.
+ * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
+ to the function.
+ * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
+ (addsi3): ... here. Use mn10300_output_add.
+ (*addsi3_flags): New.
+ (*am33_subsi3, *mn10300_subsi3): Merge...
+ (subsi3): ... here. Use attribute isa.
+ (*subsi3_flags): New.
+ (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
+ when possible.
+ (*am33_andsi3, *mn10300_andsi3): Merge...
+ (andsi3): ... here.
+ (*andsi3_flags): New.
+ (andsi3 splitters): New.
+ (*am33_iorsi3, *mn10300_iorsi3): Merge...
+ (iorsi3): ... here.
+ (*iorsi3_flags): New.
+ (*am33_xorsi3, *mn10300_xorsi3): Merge...
+ (xorsi3): ... here.
+ (*xorsi3_flags): New.
+ (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
+ (one_cmplsi2): ... here.
+ (*one_cmplsi2_flags): New.
+ (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
+ instead of "dax" in constraints. Use mn10300_split_cbranch.
+ (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
+ use matching constraints to eliminate a self-comparison.
+ (*integer_conditional_branch): Rename from integer_conditional_branch.
+ Use int_mode_flags to match CC_REG.
+ (*cbranchsi4_btst, *btstsi): New.
+ (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
+ mn10300_split_cbranch.
+ (*am33_cmpsf): Rename from am33_cmpsf.
+ (*float_conditional_branch): Rename from float_conditional_branch.
+ (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
+ (zero_extendqisi2): ... here.
+ (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
+ (zero_extendhisi2): ... here.
+ (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
+ (extendqisi2): ... here.
+ (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
+ (extendhisi2): ... here.
+ (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
+ (ashlsi3): ... here.
+ (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
+ (lshrsi3): ... here.
+ (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
+ (ashrsi3): ... here.
+ (consecutive add peephole): Remove.
+ * config/mn10300/predicates.md (label_ref_operand): New.
+ (int_mode_flags): New.
+ (CCZN_comparison_operator): New.
+
+ * config/mn10300/mn10300.md (UNSPEC_EXT): New.
+ (throughput_42_latency_43): New reservation.
+ (mulsidi3, umulsidi3): New expanders.
+ (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
+ the MDR register to allocation; separately allocate the low and
+ high parts of the DImode result.
+ (umulsidi3_internal): Similarly.
+ (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
+ (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
+ (udivsi3, umodsi3): Remove.
+ (udivmodsi4, divmodsi4): New expanders.
+ (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
+ (*divmodsi4): Simiarly.
+ (ext_internal): New.
+
+ * config/mn10300/constraints.md ("z"): New constraint.
+ * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
+ (FIXED_REGISTERS): Don't fix MDR.
+ (CALL_USED_REGSITERS): Reformat nicely.
+ (REG_ALLOC_ORDER): Add MDR.
+ (enum regclass): Add MDR_REGS.
+ (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
+ (IRA_COVER_CLASSES): Add MDR_REGS.
+ (REGNO_REG_CLASS): Handle MDR_REG.
+ * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
+ (mn10300_register_move_cost): Likewise.
+ * config/mn10300/mn10300.md (MDR_REG): New.
+ (*movsi_internal): Handle moves to/from MDR_REGS.
+
+ * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
+ POST_MODIFY.
+ (mn10300_secondary_reload): Tidy combination reload classes.
+ (mn10300_legitimate_address_p): Allow post-modify and reg+reg
+ addresses for AM33. Allow symbolic offsets for reg+imm.
+ (mn10300_regno_in_class_p): New.
+ (mn10300_legitimize_reload_address): New.
+ * config/mn10300/mn10300.h (enum reg_class): Remove
+ DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
+ SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
+ SP_OR_GENERAL_REGS.
+ (REG_CLASS_NAMES): Update to match.
+ (REG_CLASS_CONTENTS): Likewise.
+ (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
+ (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
+ (REGNO_IN_RANGE_P): Remove.
+ (REGNO_DATA_P): Use mn10300_regno_in_class_p.
+ (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
+ (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
+ (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
+ (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
+ (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
+ (REGNO_GENERAL_P): New.
+ (HAVE_POST_MODIFY_DISP): New.
+ (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
+ (LEGITIMIZE_RELOAD_ADDRESS): New.
+ * config/mn10300/mn10300-protos.h: Update.
+
+ * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
+ DATA_REGS for AM33 stack-pointer destination.
+ (mn10300_preferred_output_reload_class): Likewise.
+ (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
+ into a form appropriate for ...
+ (TARGET_SECONDARY_RELOAD): New.
+ * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
+ * config/mn10300/mn10300-protos.h: Update.
+ * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
+ reload_insi; use the "A" constraint for the scratch; handle AM33
+ moves of sp to non-address registers.
+
+ * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
+ (*movqi_internal): ... here.
+ (*am33_movhi, *mn10300_movhi): Merge into...
+ (*movhi_internal): ... here.
+ (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
+ as the source/destination of moves from/to SP.
+ (movsf): Only allow for AM33-2.
+ (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
+ any integer constant constraint. Only allow for AM33-2. Tidy
+ all of the alternative outputs.
+ (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
+ (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
+ for MN103.
+ (udivsi3, umodsi3): New patterns for MN103 only.
+
+2011-01-19 Joern Rennecke <amylaar@spamcop.net>
+
+ * doc/tm.texi.in: Spell out that a lack of register class unions
+ can lead to ICEs.
+ * doc/tm.texi: Regenerate.
+
+2011-01-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/47337
+ * dce.c (check_argument_store): New function.
+ (find_call_stack_args): Ignore debug insns. Use check_argument_store.
+
+ PR tree-optimization/47290
+ * tree-eh.c (infinite_empty_loop_p): New function.
+ (cleanup_empty_eh): Use it.
+
2011-01-18 Steve Ellcey <sje@cup.hp.com>
PR target/46997
2011-01-13 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/45352
- * sel-sched.c: Update copyright years.
+ * sel-sched.c: Update copyright years.
(reset_sched_cycles_in_current_ebb): Also recheck the DFA state
- in the advancing loop when we have issued issue_rate insns.
+ in the advancing loop when we have issued issue_rate insns.
2011-01-12 Richard Henderson <rth@redhat.com>
* opts.c (common_handle_option): Disable ipa-reference with profile
feedback.
-2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
+2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_at_property_declaration): Improved
error message.
2011-01-10 Jan Hubicka <jh@suse.cz>
- PR tree-optimization/47234
+ PR tree-optimization/47234
* tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
(pass_feedback_split_functions): Declare.
* passes.c (init_optimization_passes): Add ipa-split as subpass of