gcc/
* tree-ssa-math-opts.c (convert_plusminus_to_widen): Call
has_single_use () and not do the conversion if has_single_use ()
returns false for the multiplication result.
gcc/testsuite/
* gcc.dg/wmul-1.c: New test.
From-SVN: r204072
* tree.h (EXCEPTIONAL_CLASS_P): Rename parameter from "CODE"
to "NODE", since this works on a "tree", not an
"enum tree_code".
(CONSTANT_CLASS_P): Likewise.
(TYPE_P): Likewise.
(DECL_P): Likewise.
(INDIRECT_REF_P): Likewise.
(REFERENCE_CLASS_P): Likewise.
(COMPARISON_CLASS_P): Likewise.
(UNARY_CLASS_P): Likewise.
(BINARY_CLASS_P): Likewise.
(STATEMENT_CLASS_P): Likewise.
(VL_EXP_CLASS_P): Likewise.
(EXPRESSION_CLASS_P): Likewise.
(IS_TYPE_OR_DECL_P): Likewise.
From-SVN: r204070
libiberty/
2013-10-25 Gary Benson <gbenson@redhat.com>
* cp-demangle.c (struct d_saved_scope): New structure.
(struct d_print_info): New fields saved_scopes and
num_saved_scopes.
(d_print_init): Initialize the above.
(d_print_free): New function.
(cplus_demangle_print_callback): Call the above.
(d_copy_templates): New function.
(d_print_comp): New variables saved_templates and
need_template_restore.
[DEMANGLE_COMPONENT_REFERENCE,
DEMANGLE_COMPONENT_RVALUE_REFERENCE]: Capture scope the first
time the component is traversed, and use the captured scope for
subsequent traversals.
* testsuite/demangle-expected: Add regression test.
From-SVN: r204068
2013-10-25 Marc Glisse <marc.glisse@inria.fr>
gcc/
* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an
ADDR_EXPR in the defining statement.
gcc/testsuite/
* gcc.dg/tree-ssa/alias-23.c: New file.
From-SVN: r204065
2013-10-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/58626
* tree-loop-distribution.c (enum rdg_dep_type): Remove
anti_dd, output_dd and input_dd.
(struct rdg_edge): Remove level and relation members.
(RDGE_LEVEL, RDGE_RELATION): Remove.
(dot_rdg_1): Adjust.
(create_rdg_edge_for_ddr): Remove.
(create_rdg_edges_for_scalar): Adjust.
(create_edge_for_control_dependence): Likewise.
(create_rdg_edges): Split into ...
(create_rdg_flow_edges): ... this
(create_rdg_cd_edges): ... and this.
(free_rdg): Adjust.
(build_rdg): Likewise, do not compute data dependences or
add edges for them.
(pg_add_dependence_edges): New function.
(pgcmp): Likewise.
(distribute_loop): First apply all non-dependence based
partition mergings. Then compute dependences between partitions
and merge and order partitions according to them.
* gcc.dg/torture/pr58626.c: New testcase.
From-SVN: r204062
PR rtl-optimization/58831
* alias.c (init_alias_analysis): At the beginning of each iteration, set
the reg_seen[N] bit if static_reg_base_value[N] is non-null.
From-SVN: r204055
* c-c++-common/pr57793.c: Add expected error messages for
targets with small integers.
* gcc.dg/c99-stdint-1.c: Only run on 32-bit plus targets.
* gcc.dg/c99-stdint-2.c: Likewise.
* gcc.dg/cdce1.c: Likewise.
* gcc.dg/fold-overflow-1.c: Likewise.
* gcc.dg/utf-cvt.c: Likewise.
* gcc.dg/ftrapv-1.c: Only run on targets that support trapping
arithmetic.
* gcc.dg/ftrapv-2.c: Likewise.
* gcc.dg/pr30286.c: Likewise.
* gcc.dg/pr19340.c: Only run on targets that support
scheduling.
* lib/target-supports.exp (check_effective_target_trapping): New
proc. Returns true if the target supports trapping arithmetic.
From-SVN: r204053
* expr.c (expand_expr_real_1): Use mode of memory reference rather
than mode of address computation when calling memory_address_addr_space.
From-SVN: r204044
2013-08-24 Sriraman Tallam <tmsriram@google.com>
* cgraph.c (cgraph_fnver_htab): Move GTY((...)) to be before htab_t.
Change param_is to use the struct and not the pointer to the struct.
From-SVN: r204039
* tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p ): Check both
[reg+mult*reg] and [mult*reg] to determine if multiplier is allowed.
From-SVN: r204031
PR ipa/58712
* cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee
as argument.
(cgraph_create_edge): Use the new argument.
(cgraph_create_indirect_edge): Likewise.
From-SVN: r204026
2013-10-24 Tobias Burnus <burnus@net-b.de>
PR fortran/44646
* trans-stmt.c (struct forall_info): Add do_concurrent field.
(gfc_trans_forall_1): Set it for do concurrent.
(gfc_trans_forall_loop): Mark those as annot_expr_ivdep_kind.
2013-10-24 Tobias Burnus <burnus@net-b.de>
PR fortran/44646
* gfortran.dg/vect/vect-do-concurrent-1.f90: New.
From-SVN: r204023
2013-10-23 David Malcolm <dmalcolm@redhat.com>
* gengtype-parse.c (require_without_advance): New.
(type): For GTY-marked types that are not GTY((user)), parse any
base classes, requiring them to be single-inheritance, and not
be templates. For non-GTY-marked types and GTY((user)),
continue to skip over any C++ inheritance specification.
* gengtype-state.c (state_writer::write_state_struct_type):
Write base class of type (if any).
(read_state_struct_type): Read base class of type (if any).
* gengtype.c (new_structure): Add a "base_class" parameter.
(create_optional_field_): Update for new parameter to
new_structure.
(adjust_field_rtx_def): Likewise.
(adjust_field_tree_exp): Likewise.
* gengtype.h (struct type): Add "base_class" field to the s
union field.
(new_structure): Add "base" parameter.
From-SVN: r204003
PR target/57756
Replace further references to global_options in functions
ix86_option_override_internal and ix86_valid_target_attribute_tree
in config/i386/i386.c.
PR target/57756
* config/i386/i386.c (ix86_option_override_internal):
Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
(ix86_valid_target_attribute_tree):
Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
Change TARGET_SSE to TARGET_SSE_P (opts->...)
From-SVN: r203991