+2011-09-04 Richard Guenther <rguenther@suse.de>
+
+ Revert
+ 2011-08-31 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
+ special-casing.
+
+2011-09-04 Iain Sandoe <iains@gcc.gnu.org>
+
+ PR debug/49901
+ * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
+
+2011-09-04 Jakub Jelinek <jakub@redhat.com>
+ Ira Rosen <ira.rosen@linaro.org>
+
+ PR tree-optimization/50208
+ * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
+ argument. Check that def_stmt is inside the loop.
+ (vect_recog_widen_mult_pattern): Update calls to
+ vect_handle_widen_mult_by_cons.
+ (vect_operation_fits_smaller_type): Check that def_stmt is
+ inside the loop.
+
+2011-09-04 Ira Rosen <ira.rosen@linaro.org>
+
+ * tree-vectorizer.c (vect_print_dump_info): Print line
+ number when dumping to a file.
+ (vectorize_loops): Add new messages to dump file.
+
+2011-09-03 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.h (ipa_jump_func_t): New typedef.
+ (struct ipa_edge_args): Removed field argument_count, field
+ jump_functions turned into a vector.
+ (ipa_set_cs_argument_count): Removed.
+ (ipa_get_cs_argument_count): Updated to work on vectors.
+ (ipa_get_ith_jump_func): Likewise.
+ * ipa-prop.c (ipa_count_arguments): Removed.
+ (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
+ jump functions. Update caller.
+ (compute_pass_through_member_ptrs): Likewise.
+ (compute_cst_member_ptr_arguments): Likewise.
+ (ipa_compute_jump_functions_for_edge): Get number of arguments from
+ the statement, allocate vector.
+ (ipa_compute_jump_functions): Do not call ipa_count_arguments.
+ (duplicate_ipa_jump_func_array): Removed.
+ (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
+ (ipa_read_node_info): Allocate vector.
+
+2011-09-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/50232
+ * config/pa/pa.md (return): Define "return" insn pattern.
+ (epilogue): Use it when no epilogue is needed.
+ * config/pa/pa.c (pa_can_use_return_insn): New function.
+ * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
+
+2011-09-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
+ * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
+ Force at least BITS_PER_UNIT alignment on the new variable.
+
+2011-09-02 Gary Funck <gary@intrepid.com>
+
+ * opts.c (print_specific_help): Fix off-by-one compare in
+ assertion check.
+ * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
+ CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
+ Increase by +5 to allow for more languages.
+ * optc-gen.awk: Generate #if that ensures that the number of
+ languages is within the implementation-defined limit.
+
+2011-09-02 Michael Matz <matz@suse.de>
+
+ PR middle-end/50260
+ * ipa-split.c (split_function): Call add_referenced_var.
+
+ * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
+ (cond_if_else_store_replacement_1): Ditto.
+ * tree-ssa-pre.c (get_representative_for): Ditto.
+ (create_expression_by_pieces): Ditto.
+ (insert_into_preds_of_block): Ditto.
+ * tree-sra.c (create_access_replacement): Ditto.
+ (get_replaced_param_substitute): Ditto.
+
+2011-09-02 Bernd Schmidt <bernds@codesourcery.com>
+
+ * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
+ automata_options.
+ (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
+ (l1w, s1w, l2w, s2w): Define in the main automaton.
+ (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
+ units.
+ * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
+ (c6x_unit_names): Add the new units.
+ (c6x_unit_codes): New static array.
+ (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
+ UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
+ UNIT_QID_SIDE_OFFSET): New macros.
+ (RESERVATION_S2): Adjust value.
+ (c6x_option_override): Compute c6x_unit_codes.
+ (assign_reservations): Take the unit_mask of the last instruction
+ into account. Detect floating point reservations by looking for
+ the new units. Don't assign reservations if the field is already
+ nonzero.
+ (struct c6x_sched_context): Add member prev_cycle_state_ctx.
+ (init_sched_state): Initialize it.
+ (c6x_clear_sched_context): Free it.
+ (insn_set_clock): Clear reservation.
+ (prev_cycle_state): New static variable.
+ (c6x_init_sched_context): Save it.
+ (c6x_sched_init): Allocate space for it and clear it.
+ (c6x_sched_dfa_pre_cycle_insn): New static function.
+ (c6x_dfa_new_cycle): Save state at the start of a new cycle.
+ (c6x_variable_issue): Only record units in the unit_mask that
+ were not set at the start of the cycle.
+ (c6x_variable_issue): Compute and store the unit_mask from the
+ current state.
+ (reorg_split_calls): Ensure the new information remains correct.
+ (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
+ TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
+ * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
+ * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
+ Add special reservations.
+ * config/c6x/c6x-sched.md: Regenerate.
+
+2011-09-02 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.h (ipa_node_params): Removed fields
+ called_with_var_arguments and node_versionable.
+ (ipa_set_called_with_variable_arg): Removed.
+ (ipa_is_called_with_var_arguments): Likewise.
+ * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
+ (determine_versionability): Do not check for type attributes and va
+ builtins. Record versionability into inline summary.
+ (initialize_node_lattices): Do not check
+ ipa_is_called_with_var_arguments.
+ (propagate_constants_accross_call): Likewise, ignore arguments we do
+ not have PARM_DECLs for, set variable flag for parameters that were
+ not passed a value.
+ (create_specialized_node): Dump info that we cannot change signature.
+ * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
+ number of arguments.
+ (ipa_make_edge_direct_to_target): Likewise.
+ (ipa_update_after_lto_read): Likewise.
+ (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
+ * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
+ they were remapped.
+
+2011-09-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/27460
+ PR middle-end/29269
+ * doc/md.texi (vcond): Document.
+ * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
+ optab with two modes.
+ * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
+ (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
+ (vcond_optab): Adjust.
+ (vcondu_optab): Likewise.
+ (expand_vec_cond_expr_p): Adjust prototype.
+ * optabs.c (get_vcond_icode): Adjust.
+ (expand_vec_cond_expr_p): Likewise.
+ (expand_vec_cond_expr): Likewise.
+ * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
+ vector type.
+ (vectorizable_condition): Allow differing types for comparison
+ and result.
+ * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
+ for the comparison.
+ * config/i386/sse.md (vcond<mode>): Split to
+ vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
+ vcond<V_128:mode><VI124_128:mode> and
+ vcondu<V_128:mode><VI124_128:mode>.
+ (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
+ (vconduv2di): Likewise.
+ * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
+ (vcondu<mode>): Likewise.
+ * config/ia64/vect.md (vcond<mode>): Likewise.
+ (vcondu<mode>): Likewise.
+ (vcondv2sf): Likewise.
+ * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
+ * config/rs6000/paired.md (vcondv2sf): Likewise.
+ * config/rs6000/vector.md (vcond<mode>): Likewise.
+ (vcondu<mode>): Likewise.
+ * config/spu/spu.md (vcond<mode>): Likewise.
+ (vcondu<mode>): Likewise.
+
+2011-09-02 Richard Guenther <rguenther@suse.de>
+
+ * pretty-print.h (pp_unsigned_wide_integer): New.
+ * tree-pretty-print.c (dump_generic_node): Print unsigned
+ host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
+
+2011-09-02 Richard Sandiford <richard.sandiford@linaro.org>
+
+ PR target/49987
+ * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
+ valid CONST_VECTOR operands.
+ (rs6000_expand_vector_init): Likewise.
+
+2011-09-02 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
+ * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
+ BINFO_VTABLE. Parameter delta removed, all callers updated.
+ * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
+ BINFO_VTABLE.
+ * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
+ all calls.
+ * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
+ handling of thunk_delta.
+ * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
+ (devirtualization_time_bonus): Do not handle thunk deltas.
+ (ipcp_discover_new_direct_edges): Likewise.
+ * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
+ (try_make_edge_direct_simple_call): Likewise.
+ (try_make_edge_direct_virtual_call): Likewise.
+ * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
+ parameter set as unused.
+ (output_edge_opt_summary): Likewise. Mark both parameters as unused.
+ * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
+ parameter set as unused.
+ (output_edge_opt_summary): Likewise. Mark both parameters as unused.
+ (input_edge_opt_summary): Likewise.
+ * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
+ BINFO_VIRTUALS at all.
+ * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
+
+2011-09-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not
+ fold alloca (0).
+ (ccp_fold_stmt): Continue replacing args when folding
+ alloca fails.
+
+2011-08-31 Richard Guenther <rguenther@suse.de>
+
+ * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
+ handling here, from ...
+ (expand_expr_real_1): ... here.
+ * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
+ and VEC_COND_EXPR.
+ * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
+ a GIMPLE_TERNARY_RHS.
+ * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
+ and VEC_COND_EXPR here ...
+ (verify_gimple_assign_single): ... not here.
+ * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
+ * tree-object-size.c (cond_expr_object_size): Adjust.
+ (collect_object_sizes_for): Likewise.
+ * tree-scalar-evolution.c (interpret_expr): Don't handle
+ ternary RHSs.
+ * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and
+ simplify.
+ (ssa_forward_propagate_and_combine): Adjust.
+ * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
+ as ternary.
+ * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
+ * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
+ * tree-vect-stmt.c (vectorizable_condition): Likewise.
+ * tree-vrp.c (extract_range_from_cond_expr): Likewise.
+ (extract_range_from_assignment): Likewise.
+
+2011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/i386/i386.md: Use (match_test ...) for attribute tests.
+ * config/i386/mmx.md: Likewise.
+ * config/i386/sse.md: Likewise.
+ * config/i386/predicates.md (call_insn_operand): Use
+ (not (match_test "...")) instead of (match_test "!...")
+ * config/i386/constraints.md (w): Likewise.
+
+2011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/md.texi: Describe the use of match_tests in attribute tests.
+ * rtl.def (MATCH_TEST): Update commentary.
+ * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
+ (write_test_expr, walk_attr_value): Handle MATCH_TEST.
+
+2011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
+ (attr_string): Use copy_md_ptr_loc.
+
+2011-08-31 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/49886
+ * ipa-inline-analysis.c (compute_inline_parameters): Set
+ can_change_signature of noes with typde attributes.
+ * ipa-split.c (split_function): Do not skip any arguments if
+ can_change_signature is set.
+
+2011-08-31 Martin Jambor <mjambor@suse.cz>
+
+ * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
+ check removed.
+
+2011-08-31 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
+ special-casing.
+
+2011-08-31 Marc Glisse <marc.glisse@inria.fr>
+
+ * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
+
+2011-08-31 Tom de Vries <tom@codesourcery.com>
+
+ PR middle-end/43513
+ * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
+ * tree-ssa-ccp.c (params.h): Include.
+ (fold_builtin_alloca_for_var): New function.
+ (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
+
+2011-08-30 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
+ Handle FMA option.
+
+2011-08-30 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
+ b3 and b4 unsigned.
+
+2011-08-30 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
+ when code is SET.
+
+2011-08-30 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/48571
+ * gimple.h (maybe_fold_offset_to_address): Remove.
+ (maybe_fold_offset_to_reference): Likewise.
+ (maybe_fold_stmt_addition): Likewise.
+ (may_propagate_address_into_dereference): Likewise.
+ * tree-inline.c (remap_gimple_op_r): Do not reconstruct
+ array references.
+ * gimple-fold.c (canonicalize_constructor_val): Likewise.
+ Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
+ addresses instead.
+ (may_propagate_address_into_dereference): Remove.
+ (maybe_fold_offset_to_array_ref): Likewise.
+ (maybe_fold_offset_to_reference): Likewise.
+ (maybe_fold_offset_to_address): Likewise.
+ (maybe_fold_stmt_addition): Likewise.
+ (fold_gimple_assign): Do not reconstruct array references but
+ instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
+ MEM_REF addresses.
+ (gimple_fold_stmt_to_constant_1): Likewise.
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
+ * gimplify.c (gimplify_conversion): Likewise.
+ (gimplify_expr): Likewise.
+
+2011-08-30 Ilya Tocar <ilya.tocar@intel.com>
+
+ * config/i386/fmaintrin.h: New.
+ * config.gcc: Add fmaintrin.h.
+ * config/i386/i386.c
+ (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
+ <IX86_BUILTIN_VFMADDSD3>: Likewise.
+ * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
+ (*fmai_fmadd_<mode>): Likewise.
+ (*fmai_fmsub_<mode>): Likewise.
+ (*fmai_fnmadd_<mode>): Likewise.
+ (*fmai_fnmsub_<mode>): Likewise.
+ * config/i386/immintrin.h: Add fmaintrin.h.
+
+2011-08-30 Bernd Schmidt <bernds@codesourcery.com>
+
+ * genautomata.c (NO_COMB_OPTION): New macro.
+ (no_comb_flag): New static variable.
+ (gen_automata_option): Handle NO_COMB_OPTION.
+ (comb_vect_p): False if no_comb_flag.
+ (add_vect): Move computation of min/max values. Return early if
+ no_comb_flag.
+ * doc/md.texi (automata_option): Document no-comb-vect.
+
+ * config/i386/i386.c (get_pc_thunk_name): Change prefix to
+ "__x86.get_pc_thunk".
+
+ * bb-reorder.c (insert_section_boundary_note): Only do it if
+ we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
+
+2011-08-30 Christian Bruel <christian.bruel@st.com>
+
+ * coverage.c (coverage_init): Check flag_branch_probabilities instead of
+ flag_profile_use.
+
+2011-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
+ to off. Document switch.
+ * doc/invoke.texi (-msave-toc-indirect): Ditto.
+
+2011-08-29 Jakub Jelinek <jakub@redhat.com>
+
+ * gthr-posix.h (__gthread_active_p): Do not use preprocessor
+ conditionals and comments inside macro arguments.
+
+20011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
+ Richard Guenther <rguenther@suse.de>
+
+ * tree.h (constant_boolean_node): Adjust prototype.
+ * fold-const.c (fold_convert_loc): Move aggregate conversion
+ leeway down.
+ (constant_boolean_node): Make value parameter boolean, add
+ vector type handling.
+ (fold_unary_loc): Use constant_boolean_node.
+ (fold_binary_loc): Preserve types properly when folding
+ COMPLEX_EXPR <__real x, __imag x>.
+ * gimplify.c (gimplify_expr): Handle vector comparison.
+ * tree.def (EQ_EXPR, ...): Document behavior on vector typed
+ comparison.
+ * tree-cfg.c (verify_gimple_comparison): Verify vector typed
+ comparisons.
+
+2011-08-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/48722
+ * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
+ reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
+ (verify_rtl_sharing): Likewise and verify_rtx_sharing
+ in there too.
+ (unshare_all_rtl_in_chain): For CALL_INSNs
+ copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
+
+2011-08-29 Richard Guenther <rguenther@suse.de>
+
+ * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
+ on the built ADDR_EXPR.
+
+2011-08-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/50215
+ * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
+ before adding ENTRY_VALUE to val->locs.
+
+2011-08-28 Mikael Pettersson <mikpe@it.uu.se>
+
+ PR bootstrap/50218
+ * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
+ comp.
+
+2011-08-27 Bernd Schmidt <bernds@codesourcery.com>
+
+ * doc/rtl.texi (simple_return): Document.
+ (parallel, PATTERN): Here too.
+ * doc/md.texi (return): Mention it's allowed to expand to simple_return
+ in some cases.
+ (simple_return): Document standard pattern.
+ * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
+ * final.c (final_scan_insn): Use ANY_RETURN_P on body.
+ * reorg.c (function_return_label, function_simple_return_label):
+ New static variables, replacing...
+ (end_of_function_label): ... this.
+ (simplejump_or_return_p): New static function.
+ (optimize_skip, steal_delay_list_from_fallthrough,
+ fill_slots_from_thread): Use it.
+ (relax_delay_slots): Likewise. Use ANY_RETURN_P on body.
+ (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
+ (find_end_label): Take a new arg which is one of the two return
+ rtxs. Depending on which, set either function_return_label or
+ function_simple_return_label. All callers changed.
+ (make_return_insns): Make both kinds.
+ (dbr_schedule): Adjust for two kinds of end labels.
+ * function.c (emit_return_into_block): Set JUMP_LABEL properly.
+ * genemit.c (gen_exp): Handle SIMPLE_RETURN.
+ (gen_expand, gen_split): Use ANY_RETURN_P.
+ * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
+ * rtl.def (SIMPLE_RETURN): New code.
+ * ifcvt.c (find_if_case_1): Be more careful about
+ redirecting jumps to the EXIT_BLOCK.
+ * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
+ returnjump_p_1): Handle SIMPLE_RETURNs.
+ * print-rtl.c (print_rtx): Likewise.
+ * rtl.c (copy_rtx): Likewise.
+ * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
+ * combine.c (simplify_set): Likewise.
+ * resource.c (find_dead_or_set_registers, mark_set_resources):
+ Likewise.
+ * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
+ copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
+ (init_emit_regs): Initialize simple_return_rtx.
+ * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
+ force_nonfallthru_and_redirect.
+ * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
+ (GR_SIMPLE_RETURN): New enum value.
+ (simple_return_rtx): New macro.
+ * basic-block.h (force_nonfallthru_and_redirect): Adjust
+ declaration.
+ * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
+ argument. All callers changed. Be careful about what kinds of
+ returnjumps to generate.
+ * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
+ ix86_pad_short_function): Likewise.
+ * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
+ of return.
+ * config/mips/mips.md (any_return): New code_iterator.
+ (optab): Add cases for return and simple_return.
+ (return): Expand to a simple_return.
+ (simple_return): New pattern.
+ (*<optab>, *<optab>_internal for any_return): New patterns.
+ (return_internal): Remove.
+ * config/mips/mips.c (mips_expand_epilogue): Make the last insn
+ a simple_return_internal.
+
+2011-08-27 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (*absneg<mode>2): Fix split condition.
+ (vec_extract_lo_<mode>): Prevent both operands in memory.
+ (vec_extract_lo_v16hi): Ditto.
+ (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
+
+2011-08-27 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
+ (*sse2_mulv4si3): Ditto.
+ (mulv2di3): Ditto.
+ * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
+ notes to REG_EQUAL.
+
+2011-08-27 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/50202
+ * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
+ when all outputs are unused.
+ (sse4_2_pcmpistr): Ditto.
+
+2011-08-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (round<mode>2): New expander.
+ * config/i386/i386.c (enum ix86_builtins): Add
+ IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
+ (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
+ descriptions.
+ (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
+ (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
+
+2011-08-26 Uros Bizjak <ubizjak@gmail.com>
+
+ PR middle-end/50083
+ * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
+ only when TARGET_C99_FUNCTIONS.
+ <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
+ <BUILT_IN_RINT{,F,L}>: Ditto.
+
+2011-08-26 Michael Matz <matz@suse.de>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR lto/50165
+ * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
+ don't call strlen twice, use memcpy.
+
+2011-08-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
+ * config/i386/bmiintrin.h: Likewise.
+ * config/i386/lzcntintrin.h: Likewise.
+
+ * config/i386/immintrin.h: Include <lzcntintrin.h>,
+ <bmiintrin.h> and <bmi2intrin.h>.
+
+2011-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/50166
+ * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
+ * configure: Regenerate.
+
+2011-08-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/50179
+ * c-typeck.c (c_process_expr_stmt): Skip over nops and
+ call mark_exp_read even if exprv is ADDR_EXPR.
+
+2011-08-26 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * df-problems.c (df_note_bb_compute): Pass uses rather than defs
+ to df_set_dead_notes_for_mw.
+
+2011-08-26 Richard Guenther <rguenther@suse.de>
+
+ * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
+
+2011-08-26 Zdenek Dvorak <ook@ucw.cz>
+ Tom de Vries <tom@codesourcery.com>
+
+ * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
+ (struct ivopts_data): Add loop_single_exit_p field.
+ (niter_for_exit): Change parameter desc_p into return value. Return
+ desc if desc->may_be_zero. Free desc if unused.
+ (niter_for_single_dom_exit): Change return type.
+ (find_induction_variables): Handle changed return type of
+ niter_for_single_dom_exit. Dump may_be_zero.
+ (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
+ (set_use_iv_cost): Add and handle comp parameter.
+ (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
+ comp argument to set_use_iv_cost.
+ (strip_wrap_conserving_type_conversions, expr_equal_p)
+ (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
+ (may_eliminate_iv): Add comp parameter. Handle new return type of
+ niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt.
+ (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
+ and may_eliminate_iv.
+ (rewrite_use_compare): Move call to iv_elimination_compare to ...
+ (may_eliminate_iv): Here.
+ (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
+
+2011-08-26 Tom de Vries <tom@codesourcery.com>
+
+ * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
+ accessing TREE_TYPE.
+
+2011-08-26 Jiangning Liu <jiangning.liu@arm.com>
+
+ * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
+ (*ior_scc_scc_cmp): Likewise
+ (*and_scc_scc): Likewise.
+ (*and_scc_scc_cmp): Likewise.
+ (*and_scc_scc_nodom): Likewise.
+ (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
+
+2011-08-26 Jakub Jelinek <jakub@redhat.com>
+
+ * rtlanal.c (nonzero_bits1): Handle CLRSB.
+
+2011-08-26 Richard Guenther <rguenther@suse.de>
+
+ * expr.c (string_constant): Handle &MEM_REF.
+
+2011-08-26 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm.c (struct four_ints): New type.
+ (count_insns_for_constant): Delete function.
+ (find_best_start): Delete function.
+ (optimal_immediate_sequence): New function.
+ (optimal_immediate_sequence_1): New function.
+ (arm_gen_constant): Move constant splitting code to
+ optimal_immediate_sequence.
+ Rewrite constant negation/invertion code.
+
+2011-08-26 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
+ * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
+ Remove prototype. Remove static function type.
+ * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
+ Add arch attribute.
+ * config/arm/constraints.md (Pj, PJ): New constraints.
+
+2011-08-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
+ ("cortex_a9_multiply_long"): New and use above. Handle all
+ long multiply cases.
+ ("cortex_a9_multiply"): Handle smmul and smmulr.
+ ("cortex_a9_mac"): Handle smmla.
+
+2011-08-25 Richard Henderson <rth@redhat.com>
+
+ PR 50132
+ PR 49864
+ * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
+ non-constant stack adjutment.
+ * expr.c (find_args_size_adjust): Break out from ...
+ (fixup_args_size_notes): ... here.
+ * rtl.h (find_args_size_adjust): Declare.
+
+2011-08-25 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
+ sse4 and sse4_noavx.
+ (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
+ (*pushdf_rex64): Change Y2 register constraint to x.
+ (*movdf_internal_rex64): Ditto.
+ (*zero_extendsidi2_rex64): Ditto.
+ (*movdi_internal): Change Y2 register constraint to x
+ and update "isa" attribute.
+ (*pushdf): Ditto.
+ (*movdf internal): Ditto.
+ (zero_extendsidi2_1): Ditto.
+ (*truncdfdf_mixed): Ditto.
+ (*truncxfdf2_mixed): Ditto.
+ * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
+ register constraint to x.
+ (*movv2sf_internal_rex64): Ditto.
+ (*mov<mode>_internal): Change Y2 register constraint to x
+ and add "isa" attribute.
+ (*movv2sf_internal): Ditto.
+ (*vec_extractv2si_1): Ditto.
+ * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
+ constraints to x and update "isa" attribute.
+ (*vec_interleave_highv2df): Change Y3 registerconstraint
+ to x and update "isa" attribute.
+ (*vec_interleave_lowv2df): Ditto.
+ (*vec_concatv2df): Change Y2 register constraint to x and
+ update "isa" attribute.
+ (sse2_loadld): Ditto.
+ (*vec_extractv2di_1): Ditto.
+ (*vec_dupv4si): Ditto.
+ (*vec_dupv2di): Ditto.
+ (*vec_concatv4si): Ditto.
+ (vec_concatv2di): Ditto.
+ * config/i386/constraints.md (Y2): Remove.
+ (Y3): Ditto.
+ (Y4): Ditto.
+
+2011-08-25 Bernd Schmidt <bernds@codesourcery.com>
+
+ * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
+ dump_def_use_chain): Don't declare.
+ (mark_conflict, create_new_chain): Move before users.
+ (regrename_optimize): Move to near end of file.
+
+2011-08-25 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
+ (secondary_input_reload_class): Remove Prototype.
+ * config/avr/avr.c (byte_immediate_operand): Remove Function.
+ * config/avr/avr.md (setmemhi): Use u8_operand.
+ (strlenhi): Use const0_rtx for comparison.
+ * config/avr/avr.h (avr_reg_order): Remove Declaration.
+
+2011-08-25 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.c (reg_class_tab): Make local to
+ avr_regno_reg_class. Return smallest register class available.
+
+2011-08-25 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.c (STR_PREFIX_P): New Define.
+ (avr_asm_declare_function_name): Use it.
+ (avr_asm_named_section): Use it.
+ (avr_section_type_flags): Use it.
+
+2011-08-25 Bernd Schmidt <bernds@codesourcery.com>
+
+ * doc/md.texi (automata_option): Document collapse-ndfa.
+ * genautomata.c (COLLAPSE_OPTION): New macro.
+ (collapse_flag): New static variable.
+ (struct description): New member normal_decls_num.
+ (struct automaton): New members advance_ainsn and collapse_ainsn.
+ (gen_automata_option): Check for COLLAPSE_OPTION.
+ (collapse_ndfa_insn_decl): New static variable.
+ (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
+ (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
+ (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
+ necessary. Use normal_decls_num rather than decls_num, remove
+ test for special decls.
+ (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
+ (make_automaton); Likewise. Use the new advance_cycle_insn member
+ of struct automaton.
+ (create_composed_state): Disallow advance-cycle arcs if collapse_flag
+ is set.
+ (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
+ transition. Create the necessary transitions for it.
+ (create_ainsns): Return void. Take an automaton_t argument, and
+ update its ainsn_list, advance_ainsn and collapse_ainsn members. All
+ callers changed.
+ (COLLAPSE_NDFA_VALUE_NAME): New macro.
+ (output_tables): Output code to define it.
+ (output_internal_insn_code_evaluation): Output code to accept
+ const0_rtx as collapse-ndfa transition.
+ (output_default_latencies, output_print_reservation_func,
+ output_print_description): Reorganize loops to use normal_decls_num
+ as loop bound; remove special case for advance_cycle_insn_decl.
+ (initiate_automaton_gen): Handle COLLAPSE_OPTION.
+ (check_automata_insn_issues): Check for collapse_ainsn.
+ (expand_automate): Allocate sufficient space. Initialize
+ normal_decls_num.
+
+2011-08-25 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.md: Fix indentation from r177991.
+
+2011-08-25 Bernd Schmidt <bernds@codesourcery.com>
+
+ * regrename.c (struct du_head): Remove member terminated.
+ (create_new_chain): Don't initialize it.
+ (scan_rtx_reg): Don't set or test it, test the open_chains_set
+ bitmap instead.
+ (tick, this_tick): New global variables, moved out of
+ regrename_optimize.
+ (current_id, open_chains, closed_chains, open_chains_set,
+ live_in_chains, live_hard_regs): Reorder declarations.
+ (dump_def_use_chain): Move function earlier in the file.
+ (rename_chains): New static function, broken out of
+ regrename_optimize.
+ (regrename_optimize): Use it. Remove #if 0'ed code.
+
+2011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
+
+ * varasm.c: (default_binds_local_p_1): Commentary typo fix.
+
+2011-08-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/50172
+ * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
+
+2011-08-24 Richard Guenther <rguenther@suse.de>
+
+ * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
+ ref in the basic-block case. Move stripping array-refs
+ to the place we create an access-function for it. Remove
+ bogus stripping down a MEM_REF to its base.
+
+2011-08-24 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (fold_comparison): Fold &a < &a + 4 even
+ with -fno-strict-overflow.
+
+2011-08-24 Richard Guenther <rguenther@suse.de>
+
+ * tree-vectorizer.c (vect_print_dump_info): Avoid the
+ file and location clutter when dumping to dump files.
+
+2011-08-24 Simon Baldwin <simonb@google.com>
+
+ * gengtype-state.c (write_state): Remove timestamped header line.
+
+2011-08-24 Joseph Myers <joseph@codesourcery.com>
+
+ * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
+ (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
+ (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
+ (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
+ (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
+ (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
+ (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
+ rules.
+ (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
+
+2011-08-24 Joseph Myers <joseph@codesourcery.com>
+
+ * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
+
+2011-08-24 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50067
+ * tree-data-ref.c (dr_analyze_indices): Do not add an access
+ function for a MEM_REF base that has no evolution in the loop
+ nest or that is not analyzable.
+
+2011-08-23 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira.c (ira_init_register_move_cost): Check small subclasses
+ through ira_reg_class_max_nregs and ira_available_class_regs.
+
2011-08-23 Uros Bizjak <ubizjak@gmail.com>
* config/i386/constraints.md (Yp): New register constraint.
2011-08-22 H.J. Lu <hongjiu.lu@intel.com>
- * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't
- defined.
+ * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
* configure: Regenerated.
2011-08-22 Jakub Jelinek <jakub@redhat.com>