+2011-09-08 Enkovich Ilya <ilya.enkovich@intel.com>
+
+ * config/i386/i386-protos.h (ix86_lea_outperforms): New.
+ (ix86_avoid_lea_for_add): Likewise.
+ (ix86_avoid_lea_for_addr): Likewise.
+ (ix86_split_lea_for_addr): Likewise.
+
+ * config/i386/i386.c (LEA_MAX_STALL): New.
+ (increase_distance): Likewise.
+ (insn_defines_reg): Likewise.
+ (insn_uses_reg_mem): Likewise.
+ (distance_non_agu_define_in_bb): Likewise.
+ (distance_agu_use_in_bb): Likewise.
+ (ix86_lea_outperforms): Likewise.
+ (ix86_ok_to_clobber_flags): Likewise.
+ (ix86_avoid_lea_for_add): Likewise.
+ (ix86_avoid_lea_for_addr): Likewise.
+ (ix86_split_lea_for_addr): Likewise.
+ (distance_non_agu_define): Search in pred BBs added.
+ (distance_agu_use): Search in succ BBs added.
+ (IX86_LEA_PRIORITY): Value changed from 2 to 0.
+ (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
+ (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
+
+ * config/i386/i386.md: Split added to transform non destructive
+ add into move and add.
+ (lea_1): transformed into insn_and_split to avoid AGU stalls.
+ (lea<mode>_2): Likewise.
+
+2011-09-08 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/50287
+ * ipa-split.c (split_function): Do not create SSA names for
+ non-gimple-registers.
+
+2011-09-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/19831
+ * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
+ skip builtins with vdefs that do not really store something.
+ (propagate_necessity): For calls to free that we can associate
+ with an allocation function do not mark the freed pointer
+ definition necessary.
+ (eliminate_unnecessary_stmts): Remove a call to free if
+ the associated call to an allocation function is not necessary.
+
+2011-09-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/19831
+ * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
+ allocation functions as necessary.
+
+2011-09-08 Iain Sandoe <iains@gcc.gnu.org>
+
+ *config/darwin-driver.c (darwin_find_version_from_kernel): New routine
+ cut from ... (darwin_default_min_version): Amended to provide defaults
+ for the cross directory case.
+ (darwin_driver_init): call darwin_default_min_version unconditionally.
+ * config/darwin.h (DEF_MIN_OSX_VERSION): New.
+ * config/darwin9.h: Likewise.
+ * config/darwin10.h: Likewise.
+ * config/rs6000/darwin7.h: Likewise.
+
+2011-09-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/50310
+ * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
+ code early if TARGET_AVX.
+ (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
+
+2011-09-07 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
+ duplicates.
+
+ PR target/50310
+ * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
+ "mode" attribute computation.
+
+2011-09-07 Bernd Schmidt <bernds@codesourcery.com>
+
+ * regrename.c (struct du_head): Make nregs signed.
+ (closed_chains): Remove.
+ (create_new_chain): Return the new chain.
+ (chain_from_id): New static function.
+ (dump_def_use_chain): Change argument to be an int, indicating
+ the first ID to print. All callers changed.
+ (merge_overlapping_regs): Use chain_from_id. Assert that
+ chains don't conflict with themselves.
+ (rename_chains): Take no argument. Iterate over id_to_chain
+ rather to find chains to rename. Clear tick before the main
+ loop.
+ (struct incoming_reg_info): New struct.
+ (struct bb_rename_info): New struct.
+ (init_rename_info, set_incoming_from_chain, merge_chains): New
+ static functions.
+ (regrename_analyze): New static function, broken out of
+ regrename_optimize. Record and make use of open chain information
+ at basic block boundaries, and merge chains where possible.
+ (scan_rtx_reg): Make this_nregs signed. Don't update
+ closed_chains.
+ (build_def_use): Return a bool to indicate success. All callers
+ changed. Don't initialize global data here.
+ (regrename_optimize): Move most code out of here into
+ regrename_analyze.
+ * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
+ range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
+ static inline functions.
+ * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
+
+ * bb-reorder.c (insert_section_boundary_note): Don't check
+ optimize_function_for_speed_p.
+ (gate_handle_partition_blocks): Do it here instead.
+ (gate_handle_reorder_blocks): Move preliminary checks here ...
+ (rest_of_handle_reorder_blocks): ... from here.
+
+2011-09-07 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/50301
+ * ipa-cp.c (find_more_values_for_callers_subset): Check jump
+ function index bounds.
+ (perhaps_add_new_callers): Likewise.
+
+2011-09-07 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/49911
+ * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
+ enumerations to the corresponding plain integer type.
+
+2011-09-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50319
+ * tree-if-conv.c (set_bb_predicate): Assert we only set
+ canonical predicates.
+ (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR
+ around canonical predicates.
+ (predicate_bbs): Do not re-gimplify already canonical
+ predicates. Properly unshare them though.
+ (find_phi_replacement_condition): Simplify.
+
+2011-09-07 Richard Sandiford <richard.sandiford@linaro.org>
+
+ PR target/49030
+ * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
+ * config/arm/arm.c (maybe_get_arm_condition_code): New function,
+ reusing the old code from get_arm_condition_code. Return ARM_NV
+ for invalid comparison codes.
+ (get_arm_condition_code): Redefine in terms of
+ maybe_get_arm_condition_code.
+ * config/arm/predicates.md (arm_comparison_operator): Use
+ maybe_get_arm_condition_code.
+
+2011-09-07 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
+ Canonicalize negated predicates by swapping edges.
+ (forward_propagate_into_cond): Likewise.
+
+2011-09-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50213
+ * tree-flow.h (simple_iv_increment_p): Declare.
+ * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle
+ POINTER_PLUS_EXPR.
+ * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
+ not propagate simple IV counter increments.
+
+2011-09-07 Eric Botcazou <ebotcazou@adacore.com>
+ Iain Sandoe <iains@gcc.gnu.org>
+
+ * config/rs6000/rs6000.c (compute_save_world_info): Test
+ cfun->has_nonlocal_label to determine if the out-of-line save
+ world call may be used.
+
+2011-09-07 Nick Clifton <nickc@redhat.com>
+
+ * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
+ label on the parallel part of the insn.
+
+2011-09-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/50191
+ * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
+ avoid_constant_pool_reference first instead of last.
+
+2011-09-06 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * doc/configfiles.texi (Configuration Files): Update documentation
+ about tm_p.h and remove FIXME comment.
+
+2011-09-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
+ (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
+
+2011-09-06 Iain Sandoe <iains@gcc.gnu.org>
+
+ * config/darwin10.h Remove duplicate LIB_SPEC.
+
+2011-09-06 Enkovich Ilya <ilya.enkovich@intel.com>
+
+ PR middle-end/44382
+ * target.def (reassociation_width): New hook.
+
+ * doc/tm.texi.in (reassociation_width): Likewise.
+
+ * doc/tm.texi (reassociation_width): Likewise.
+
+ * doc/invoke.texi (tree-reassoc-width): New param documented.
+
+ * hooks.h (hook_int_uint_mode_1): New default hook.
+
+ * hooks.c (hook_int_uint_mode_1): Likewise.
+
+ * config/i386/i386.h (ix86_tune_indices): Add
+ X86_TUNE_REASSOC_INT_TO_PARALLEL and
+ X86_TUNE_REASSOC_FP_TO_PARALLEL.
+
+ (TARGET_REASSOC_INT_TO_PARALLEL): New.
+ (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
+
+ * config/i386/i386.c (initial_ix86_tune_features): Add
+ X86_TUNE_REASSOC_INT_TO_PARALLEL and
+ X86_TUNE_REASSOC_FP_TO_PARALLEL.
+
+ (ix86_reassociation_width) implementation of
+ new hook for i386 target.
+
+ * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
+
+ * tree-ssa-reassoc.c (get_required_cycles): New function.
+ (get_reassociation_width): Likewise.
+ (swap_ops_for_binary_stmt): Likewise.
+ (rewrite_expr_tree_parallel): Likewise.
+
+ (rewrite_expr_tree): Refactored. Part of code moved into
+ swap_ops_for_binary_stmt.
+
+ (reassociate_bb): Now checks reassociation width to be used
+ and call rewrite_expr_tree_parallel instead of rewrite_expr_tree
+ if needed.
+
+2011-09-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/47025
+ * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
+ uses nothing.
+ (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
+ BUILT_IN_FREE.
+ (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
+ definitely points to.
+ * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
+ BUILT_IN_VA_START doesn't let its va_list argument escape.
+ * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
+ not make any previous stores necessary.
+
+2011-09-06 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-inline.h (struct inline_summary): Move versionable flag...
+ * cgraph.h (struct cgraph_local_info): ...here
+ * ipa-cp.c (determine_versionability): Use the new versionable flag.
+ (determine_versionability): Likewise.
+ (ipcp_versionable_function_p): Likewise.
+ (ipcp_generate_summary): Likewise.
+ * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
+ versionable flag.
+ (compute_inline_parameters): Do not clear the versionable flag.
+ (inline_read_section): Do not stream the versionable flag.
+ (inline_write_summary): Likewise.
+ * lto-cgraph.c (lto_output_node): Stream the versionable flag.
+ (input_overwrite_node): Likewise.
+
+2011-09-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/48149
+ * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug.
+ (vn_valueize): Move earlier.
+ (valueize_expr): Use vn_valueize.
+ (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
+ operands.
+ (simplify_unary_expression): Simplify.
+
+2011-09-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/48317
+ * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
+ trailing array.
+ (sizeof_vn_nary_op): New inline function.
+ (vn_nary_op_lookup_pieces): Adjust.
+ (vn_nary_op_insert_pieces): Likewise.
+ * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
+ (init_vn_nary_op_from_pieces): Adjust signature. Deal with
+ any number of operands.
+ (vn_nary_length_from_stmt): New function.
+ (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
+ (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
+ sized temporary.
+ (vn_nary_op_lookup): Likewise.
+ (vn_nary_op_lookup_stmt): Likewise.
+ (vn_nary_op_insert_into): Likewise.
+ (vn_nary_op_insert_stmt): Likewise.
+ (visit_use): Handle CONSTRUCTOR as nary.
+ * tree-ssa-pre.c (phi_translate_1): Adjust.
+ (create_expression_by_pieces): Likewise.
+ (compute_avail): Likewise.
+
+2011-09-06 Ira Rosen <ira.rosen@linaro.org>
+
+ * config/arm/arm.c (arm_preferred_simd_mode): Check
+ TARGET_NEON_VECTORIZE_DOUBLE instead of
+ TARGET_NEON_VECTORIZE_QUAD.
+ (arm_autovectorize_vector_sizes): Likewise.
+ * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
+ mask of mvectorize-with-neon-double. Add RejectNegative.
+ (mvectorize-with-neon-double): New.
+
+2011-09-06 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify
+ matching.
+
+2011-09-06 Tom de Vries <tom@codesourcery.com>
+
+ * recog.c (asm_labels_ok): New function.
+ (check_asm_operands): Use asm_labels_ok.
+
+2011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
+
+ PR target/49606
+ * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
+ (PMODE_INSN): New macro.
+ * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
+ (mips_got_load, mips_expand_synci_loop): Likewise.
+ (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
+ cprestore patterns.
+ (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode
+ copygp_mips16 patterns.
+ (mips_expand_prologue): Handle SImode and DImode potential_cprestore
+ and use_cprestore patterns.
+ (mips_override_options): Check for incompatible -mabi and -mlong
+ combinations.
+ * config/mips/mips.md (unspec_got<mode>): Rename to...
+ (unspec_got_<mode>): ...this.
+ (copygp_mips16): Use the Pmode iterator.
+ (potential_cprestore, cprestore, use_cprestore): Likewise.
+ (clear_cache, indirect_jump): Use PMODE_INSN.
+ (indirect_jump<mode>): Rename to...
+ (indirect_jump_<mode>): ...this.
+ (tablejump): Use PMODE_INSN.
+ (tablejump<mode>): Rename to...
+ (tablejump_<mode>): ...this.
+ (exception_receiver): Handle restore_gp_si and restore_gp_di.
+ (restore_gp): Use the Pmode iterator.
+ * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
+ PMODE_INSN.
+
+2011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
+ Fix the type of the BIT_AND_EXPR.
+
+2011-09-05 David S. Miller <davem@davemloft.net>
+
+ * config.host: Add driver-sparc.o and sparc/x-sparc on
+ native sparc*-*-linux* builds.
+ * config/sparc/driver-sparc.c: Correct Linux strings.
+ * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
+ * config/sparc/linux64.h: Likewise.
+ * doc/invoke.texi: Document that Linux also supports
+ -mcpu=native and -mtune=native on sparc.
+
+ * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
+ PROCESSOR_NIAGARA4): New.
+ * config/sparc/sparc.opt: Handle new processor types.
+ * config/sparc/sparc.md: Add to "cpu" attribute.
+ * config/sparc/sparc.h (TARGET_CPU_niagara3,
+ TARGET_CPU_niagara4): New, treat as niagara2.
+ * config/sparc/linux64.h: Handle niagara3 and niagara4
+ like niagara2.
+ * config/sparc/sol2.h: Likewise.
+ * config/sparc/niagara2.md: Schedule niagara3 like
+ niagara2.
+ * config/sparc/sparc.c (sparc_option_override): Add
+ niagara3 and niagara4 handling.
+ (sparc32_initialize_trampoline): Likewise.
+ (sparc64_initialize_trampoline): Likewise.
+ (sparc_use_sched_lookahead): Likewise.
+ (sparc_issue_rate): Likewise.
+ (sparc_register_move_cost): Likewise.
+ * config/sparc/driver-sparc.c (cpu_names): Use niagara3
+ and niagara4 as appropriate.
+ * doc/invoke.texi: Document new processor types.
+ * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
+ and --with-tune options.
+
+ * config/sparc/sol2-64.h: Move ...
+ * config/sparc/default-64.h: ... to here. Update comment.
+ * config.gcc: Update Solaris sparc to use default-64.h, also
+ prefix this header into the list on sparc64-*-linux.
+ * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
+ TARGET_64BIT_DEFAULT is defined. Remove commented out reference
+ to MASK_HARD_QUAD.
+
+2011-09-05 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/50289
+ * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
+ that contain global register variable.
+
+2011-09-05 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
+
+2011-09-05 Richard Guenther <rguenther@suse.de>
+
+ * stor-layout.c (layout_type): Use size_binop for array size
+ calculations.
+
+2011-09-05 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.h (progmem_section): Remove Declaration.
+ * config/avr/avr.c (progmem_section): Make static and rename to
+ progmem_swtable_section.
+ (avr_output_addr_vec_elt): No need to switch sections.
+ (avr_asm_init_sections): Use output_section_asm_op as section
+ callback for progmem_swtable_section.
+ (avr_output_progmem_section_asm_op): Remove Function.
+ (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
+ (avr_asm_function_rodata_section): New static Function.
+ * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
+ alignment 2**1 for jump tables.
+
+2011-09-04 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
+ parameter is SSA name.
+
+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.
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.
+ * 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>
(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.
+ * 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.
* 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>
+2011-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