OSDN Git Service

2011-09-05 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index dbf798f..b106227 100644 (file)
@@ -1,3 +1,206 @@
+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.