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
* class.c (user_provided_p): A function deleted on its declation
in the class is not user-provided.
(type_build_ctor_call): Also force a ctor call if we
might have a deleted or private trivial ctor.
(type_build_dtor_call): New.
(deduce_noexcept_on_destructors): Remove obsolete code.
* cp-tree.h: Declare type_build_dtor_call.
* decl.c (expand_static_init): Make sure trivial dtors are callable.
(cxx_maybe_build_cleanup): Likewise.
* except.c (build_throw): Likewise.
* init.c (build_value_init): Handle trivial but not callable ctors.
(perform_target_ctor): Make sure trivial dtor is callable.
(perform_member_init): Likewise.
(expand_cleanup_for_base): Likewise.
(build_vec_delete_1): Likewise.
(build_delete): Likewise.
(push_base_cleanups): Likewise.
(build_new_1): Avoid redundant error.
* method.c (synthesized_method_walk): Can't ever exit early in C++11.
Always process the subobject destructor.
* semantics.c (finish_compound_literal): Make sure trivial dtor is
callable.
* typeck2.c (split_nonconstant_init): Likewise.
From-SVN: r203985
PR tree-optimization/58775
PR tree-optimization/58791
* tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function.
(insert_stmt_after): Rewritten, don't move the stmt, but really
insert it.
(get_stmt_uid_with_default): Remove.
(build_and_add_sum): Use insert_stmt_after and
reassoc_stmt_dominates_stmt_p. Fix up uid if bb contains only
labels.
(update_range_test): Set uid on stmts added by
force_gimple_operand_gsi. Don't immediately modify statements
in inter-bb optimization, just update oe->op values.
(optimize_range_tests): Return bool whether any changed have
been made.
(update_ops): New function.
(struct inter_bb_range_test_entry): New type.
(maybe_optimize_range_tests): Perform statement changes here.
(not_dominated_by, appears_later_in_bb, get_def_stmt,
ensure_ops_are_available): Remove.
(find_insert_point): Rewritten.
(rewrite_expr_tree): Remove MOVED argument, add CHANGED argument,
return LHS of the (new resp. old) stmt. Don't call
ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first
instead of last, move new stmt at the right place.
(linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs.
(negate_value): Likewise. Set uids.
(break_up_subtract_bb): Initialize uids.
(reassociate_bb): Adjust rewrite_expr_tree caller.
(do_reassoc): Don't call renumber_gimple_stmt_uids.
* gcc.dg/guality/pr58791-1.c: New test.
* gcc.dg/guality/pr58791-2.c: New test.
* gcc.dg/guality/pr58791-3.c: New test.
* gcc.dg/guality/pr58791-4.c: New test.
* gcc.dg/guality/pr58791-5.c: New test.
* gcc.c-torture/compile/pr58775.c: New test.
* gcc.dg/tree-ssa/reassoc-28.c: Don't scan reassoc1 dump.
From-SVN: r203979
* tree-ssa-threadedge.c (thread_across_edge): Do not allow threading
through joiner blocks with abnormal outgoing edges.
* tree-ssa-threadupdate.c (thread_block_1): Renamed from thread_block.
Add parameter JOINERS, to allow/disallow threading through joiner
blocks.
(thread_block): New. Call thread_block_1.
(mark_threaded_blocks): Remove code to filter out certain cases
of threading through joiner blocks.
(thread_through_all_blocks): Document how we can have a dangling
edge AUX field and clear it.
From-SVN: r203975
* tree-vect-patterns.c (vect_recog_divmod_pattern): Optimize
sequence based on get_range_info returned range.
* gcc.target/i386/vect-div-1.c: New test.
From-SVN: r203969
2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/58815
* include/decimal/decimal (decimal32::operator long long(),
decimal64::operator long long(), decimal128::operator long long()):
Add in c++11 mode per n3407.
* testsuite/decimal/pr58815.cc: New.
From-SVN: r203956
* i386.h (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES): New tuning flag.
* x86-tune.def (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES): Define it.
* i386.c (expand_small_movmem_or_setmem): New function.
(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): New function
(alg_usable_p): Add support for value ranges; cleanup.
(ix86_expand_set_or_movmem): Add support for misaligned moves.
From-SVN: r203937
2013-10-22 Sterling Augustine <saugustine@google.com>
* doc/invoke.texi: Document -ggnu-pubnames.
* common.opt: Add new option -ggnu-pubnames and modify -gpubnames
logic.
* dwarf2out.c: Include gdb/gdb-index.h.
(DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Handle
debug_generate_pub_sections.
(is_java, output_pubtables, output_pubname): New functions.
(include_pubname_in_output): Handle debug_generate_pub_sections at
level 2.
(size_of_pubnames): Use new local space_for_flags based on
debug_generate_pub_sections.
(output_pubnames): Unify pubnames and pubtypes output logic.
Genericize comments. Call output_pubname.
(dwarf2out_finish): Move logic to output_pubnames and call it.
From-SVN: r203936
gcc:
2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
meaning of merge-high and merge-low masks for little endian; avoid
use of vector-pack masks for little endian for mismatched modes.
gcc/testsuite:
2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
* gcc.target/powerpc/altivec-perm-1.c: Move the two vector pack
tests into...
* gcc.target/powerpc/altivec-perm-3.c: ...this new test, which is
restricted to big-endian targets.
From-SVN: r203930
2013-10-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58816
* pt.c (apply_late_template_attributes): Use get_attribute_name,
not TREE_PURPOSE.
From-SVN: r203919
2013-10-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran 57893
* class.c : Include target-memory.h.
(gfc_find_intrinsic_vtab) Build a minimal expression so that
gfc_element_size can be used to obtain the storage size, rather
that the kind value.
2013-10-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran 57893
* gfortran.dg/unlimited_polymorphic_13.f90 : New test.
From-SVN: r203915