OSDN Git Service

2010-03-11 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index dc260e5..a6fc80d 100644 (file)
@@ -1,3 +1,368 @@
+2010-03-11  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43255
+       * tree-vrp.c (process_assert_insertions_for): Do not insert
+       asserts for trivial conditions.
+
+2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       PR tree-optimization/43280
+       * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number generation.
+       Move calculation of size out of the if branch.
+       (find_bswap): Modify compare number generation.
+
+2010-03-11  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/43200
+       * lto-streamer-in.c (maybe_fixup_decls): Simplify.
+       (input_gimple_stmt): Fixup handled component types during
+       operand read.  Also fix up decls in ADDR_EXPRs.
+
+2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
+       * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
+
+2010-03-10  Jan Hubicka  <jh@suse.cz>
+
+       PR c/43288
+       * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
+       * varasm.c (get_variable_section): Don't do that here...
+       (make_decl_rtl): ... and here.
+       (do_assemble_alias): Produce decl RTL.
+       (assemble_alias): Likewise.
+
+2010-03-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/43290
+       * reg-notes.def (REG_CFA_SET_VDRAP): New note.
+       * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
+       of fde->vdrap_reg.
+       (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
+       (based_loc_descr): Only express drap or vdrap regno based expressions
+       using DW_OP_fbreg when not optimizing.
+       * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
+       make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
+       REG_CFA_SET_VDRAP note.
+
+2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR tree-optimization/43236
+       * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
+       error in calculation of base address in reverse iteration case.
+       (generate_builtin): Take number of latch executions if the statement
+       is in the latch.
+
+2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR middle-end/42859
+       * tree-eh.c: Include pointer-set.h.
+       (lower_eh_dispatch): Filter out duplicate case labels and
+       remove the unneeded edge when the label is unused.  Return
+       true when some edges are removed.
+       (execute_lower_eh_dispatch): When any lowering resulted in
+       removing an edge, also delete unreachable blocks.
+
+2010-03-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/43287
+       * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
+       UNSPEC_MACHOPIC_OFFSET.
+
+2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
+
+       PR target/43294
+       * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
+       (m68k_delegitimize_address): New function.
+
+2010-03-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/43299
+       * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
+
+       PR debug/43299
+       * var-tracking.c (adjust_sets): New function.
+       (count_with_sets, add_with_sets): Use it.
+       (get_adjusted_src): New inline function.
+       (add_stores): Use it.
+
+       PR debug/43304
+       * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
+       call cselib_dummy_expand_value_rtx_cb instead of
+       cselib_expand_value_rtx_cb.
+
+       PR debug/43293
+       * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
+       * config/i386/i386.c: Include debug.h and dwarf2out.h.
+       (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
+       and .cfi_endproc around the pic thunks.
+       (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
+       all queued unwind info register saves are saved before the call.
+       For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
+       considered as sp-=4 for unwind info and the pop as sp+=4 which
+       also clobbers dest, but doesn't actually restore it.
+
+       PR debug/43290
+       * config/i386/i386.c (ix86_get_drap_rtx): Don't set
+       RTX_FRAME_RELATED_P.
+
+2010-03-09  Jie Zhang  <jie@codesourcery.com>
+
+       * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
+       whitespaces in output template.
+
+2010-03-09  Jie Zhang  <jie@codesourcery.com>
+
+       * ira-lives.c (check_and_make_def_use_conflict): Don't fall
+       out array boundary.
+
+2010-03-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
+       builtins.exp in a separate job.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-sese-to-poly.c (add_param_constraints): Use
+       lower_bound_in_type and upper_bound_in_type.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
+       instead of unsigned_type_node.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+           Reza Yazdani  <reza.yazdani@amd.com>
+
+       PR middle-end/43065
+       * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
+       on pointer type parameters.
+
+2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
+
+       PR middle-end/42644
+       PR middle-end/42130
+       * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
+       handle conversions from pointer to integers.
+       (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
+       induction variable, to be able to work with code generated by
+       CLooG.
+       * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
+       (build_poly_scop): Bail out if we cannot codegen a loop.
+
+2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
+
+       * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
+       code generation with gloog_error.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
+       Call fold_convert on all the returned values.
+       (expand_scalar_variables_expr): Pass to expand_scalar_variables_ssa_name
+       the type of the resulting expression.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
+       ppl_min_for_le_pointset.  Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
+       * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-dependences.c (map_into_dep_poly): Removed.
+       (dependence_polyhedron_1): Use combine_context_id_scat.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-poly.h (struct poly_scattering): Add layout documentation.
+       (struct poly_bb): Same.
+       (combine_context_id_scat): New.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       PR middle-end/42326
+       * sese.c (name_defined_in_loop_p): Return false for default
+       definitions.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
+       and clean up the logic.
+
+2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
+       early return.
+
+2010-03-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * var-tracking.c (remove_cselib_value_chains): Define only for
+       ENABLE_CHECKING.
+       (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
+       delete_slot_part, emit_notes_for_differences_1): Don't call
+       remove_cselib_value_chains here.
+       (set_slot_part, emit_notes_for_differences_2): Don't call
+       add_cselib_value_chains here.
+       (preserved_values): New vector.
+       (preserve_value): New function.
+       (add_uses, add_stores, vt_add_function_parameters): Use it
+       instead of cselib_preserve_value.
+       (changed_values_stack): New vector.
+       (check_changed_vars_0): New function.
+       (check_changed_vars_1, check_changed_vars_2): Use it.
+       (emit_notes_for_changes): Call set_dv_changed (*, false) on all
+       changed_values_stack VALUEs.
+       (vt_emit_notes): For all preserved_values call
+       add_cselib_value_chains.  If ENABLE_CHECKING call
+       remove_cselib_value_chains before verifying value_chains is empty.
+       Initialize and free changed_values_stack.
+       (vt_initialize): Initialize preserved_values.
+       (vt_finalize): Free preserved_values.
+
+2010-03-08  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43269
+       * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
+       region detection.
+
+2010-03-08  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
+       (ipa_is_param_called): Removed.
+       * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
+       (ipa_print_node_params): Do not print the called flag.
+       (ipa_write_node_info): Do not stream the called flag.
+       (ipa_read_node_info): Likewise.
+
+2010-03-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/43176
+       * Makefile.in (var-tracking.o): Depend on pointer-set.h.
+       * cselib.c (struct expand_value_data): Add dummy field.
+       (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
+       dummy to false.
+       (cselib_dummy_expand_value_rtx_cb): New function.
+       (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
+       any rtl.
+       * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
+       * var-tracking.c: Include pointer-set.h.
+       (variable): Change n_var_parts to char from int.  Add
+       cur_loc_changed and in_changed_variables fields.
+       (variable_canonicalize): Remove.
+       (shared_var_p): New inline function.
+       (unshare_variable): Maintain cur_loc_changed and
+       in_changed_variables fields.  If var was in changed_variables,
+       replace it there with new_var.  Just copy cur_loc instead of
+       resetting it to something else.
+       (variable_union): Don't recompute cur_loc.  Use shared_var_p.
+       (dataflow_set_union): Don't call variable_canonicalize.
+       (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
+       of their DEBUG_EXPR_TREE_DECLs.
+       (canonicalize_loc_order_check): Verify that cur_loc is NULL
+       and in_changed_variables and cur_loc_changed is false.
+       (variable_merge_over_cur): Clear cur_loc, in_changed_variables
+       and cur_loc_changed.  Don't update cur_loc here.
+       (variable_merge_over_src): Don't call variable_canonicalize.
+       (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
+       removing loc that is equal to cur_loc, clear cur_loc,
+       set cur_loc_changed and ensure variable_was_changed is called.
+       (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
+       compare pointers in cur_loc check, if it is equal to loc,
+       clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
+       (variable_different_p): Remove compare_current_location argument,
+       don't compare cur_loc.
+       (dataflow_set_different_1): Adjust variable_different_p caller.
+       (variable_was_changed): If dv had some var in changed_variables
+       already, reset in_changed_variables flag for it and propagate
+       cur_loc_changed over to the new variable.  On empty var
+       always set cur_loc_changed.  Set in_changed_variables on whatever
+       var is added to changed_variables.
+       (set_slot_part): Clear cur_loc_changed and in_changed_variables.
+       Use shared_var_p.  When removing loc that is equal to cur_loc,
+       clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
+       end, don't set it to something else, just call variable_was_changed.
+       (delete_slot_part): Use shared_var_p.  When cur_loc equals to
+       loc being removed, clear cur_loc and set cur_loc_changed.
+       Set cur_loc_changed if all locations have been removed.
+       (struct expand_loc_callback_data): New type.
+       (vt_expand_loc_callback): Add dummy mode in which no rtxes are
+       allocated.  Always create SUBREGs if simplify_subreg failed.
+       Prefer to use cur_loc, when that fails and still in
+       changed_variables (and seen first time) recompute it.  Set
+       cur_loc_changed of variables which had to change cur_loc and
+       compute elcd->cur_loc_changed if any of the subexpressions used
+       had to change cur_loc.
+       (vt_expand_loc): Adjust to pass arguments in
+       expand_loc_callback_data structure.
+       (vt_expand_loc_dummy): New function.
+       (emitted_notes): New variable.
+       (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
+       that weren't used for any other decl in current
+       emit_notes_for_changes call call vt_expand_loc_dummy to update
+       cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
+       first loc_chain location if NULL before.  Always use just
+       cur_loc instead of first loc_chain location.  When cur_loc_changed
+       is false, when not --enable-checking=rtl just don't emit any note.
+       When rtl checking, compute the note and assert it is the same
+       as previous note.  Clear cur_loc_changed and in_changed_variables
+       at the end before removing from changed_variables.
+       (check_changed_vars_3): New function.
+       (emit_notes_for_changes): Traverse changed_vars to call
+       check_changed_vars_3 on each changed var.
+       (emit_notes_for_differences_1): Clear cur_loc_changed and
+       in_changed_variables.  Recompute cur_loc of new_var.
+       (emit_notes_for_differences_2): Clear cur_loc if new variable
+       appears.
+       (vt_emit_notes): Initialize and destroy emitted_notes.
+
+2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       PR rtl-optimization/42220
+       * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
+       Use verify_reg_tracked to determine if we should use OP_OUT rather
+       than OP_INOUT.
+       (build_def_use): If we see an in-out operand for a register that we
+       know nothing about, treat is an output if possible, fail the block if
+       not.
+
+2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/42897
+       * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
+       permanently.
+
+2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/42897
+       * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
+       uses of relevant DEFs that are dead outside the loop too.
+
+2010-03-06  Alexandre Oliva <aoliva@redhat.com>
+
+       * var-tracking.c (dataflow_set_merge): Swap src and src2.
+       Reverted:
+       2010-01-13  Jakub Jelinek  <jakub@redhat.com>
+       PR debug/41371
+       * var-tracking.c (values_to_unmark): New variable.
+       (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
+       values_to_unmark vector.  Moved body to...
+       (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
+       instead queue it into values_to_unmark vector.
+       (vt_find_locations): Free values_to_unmark vector.
+
+2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
+       (site.exp): Export them when plugins are enabled.
+
+2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
+
+       PR middle-end/42326
+       * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
+       that contain scevs.
+       (chrec_fold_multiply): Same.
+
 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
 
        PR c/43248