* tree-vect-loop.c (vect_transform_loop): Initialize
check_profitability to false.
* tree-predcom.c (try_combine_chains): Free the worklist vector
at the end.
From-SVN: r190592
2012-08-22 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/54317
gcc/
* tree-vrp.c (extract_range_from_binary_expr_1): Test for
double_int overflow.
Remove dead tests.
gcc/testsuite/
* gcc.dg/tree-ssa/vrp79.c: New testcase.
From-SVN: r190591
* tree-ssa-coalesce.c (struct ssa_conflicts_d): Make contents
of this a VEC and add a bitmap obstack.
(ssa_conflicts_new): Allocate the obstack and grow the VEC cleared
to the right size.
(ssa_conflicts_delete): Free the VEC and release the obstack.
(ssa_conflicts_test_p, ssa_conflicts_test_p, ssa_conflicts_add_one,
ssa_conflicts_merge, ssa_conflicts_dump): Update for above changes.
(truct live_track_d): Add another bitmap obstack here.
(new_live_track): Initialize it and use it for all bitmaps.
(delete_live_track): Don't free the bitmaps one at a time, just
release the obstack.
(create_outofssa_var_map): Fix to conform to GCC code style rules.
From-SVN: r190589
* Makefile.in (vis_hide, gen-hide-list): Do not make definitions
depend on --enable-shared.
($(lib1asmfuncs-o)): Use %.vis files independent of
--enable-shared.
* static-object.mk ($(base)$(objext), $(base).vis)
($(base)_s$(objext)): Use same rules for visibility handling as in
shared-object.mk.
From-SVN: r190588
2012-08-21 Tobias Burnus <burnus@net-b.de>
* parse.c (parse_contained): Include EXEC_END_PROCEDURE
in ns->code to make sure the gfc_code is freed.
From-SVN: r190575
2012-08-21 Richard Guenther <rguenther@suse.de>
* tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free
the affine expansion cache.
* tree-ssa-dom.c (free_expr_hash_elt_contents): New function,
split out from ...
(free_expr_hash_elt): ... this one.
(record_cond): Properly free a not needed hashtable element.
(lookup_avail_expr): Likewise.
* tree-into-ssa.c (init_ssa_renamer): Specify a free function
for the var_infos hashtable.
(update_ssa): Likewise.
From-SVN: r190560
2012-08-21 Richard Guenther <rguenther@suse.de>
cp/
* cp-tree.h (TREE_INDIRECT_USING): Use TREE_LANG_FLAG_0 accessor.
(ATTR_IS_DEPENDENT): Likewise.
(ARGUMENT_PACK_INCOMPLETE_P): Use TREE_ADDRESSABLE instead of
TREE_LANG_FLAG_0 on TREE_VECs.
* tree.h (struct tree_base): Add union to make it possible to
re-use the upper 4 bytes for tree codes that do not need as
many flags as others. Move visited and default_def_flag to
common bits section in exchange for saturating_flag and
unsigned_flag. Add SSA name version and tree vec length
fields here.
(struct tree_vec): Remove length field here.
(struct tree_ssa_name): Remove version field here.
From-SVN: r190558
2012-08-20 Tobias Burnus <burnus@net-b.de>
PR fortran/54301
* expr.c (gfc_check_pointer_assign): Warn when a pointer,
which is a function result, might outlive its target.
2012-08-20 Tobias Burnus <burnus@net-b.de>
PR fortran/54301
* gfortran.dg/warn_target_lifetime_2.f90: New.
From-SVN: r190542
PR rtl-optimization/54294
* fwprop.c (all_uses_available_at): Ignore debug insns in between
def_insn and target_insn when checking whether the shortcut is
possible.
From-SVN: r190541
Found this while running -ftime-report on a largish C++ source file.
We need to start TV_NAME_LOOKUP conditionally inside poplevel()
because it may be called from another lookup routine that already has
TV_NAME_LOOKUP going.
Tested on x86_64. Committed to trunk.
2012-08-20 Diego Novillo <dnovillo@google.com>
* decl.c (poplevel): Start TV_NAME_LOOKUP conditionally.
From-SVN: r190535
PR tree-ssa/54295
* tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
New function.
(is_widening_mult_rhs_p): Use it.
* gcc.c-torture/execute/20120817-1.c: New test.
From-SVN: r190533
2012-08-20 Richard Guenther <rguenther@suse.de>
* name-lookup.c (store_binding_p): New predicate, split out from ...
(store_binding): ... here. Always store binding and require
target vector with enough space.
(store_bindings): Collect to store bindings and reserve space
for them, then store them.
(store_class_bindings): Likewise.
From-SVN: r190529
2012-08-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/54327
* gimple-fold.c (get_maxval_strlen): Do not walk use-def chains
if the use is registered for SSA update.
* gcc.dg/torture/pr54327.c: New testcase.
From-SVN: r190528
PR tree-optimization/54321
* tree-ssa-forwprop.c (simplify_builtin_call): Pass 0 instead of 1
as second argument to tree_low_cst call on val2.
* gcc.c-torture/compile/pr54321.c: New test.
From-SVN: r190526
2012-08-19 Thomas König <tkoenig@gcc.gnu.org>
PR fortran/54298
* gfortran.h (struct gfc_option_t): Add warn_compare_reals.
* lang.opt: Add Wcompare-reals.
* invoke.texi: Document -Wcompare-reals.
* resolve.c (resolve_operator): If -Wcompare-reals is in effect,
warn about equality/inequality comparisions for REAL and COMPLEX.
* options.c (gfc_init_options): Set warn_compare_reals.
(set_Wall): Include warn_compare_reals in Wall.
(gfc_handle_option): Handle Wcompare_reals.
2012-08-19 Thomas König <tkoenig@gcc.gnu.org>
PR fortran/54298
* gfortran.dg/real_compare_1.f90: New test case.
* gfortran.dg/bessel_5.f90 Add -Wno-compare-reals to options.
From-SVN: r190516
* layout.adb (Set_Elem_Alignment): Cap the alignment of access types
to that of a regular access type for non-strict-alignment platforms.
* gcc-interface/utils.c (finish_fat_pointer_type): Do not set the
alignment for non-strict-alignment platforms.
From-SVN: r190515