]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
8 years ago PR tree-optimization/69848
amker [Fri, 12 Aug 2016 14:58:20 +0000 (14:58 +0000)] 
PR tree-optimization/69848
* tree-vectorizer.h (enum vect_def_type): New condition reduction
type CONST_COND_REDUCTION.
* tree-vect-loop.c (vectorizable_reduction): Support new condition
reudction type CONST_COND_REDUCTION.

gcc/testsuite
PR tree-optimization/69848
* gcc.dg/vect/vect-pr69848.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239416 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR testsuite/71008
uros [Fri, 12 Aug 2016 13:44:13 +0000 (13:44 +0000)] 
PR testsuite/71008
* gcc.target/i386/avx512f-vprord-1.c: Scan also for vprold.
* gcc.target/i386/avx512f-vprorq-1.c: Scan also for vprolq.
* gcc.target/i386/avx512vl-vprord-1.c: Scan also for vprold.
* gcc.target/i386/avx512vl-vprorq-1.c: Scan also for vprolq.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239415 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-12 Richard Biener <rguenther@suse.de>
rguenth [Fri, 12 Aug 2016 12:58:15 +0000 (12:58 +0000)] 
2016-08-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/57326
* tree-ssa-pre.c (fully_constant_expression): Handle simplification
returning an SSA name.
(phi_translate_1): When fully_constant_expression returns a NAME
make sure we have a leader for it.

* gcc.dg/tree-ssa/ssa-pre-32.c: New testcase.
* gcc.dg/tree-ssa/loadpre14.c: Adjust.
* gcc.dg/tree-ssa/pr35287.c: Likewise.
* gcc.target/i386/pr45685.c: Likewise.
* gcc.dg/tree-ssa/predcom-1.c: Disable PRE.
* gcc.dg/tree-ssa/predcom-2.c: Likewise.
* gcc.dg/tree-ssa/predcom-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-sink-10.c: Likewise.
* gfortran.dg/pr34163.f90: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239414 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoCreate x.gcov file for binary w/o x.gcda file (PR
marxin [Fri, 12 Aug 2016 12:23:32 +0000 (12:23 +0000)] 
Create x.gcov file for binary w/o x.gcda file (PR

* g++.dg/gcov/gcov-16.C: New test.
* lib/gcov.exp: Support new argument for run-gcov function.
    Adam Fineman  <afineman@afineman.com>

* gcov.c (process_file): Create .gcov file when .gcda
file is missing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239413 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd test coverage for PR gcov-profile/35590
marxin [Fri, 12 Aug 2016 12:12:51 +0000 (12:12 +0000)] 
Add test coverage for PR gcov-profile/35590

PR gcov-profile/35590
* gcc.dg/tree-prof/val-prof-7.c: Improve test coverage.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239412 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c/7652
mpolacek [Fri, 12 Aug 2016 10:30:47 +0000 (10:30 +0000)] 
PR c/7652
gcc/
* alias.c (find_base_value): Adjust fall through comment.
* cfgexpand.c (expand_debug_expr): Likewise.
* combine.c (find_split_point): Likewise.
(expand_compound_operation): Likewise.  Add FALLTHRU.
(make_compound_operation): Adjust fall through comment.
(canon_reg_for_combine): Add FALLTHRU.
(force_to_mode): Adjust fall through comment.
(simplify_shift_const_1): Likewise.
(simplify_comparison): Likewise.
* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
FALLTHRU.
* config/aarch64/predicates.md: Likewise.
* config/i386/i386.c (function_arg_advance_32): Likewise.
(ix86_gimplify_va_arg): Likewise.
(print_reg): Likewise.
(ix86_print_operand): Likewise.
(ix86_build_const_vector): Likewise.
(ix86_expand_branch): Likewise.
(ix86_sched_init_global): Adjust fall through comment.
(ix86_expand_args_builtin): Add FALLTHRU.
(ix86_expand_builtin): Likewise.
(ix86_expand_vector_init_one_var): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
(rs6000_adjust_cost): Likewise.
(insn_must_be_first_in_group): Likewise.
* config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
* dbxout.c (dbxout_symbol): Adjust fall through comment.
* df-scan.c (df_uses_record): Likewise.
* dojump.c (do_jump): Add FALLTHRU.
* dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
comment.
(resolve_args_picking_1): Adjust fall through comment.
(loc_list_from_tree_1): Likewise.
* expmed.c (make_tree): Likewise.
* expr.c (expand_expr_real_2): Add FALLTHRU.
(expand_expr_real_1): Likewise.  Adjust fall through comment.
* fold-const.c (const_binop): Adjust fall through comment.
(fold_truth_not_expr): Likewise.
(fold_cond_expr_with_comparison): Add FALLTHRU.
(fold_binary_loc): Likewise.
(contains_label_1): Adjust fall through comment.
(multiple_of_p): Likewise.
* gcov-tool.c (process_args): Add FALLTHRU.
* genattrtab.c (check_attr_test): Likewise.
(write_test_expr): Likewise.
* genconfig.c (walk_insn_part): Likewise.
* genpreds.c (validate_exp): Adjust fall through comment.
(needs_variable): Likewise.
* gensupport.c (get_alternatives_number): Add FALLTHRU.
(subst_dup): Likewise.
* gimple-pretty-print.c (dump_gimple_assign): Likewise.
* gimplify.c (gimplify_addr_expr): Adjust fall through comment.
(gimplify_scan_omp_clauses): Add FALLTHRU.
(goa_stabilize_expr): Likewise.
* graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
through comment.
* hsa-gen.c (get_address_from_value): Likewise.
* ipa-icf.c (sem_function::hash_stmt): Likewise.
* ira.c (ira_setup_alts): Add FALLTHRU.
* lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
comment.
* lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
* opts.c (common_handle_option): Likewise.
* read-rtl.c (read_rtx_code): Likewise.
* real.c (round_for_format): Likewise.
* recog.c (asm_operand_ok): Likewise.
* reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
* reload1.c (set_label_offsets): Likewise.
(eliminate_regs_1): Likewise.
(reload_reg_reaches_end_p): Likewise.
* rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
(rtx_cost): Likewise.
* sched-rgn.c (is_exception_free): Likewise.
* simplify-rtx.c (simplify_rtx): Adjust fall through comment.
* stor-layout.c (int_mode_for_mode): Likewise.
* toplev.c (print_to_asm_out_file): Likewise.
(print_to_stderr): Likewise.
* tree-cfg.c (gimple_verify_flow_info): Likewise.
* tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
(chrec_fold_multiply): Likewise.
(evolution_function_is_invariant_rec_p): Likewise.
(for_each_scev_op): Likewise.
* tree-data-ref.c (siv_subscript_p): Likewise.
(get_references_in_stmt): Likewise.
* tree.c (find_placeholder_in_expr): Adjust fall through comment.
(substitute_in_expr): Likewise.
(type_cache_hasher::equal): Likewise.
(walk_type_fields): Likewise.
* var-tracking.c (adjust_mems): Add FALLTHRU.
(set_dv_changed): Adjust fall through comment.
* varasm.c (default_function_section): Add FALLTHRU.
gcc/c-family/
* c-common.c (scalar_to_vector): Adjust fall through comment.
* c-opts.c (c_common_handle_option): Likewise.
* c-pragma.c (handle_pragma_pack): Add FALLTHRU.
* c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
fall through comment.
* cilk.c (extract_free_variables): Add FALLTHRU.
gcc/c/
* c-parser.c (c_parser_external_declaration): Add FALLTHRU.
(c_parser_postfix_expression): Likewise.
* c-typeck.c (build_unary_op): Adjust fall through comment.
(c_mark_addressable): Likewise.
gcc/cp/
* call.c (add_builtin_candidate): Add FALLTHRU.
(build_integral_nontype_arg_conv): Adjust fall through comment.
(build_new_op_1): Add FALLTHRU.
(convert_like_real): Adjust fall through comment.
* class.c (fixed_type_or_null): Likewise.
* constexpr.c (cxx_eval_constant_expression): Likewise.
(potential_constant_expression_1): Likewise.  Add FALLTHRU.
* cp-gimplify.c (cp_gimplify_expr): Adjust fall through comment.
(cp_fold): Add FALLTHRU.
* cvt.c (build_expr_type_conversion): Adjust fall through comment.
* cxx-pretty-print.c (pp_cxx_unqualified_id): Add FALLTHRU.
(pp_cxx_qualified_id): Likewise.
(cxx_pretty_printer::constant): Adjust fall through comment.
(cxx_pretty_printer::primary_expression): Add FALLTHRU.
(pp_cxx_pm_expression): Adjust fall through comment.
(cxx_pretty_printer::expression): Add FALLTHRU.
(cxx_pretty_printer::declaration_specifiers): Reformat code.
(pp_cxx_type_specifier_seq): Adjust fall through comment.
(pp_cxx_ptr_operator): Likewise.  Add FALLTHRU.
* error.c (dump_type): Adjust fall through comment.
(dump_decl): Likewise.
* mangle.c (write_type): Likewise.
* method.c (synthesized_method_walk): Add FALLTHRU.
* name-lookup.c (arg_assoc_type): Likewise.
* parser.c (cp_lexer_print_token): Adjust fall through comment.
(cp_parser_primary_expression): Add FALLTHRU.
(cp_parser_operator): Likewise.
* pt.c (find_parameter_packs_r): Likewise.
(tsubst_aggr_type): Adjust fall through comment.
* semantics.c (finish_omp_clauses): Add FALLTHRU.
* tree.c (lvalue_kind): Likewise.
gcc/fortran/
* decl.c (match_attr_spec): Add FALLTHRU.
* primary.c (match_arg_list_function): Likewise.
* resolve.c (resolve_operator): Adjust fall through comment.
(fixup_charlen): Add FALLTHRU.
(resolve_allocate_expr): Adjust fall through comment.
* trans-array.c (gfc_conv_ss_startstride): Add FALLTHRU.
* trans-intrinsic.c (gfc_conv_intrinsic_len): Adjust fall through
comment.
gcc/java/
* expr.c (java_truthvalue_conversion): Adjust fall through comment.
* jcf-io.c (verify_constant_pool): Likewise.
* typeck.c (promote_type): Likewise.
gcc/objc/
* objc-encoding.c (encode_type): Add FALLTHRU.
libcpp/
* lex.c (search_line_fast): Add FALLTHRU.
(_cpp_lex_direct): Likewise.
(cpp_token_val_index): Adjust fall through comment.
* macro.c (parse_params): Add FALLTHRU.
* pch.c (count_defs): Adjust fall through comment.
(write_defs): Likewise.
libiberty/
* cp-demangle.c (d_print_mod): Add FALLTHRU.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239410 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c/7652
mpolacek [Fri, 12 Aug 2016 10:15:57 +0000 (10:15 +0000)] 
PR c/7652
* tree-complex.c (expand_complex_division): Add missing break.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239409 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR sanitizer/71042
jakub [Fri, 12 Aug 2016 08:53:07 +0000 (08:53 +0000)] 
PR sanitizer/71042
* tsan/tsan_platform_linux.cc: Cherry-pick upstream r278292.
* tsan/tsan_rtl_aarch64.S: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239407 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-12 Richard Biener <rguenther@suse.de>
rguenth [Fri, 12 Aug 2016 07:38:24 +0000 (07:38 +0000)] 
2016-08-12  Richard Biener  <rguenther@suse.de>

* passes.c (execute_todo): Do not push/pop TV_TODO.
(execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
(execute_one_pass): Likewise.
* common.opt (ftime-report-details): New switch.
* doc/invoke.texi (ftime-report-details): Document.
* timevar.h (timer::print_row): Adjust signature.
(timer::all_zero): New static helper.
(timer::child_map_t): New typedef.
(timer::time_var_def): Add children field.
* timevar.c (timer::named_items::print): Adjust.
(timer::~timer): Free timevar recorded children.
(timer::pop_internal): When -ftime-report-details record
time spent in sub-timevars.
(timer::print_row): Adjust.
(timer::print): Print sub-timevar stats, use all_zero.
* timevar.def (TV_TODO): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239406 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-12 Richard Biener <rguenther@suse.de>
rguenth [Fri, 12 Aug 2016 07:34:40 +0000 (07:34 +0000)] 
2016-08-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/72851
* tree-ssa-propagate.c: Include cfganal.h.  Rewrite block and stmt
worklists to use bitmaps indexed in execution order.
(executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
(cfg_blocks): Make a bitmap.
(bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
New globals.
(cfg_blocks_empty_p): Adjust.
(cfg_blocks_add): Likewise.
(cfg_blocks_get): Likewise.
(add_ssa_edge): Likewise.
(add_control_edge): Likewise.
(simulate_stmt): Likewise.
(process_ssa_edge_worklist): Likewise.
(simulate_block): Likewise.
(ssa_prop_init): Compute PRE order and stmt UIDs.
(ssa_prop_fini): Adjust.
(ssa_propagate): Adjust.

* gcc.dg/torture/pr72851.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239405 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-12 Richard Biener <rguenther@suse.de>
rguenth [Fri, 12 Aug 2016 07:29:10 +0000 (07:29 +0000)] 
2016-08-12  Richard Biener  <rguenther@suse.de>

* tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
the currently executable edges have fixed ranges.  Always
go through update_value_range.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239404 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PR63240] generate debug info for defaulted member functions
aoliva [Fri, 12 Aug 2016 07:11:50 +0000 (07:11 +0000)] 
[PR63240] generate debug info for defaulted member functions

This implements <http://dwarfstd.org/ShowIssue.php?issue=141215.3>, a
proposal already accepted for inclusion in DWARF-5, but using
DW_AT_GNU_defaulted instead of DW_AT_defaulted as the attribute name,
because the attribute id for DW_AT_defaulted is not yet publicly
available.

for  include/ChangeLog

PR debug/63240
* dwarf2.def (DW_AT_deleted, DW_AT_defaulted): New.
* dwarf2.h (enu dwarf_defaulted_attribute): New.

for  gcc/ChangeLog

PR debug/63240
* langhooks-def.h
(LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
(LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
(LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
(LANG_HOOKS_DECLS): Add it.
* langhooks.h (struct lang_hooks_for_decls): Add
function_decl_defaulted.  Const_tree-ify
function_decl_explicit_p and function_decl_deleted_p.
* dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
attribute.  Add DW_AT_deleted instead of DW_AT_GNU_deleted,
also at strict DWARF v5.

for  gcc/cp/ChangeLog

PR debug/63240
* cp-objcp-common.c (cp_function_decl_defaulted): New.
(cp_function_decl_explicit_p): Const_tree-ify.
(cp_function_decl_deleted_p): Likewise.
* cp-objcp-common.h (cp_function_decl_defaulted): Declare.
(cp_function_decl_explicit_p): Const_tree-ify.
(cp_function_decl_deleted_p): Likewise.
(LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Redefine.

for  gcc/testsuite/ChangeLog

PR debug/63240
* g++.dg/debug/dwarf2/defaulted-member-function-1.C: New.
* g++.dg/debug/dwarf2/defaulted-member-function-2.C: New.
* g++.dg/debug/dwarf2/defaulted-member-function-3.C: New.
* g++.dg/debug/dwarf2/deleted-member-function.C: Expect
DW_AT_deleted.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239403 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PR55641] drop spurious const_type from reference_type variables
aoliva [Fri, 12 Aug 2016 07:11:36 +0000 (07:11 +0000)] 
[PR55641] drop spurious const_type from reference_type variables

Although C++ reference types, denoted by DW_TAG_reference_type in
DWARFv2+ debug info, are unchangeable, we output names of reference type
with DW_TAG_const_type, because internally we mark such variables as
TREE_READONLY.  That's an internal implementation detail that shouldn't
leak to debug information.  This patch fixes this.

for  gcc/ChangeLog

PR debug/55641
* dwarf2out.c (decl_quals): Don't map TREE_READONLY to
TYPE_QUAL_CONST in reference-typed decls.

for  gcc/testsuite/ChangeLog

PR debug/55641
* g++.dg/debug/dwarf2/ref-1.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239402 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PR49366] emit loc exprs for C++ non-virtual pmf template value parms
aoliva [Fri, 12 Aug 2016 07:11:23 +0000 (07:11 +0000)] 
[PR49366] emit loc exprs for C++ non-virtual pmf template value parms

We used to emit, in debug information, the values bound to pointer to
member function template parameters only when they were NULL or
virtual member functions, because those can be represented with
DW_AT_const_value.

In order to represent the symbolic pointer to member function
constants for non-virtual member functions, we'd need to be able to
emit relocations for part of DW_AT_const_value, which we don't.  The
more viable alternative is to use DW_AT_location to represent such
values, as slated for inclusion in DWARFv5, according to
<URL:http://www.dwarfstd.org/ShowIssue.php?issue=130412.1>.

With this patch, when we can't emit a DW_AT_const_value, we emit each
"member" of the pointer to member function "record" as a
DW_OP_stack_value DW_OP_piece, as long as the referenced member
function is output in the same translation unit, otherwise we'd get
relocations to external symbols, something to avoid in debug sections.

for  gcc/ChangeLog

PR debug/49366
* dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
in DW_OP_pieces, just enough to handle pointers to member
functions.
(gen_remaining_tmpl_value_param_die_attribute): Use a location
expression on DWARFv5 if a constant value doesn't work.

for  gcc/testsuite/ChangeLog

PR debug/49366
* g++.dg/debug/dwarf2/template-params-12.H: New.
* g++.dg/debug/dwarf2/template-params-12f.C: New.
* g++.dg/debug/dwarf2/template-params-12g.C: New.
* g++.dg/debug/dwarf2/template-params-12n.C: New.
* g++.dg/debug/dwarf2/template-params-12s.C: New.
* g++.dg/debug/dwarf2/template-params-12u.C: New.
* g++.dg/debug/dwarf2/template-params-12v.C: New.
* g++.dg/debug/dwarf2/template-params-12w.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239401 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Fri, 12 Aug 2016 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239400 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd selftests to selftest.c
dmalcolm [Thu, 11 Aug 2016 23:36:46 +0000 (23:36 +0000)] 
Add selftests to selftest.c

gcc/ChangeLog:
* selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
* selftest.c (selftest::test_assertions): New function.
(selftest::selftest_c_tests): New function.
* selftest.h (selftest::selftest_c_tests): New declaration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239397 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-11 Richard Biener <rguenther@suse.de>
wschmidt [Thu, 11 Aug 2016 22:20:41 +0000 (22:20 +0000)] 
2016-08-11  Richard Biener  <rguenther@suse.de>
    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR rtl-optimization/72855
* df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239395 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[gcc]
wschmidt [Thu, 11 Aug 2016 21:39:49 +0000 (21:39 +0000)] 
[gcc]

2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/72863
* vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
(vsx_store_<mode>): Likewise.

[gcc/testsuite]

2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/72863
* gcc.target/powerpc/pr72863.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239394 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago os: fix build tags for dir_regfile.go
ian [Thu, 11 Aug 2016 21:36:13 +0000 (21:36 +0000)] 
os: fix build tags for dir_regfile.go

    We want to build dir_regfile.go if not GNU/linux, and not solaris/386,
    and not solaris/sparc.  The latter two conditions were incorrect.  To
    write ! solaris/386 we have to write !solaris !386.  I forgot De
    Morgan's Law.

    Reviewed-on: https://go-review.googlesource.com/26870

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239393 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * g++.dg/cpp1z/constexpr-lambda6.C: Remove dg-do run.
uros [Thu, 11 Aug 2016 21:30:35 +0000 (21:30 +0000)] 
* g++.dg/cpp1z/constexpr-lambda6.C: Remove dg-do run.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239392 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * testsuite/ChangeLog: Remove merge marker.
uros [Thu, 11 Aug 2016 19:07:43 +0000 (19:07 +0000)] 
* testsuite/ChangeLog: Remove merge marker.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239385 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoSupport TImode CONST_WIDE_INT store in 64-bit STV
hjl [Thu, 11 Aug 2016 17:36:52 +0000 (17:36 +0000)] 
Support TImode CONST_WIDE_INT store in 64-bit STV

Support TImode CONST_WIDE_INT store generated from piecewise store.
Need to verify performance impact before enabling TImode CONST_INT
store for __int128.

gcc/

* config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
TImode CONST_WIDE_INT store.
(timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.

gcc/testsuite/

* gcc.target/i386/pieces-strcpy-1.c: New test.
* gcc.target/i386/pieces-strcpy-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239383 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/72868
jakub [Thu, 11 Aug 2016 15:59:53 +0000 (15:59 +0000)] 
PR c++/72868
* constexpr.c (label_matches): Handle case range expressions.

* g++.dg/cpp1y/constexpr-switch4.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239379 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoUse TImode for piecewise move in 64-bit mode
hjl [Thu, 11 Aug 2016 15:51:01 +0000 (15:51 +0000)] 
Use TImode for piecewise move in 64-bit mode

Use TImode for piecewise move in 64-bit mode.  We should use TImode in
32-bit mode and use OImode or XImode if they are available.  But since
by_pieces_ninsns determines the widest mode with MAX_FIXED_MODE_SIZE,
we can only use TImode in 64-bit mode.

gcc/

* config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
mode if unaligned SSE load and store are optimal.

gcc/testsuite/

* gcc.target/i386/pieces-memcpy-1.c: New test.
* gcc.target/i386/pieces-memcpy-2.c: Likewise.
* gcc.target/i386/pieces-memcpy-3.c: Likewise.
* gcc.target/i386/pieces-memcpy-4.c: Likewise.
* gcc.target/i386/pieces-memcpy-5.c: Likewise.
* gcc.target/i386/pieces-memcpy-6.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239378 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/73456 - ICE with constrained parameter pack.
jason [Thu, 11 Aug 2016 15:43:12 +0000 (15:43 +0000)] 
PR c++/73456 - ICE with constrained parameter pack.

* logic.cc (non_atomic_constraint_p): Handle EXPR_PACK_EXPANSION.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239376 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoInclude <stdlib.h> in intrinsics/random.c
ro [Thu, 11 Aug 2016 15:26:07 +0000 (15:26 +0000)] 
Include <stdlib.h> in intrinsics/random.c

* intrinsics/random.c: Include <stdlib.h>.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239375 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix up ChangeLog entry.
jakub [Thu, 11 Aug 2016 15:09:16 +0000 (15:09 +0000)] 
Fix up ChangeLog entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239373 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago Implement C++17 make_from_tuple.
ville [Thu, 11 Aug 2016 14:51:47 +0000 (14:51 +0000)] 
Implement C++17 make_from_tuple.
* include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
* testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239372 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c/72816
jakub [Thu, 11 Aug 2016 14:50:09 +0000 (14:50 +0000)] 
PR c/72816
* c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
array member through typedef, for orig_qual_indirect == 0 clear
orig_qual_type.

* gcc.dg/pr72816.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239371 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago Implement LWG 2758.
ville [Thu, 11 Aug 2016 14:45:23 +0000 (14:45 +0000)] 
Implement LWG 2758.
* include/bits/basic_string.h
(append(__sv_type, size_type, size_type)): Turn into a template,
change parameter type, constrain, add a conversion to __sv_type
from the dependent parameter type.
(assign(__sv_type, size_type, size_type)): Likewise.
(insert(size_type, __sv_type, size_type, size_type)): Likewise.
(replace(size_type, size_type, __sv_type, size_type, size_type)):
Likewise.
(compare(size_type, size_type,__sv_type, size_type, size_type)):
Likewise.
* testsuite/21_strings/basic_string/lwg2758.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239370 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agomark_spam.py: mark attachments as obsolete and rename them
marxin [Thu, 11 Aug 2016 13:40:37 +0000 (13:40 +0000)] 
mark_spam.py: mark attachments as obsolete and rename them

* mark_spam.py: Mark attachments as obsolete and rename them.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239368 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Thu, 11 Aug 2016 13:07:29 +0000 (13:07 +0000)] 
2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/71083
        * tree-predcom.c (ref_at_iteration): Correctly align the
        reference type.

testsuite:
2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/71083
        * gcc.c-torture/execute/pr71083.c: New test.
        * gnat.dg/loop_optimization23.adb: New test.
        * gnat.dg/loop_optimization23_pkg.ads: New test.
        * gnat.dg/loop_optimization23_pkg.adb: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239362 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoS/390: Provide low-level builtins with __int128 ops.
krebbel [Thu, 11 Aug 2016 11:15:50 +0000 (11:15 +0000)] 
S/390: Provide low-level builtins with __int128 ops.

gcc/ChangeLog:

2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtin-types.def: Add INT128 types.
* config/s390/s390-builtins.def: Add INT128 variants for the add
sub low-level builtins dealing with TImode.
* config/s390/s390.c (s390_expand_builtin): Allow mode conversions
via subreg when expanding a builtin.
* config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
Fix comment.
* config/s390/vecintrin.h: Adjust builtin names accordingly.
* config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
("vec_addc<mode>", "vec_addc_u128"): Merge to
"vacc<bhfgq>_<mode>".
("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
("vec_subc<mode>", "vec_subc_u128"): Merge to
"vscbi<bhfgq>_<mode>".
("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239361 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoS/390: Fix vlvg vlgv low-level builtins.
krebbel [Thu, 11 Aug 2016 11:14:12 +0000 (11:14 +0000)] 
S/390: Fix vlvg vlgv low-level builtins.

gcc/ChangeLog:

2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
and s390_vlgv* builtins as element selector.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239360 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
amker [Thu, 11 Aug 2016 10:29:51 +0000 (10:29 +0000)] 
* config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
unused declaration.
(vcond<v_cmp_mixed><mode>): Ditto.
(vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239359 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>: Init
amker [Thu, 11 Aug 2016 10:01:03 +0000 (10:01 +0000)] 
* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>: Init
variable explicitly, also assert on it before use.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239358 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-11 Richard Biener <rguenther@suse.de>
rguenth [Thu, 11 Aug 2016 09:02:04 +0000 (09:02 +0000)] 
2016-08-11  Richard Biener  <rguenther@suse.de>

PR tree-optimization/72772
* cfgloopmanip.c (create_preheader): Use split_edge if there
is a single loop entry, avoiding degenerate PHIs.

* gcc.dg/graphite/pr35356-1.c: Adjust.
* gcc.dg/tree-ssa/pr59597.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239357 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoReplace KISS PRNG with xorshift1024* using per-thread state.
jb [Thu, 11 Aug 2016 08:58:55 +0000 (08:58 +0000)] 
Replace KISS PRNG with xorshift1024* using per-thread state.

frontend:

2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* check.c (gfc_check_random_seed): Use new seed size in check.
* intrinsic.texi (RANDOM_NUMBER): Updated documentation.
(RANDOM_SEED): Likewise.

testsuite:

2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* gfortran.dg/random_7.f90: Take into account that the last seed
value is the special p value.
* gfortran.dg/random_seed_1.f90: Seed size is now constant.

libgfortran:
2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsics/random.c: Replace KISS with xorshift1024* using
per-thread state.
* runtime/main.c (init): Don't call random_seed_i4.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239356 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-11 Richard Biener <rguenther@suse.de>
rguenth [Thu, 11 Aug 2016 08:49:56 +0000 (08:49 +0000)] 
2016-08-11  Richard Biener  <rguenther@suse.de>

* tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
unconditional TODO_cleanup_cfg.
(pass_thread_jumps::execute): Initialize loops, perform a CFG
cleanup only if we threaded a jump.

* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239355 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Thu, 11 Aug 2016 00:16:14 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239351 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agomissed from last commit
amodra [Wed, 10 Aug 2016 23:12:56 +0000 (23:12 +0000)] 
missed from last commit

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239343 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[LRA] Reload of slow mems
amodra [Wed, 10 Aug 2016 23:12:11 +0000 (23:12 +0000)] 
[LRA] Reload of slow mems

pr71680.c -m64 -O1 -mlra, ira output showing two problem insns.
(insn 7 5 26 3 (set (reg:SI 159 [ a ])
        (mem/c:SI (reg/f:DI 158) [1 a+0 S4 A8])) pr71680.c:13 464 {*movsi_internal1}
     (expr_list:REG_EQUIV (mem/c:SI (reg/f:DI 158) [1 a+0 S4 A8])
        (nil)))
(insn 26 7 27 3 (set (reg:DI 162)
        (unspec:DI [
                (fix:SI (subreg:SF (reg:SI 159 [ a ]) 0))
            ] UNSPEC_FCTIWZ)) pr71680.c:13 372 {fctiwz_sf}
     (expr_list:REG_DEAD (reg:SI 159 [ a ])
        (nil)))
Insn 26 requires that reg 159 be of class FLOAT_REGS.

first lra action:
deleting insn with uid = 7.
Changing pseudo 159 in operand 1 of insn 26 on equiv [r158:DI]
      Creating newreg=164, assigning class ALL_REGS to subreg reg r164
   26: r162:DI=unspec[fix(r164:SI#0)] 7
      REG_DEAD r159:SI
    Inserting subreg reload before:
   30: r164:SI=[r158:DI]
[snip]
      Change to class FLOAT_REGS for r164

Well, that didn't do much.  lra tried the equiv mem, found that didn't
work, and had to reload.  Effectively getting back to the two original
insns but r159 replaced with r164.  simplify_operand_subreg did not do
anything in this case because SLOW_UNALIGNED_ACCESS was true (wrongly
for power8, but that's beside the point).  So now we have, using
abbreviated rtl notation:
r164:SI=[r158:DI]
r162:DI=unspec[fix(r164:SI)]
The problem here is that the first insn isn't valid, due to the rs6000
backend not supporting SImode in fprs, and r164 must be an fpr to make
the second insn valid.

next lra action:
      Creating newreg=165 from oldreg=164, assigning class GENERAL_REGS to r165
   30: r165:SI=[r158:DI]
    Inserting insn reload after:
   31: r164:SI=r165:SI
so now we have
r165:SI=[r158:DI]
r164:SI=r165:SI
r162:DI=unspec[fix(r164:SI)]

This ought to be good on power8, except for one little thing.
r165 is GENERAL_REGS so the first insn is good, a gpr load from mem.
r164 is FLOAT_REGS, making the last insn good, a fctiwz.
The second insn ought to be a sldi, mtvsrd, xscvspdpn combination, but
that is only supported for SFmode.  So lra continue on reloading the
second insn, but in vain because it never tries anything other than
SImode and as noted above, SImode is not valid in fprs.

What this patch does is arrange to emit the two reloads needed for the
SLOW_UNALIGNED_ACCESS case at once, moving the subreg to the second
insn in order to switch modes, producing:

r164:SI=[r158:DI]
r165:SF=r164:SI#0
r162:DI=unspec[fix(r165:SF)]

I've also tidied a couple of other things:
1) "old" is unnecessary as it duplicated "operand".
2) Rejecting mem subregs due to SLOW_UNALIGNED_ACCESS only makes sense
if the original mode was not slow.

PR target/71680
* lra-constraints.c (simplify_operand_subreg): Allow subreg
mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
slow.  Emit two reloads for slow mem case, first loading in
fast innermode, then converting to required mode.
testsuite/
* gcc.target/powerpc/pr71680.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239342 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
jason [Wed, 10 Aug 2016 22:38:34 +0000 (22:38 +0000)] 
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239340 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago Implement C++17 constexpr if.
jason [Wed, 10 Aug 2016 21:58:23 +0000 (21:58 +0000)] 
Implement C++17 constexpr if.

* cp-tree.h (IF_STMT_CONSTEXPR_P): New.
* name-lookup.c (push_to_top_level, pop_from_top_level_1): Handle it.
* parser.h (struct cp_parser): Add in_discarded_stmt field.
* parser.c (cp_parser_selection_statement): Handle 'if constexpr'.
(cp_parser_jump_statement): Avoid deducing from a discarded return.
* pt.c (tsubst_expr): Only instantiate taken branch of constexpr if.
* semantics.c (begin_if_stmt): Set the binding level this_entity.
(finish_if_stmt_cond): Require the condition of a
constexpr if to be constant.
* decl.c (level_for_constexpr_if): New.
(named_label_entry): Add in_constexpr_if field.
(poplevel_named_label_1): Set it.
(check_goto): Check it.
(check_previous_goto_1): Check level_for_constexpr_if.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239338 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/ChangeLog:
kelvin [Wed, 10 Aug 2016 19:04:13 +0000 (19:04 +0000)] 
gcc/ChangeLog:

2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/altivec.h (vec_extract_exp): New macro.
(vec_extract_sig): New macro.
(vec_insert_exp): New macro.
(vec_test_data_class): New macro.
(scalar_extract_exp): New macro.
(scalar_extract_sig): New macro.
(scalar_insert_exp): New macro.
(scalar_test_data_class): New macro.
(scalar_test_neg): New macro.
(scalar_cmp_exp_gt): New macro.
(scalar_cmp_exp_lt): New macro.
(scalar_cmp_exp_eq): New macro.
(scalar_cmp_exp_unordered): New macro.
* config/rs6000/predicates.md (u7bit_cint_operand): New predicate
to enforce constraint that operand is a 7-bit unsigned literal.
* config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
for power9 built-ins.
(BU_P9V_VSX_2): Likewise.
(BU_P9V_64BIT_VSX_2): Likewise.
(VSEEDP): Add scalar extract exponent support.
(VSEESP): Add scalar extract signature support.
(VSTDCNDP): Add scalar test negative support.
(VSTDCNSP): Likewise.
(VSIEDP): Add scalar insert exponent support.
(VSCEDPGT): Add scalar compare exponent greater than support.
(VSCEDPLT): Add scalar compare exponent less than support.
(VSCEDPEQ): Add scalar compare exponent test-for-equality support.
(VSCEDPUO): Add scalar compare exponent test-for-unordered support.
(VSTDCDP): Add scalar test data class support.
(VSTDCSP): Likewise.
(VSEEDP): Add overload support for scalar extract exponent
operation.
(VSESDP): Add overload support for scalar extract signature
operation.
(VSTDCN): Add overload support for scalar test negative
operation.
(VSTDCNDP): Add overload support for scalar test negative
operation.
(VSTDCNSP): Add overload support for scalar test negative
operation.
(VSIEDP): Add overload support for scalar insert exponent
operation.
(VSTDC): Add overload support for scalar test data class
operation.
(VSTDCDP): Add overload support for scalar test data class
operation.
(VSTDCSP): Add overload support for scalar test data class
opreation.
(VSCEDPGT): Add overload support for scalar compare exponent
greater than operation.
(VSCEDPLT): Add overload support for scalar compare exponent
less than operation.
(VSCEDPEQ): Add overload support for scalar compare exponent
test-for-equality operation.
(VSCEDPUO): Add overload support for scalar compare exponent
test-for-unordered operation.
(VEEDP): Add vector extract exponent support.
(VEESP): Likewise.
(VESDP): Add vector extract significand support.
(VESSP): Likewise.
(VIEDP): Add vector insert exponent support.
(VIESP): Likewise.
(VTDCDP): Add vector test data class support.
(VTDCSP): Likewise.
(VES): Add overload support for vector extract significand operation.
(VESDP): Likewise.
(VESSP): Likewise
(VEE): Add overload support for vector extract exponent operation.
(VEEDP): Likewise.
(VEESP): Likewise.
(VTDC): Add overload support for vector test data class operation.
(VTDCDP): Likewise.
(VTDCSP): Likewise.
(VIE): Add overload support for vector insert exponent operation.
(VIEDP): Likewise.
(VIESP): Likewise.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
overloaded binary floating point functions.
(altivec_resolve_overloaded_builtin): Improve error messages to
distinguish between functions not supported in the current
compiler configuration and functions that were invoked with an
invalid parameter combination, and include the built-in function
name in both error messages.
* config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
New prototype.
* config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
function.
(rs6000_expand_binop_builtin): Add check to enforce that argument
2 of the test data class operations is a 7-bit unsigned literal.
(rs6000_invalid_builtin): Add code to issue an error message if a
built-in function that requires the power9_vector and -m32
command-line options is compiled without these options.
* config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
(UNSPEC_VSX_SXSIGDP): New value.
(UNSPEC_VSX_SXSIGPDP): New value.
(UNSPEC_VSX_SIEXPDP): New value.
(UNSPEC_VSX_SCMPEXPDP): New value.
(UNSPEC_VSX_STSTDC): New value.
(UNSPEC_VSX_VXEXP): New value.
(UNSPEC_VSX_VXSIG): New value.
(UNSPEC_VSX_VIEXP): New value.
(UNSPEC_VSX_VTSTDC): New value.
(xsxexpdp): New insn for scalar extract exponent.
(xsxsigdp): New insn for scalar extract significand.
(xsiexpdp): New insn for scalar insert exponent.
(xscmpexpdp_<code>): New expansion for scalar compare exponents.
(*xscmpexpdp): New insn for scalar compare exponents.
(xststdc<Fvsx): New expansion for both single- and
double-precision scalar test data class operations.
(xststdcneg<Fvsx>): New expansion for both single- and
double-precision scalar test for negative value operations.
(*xststdc<Fvsx>): New insn for scalar test data class
operation.
(xvxexp<VSs>): New insn for single- and double-precision
vector extract exponent operation.
(xvxsig<VSs>): New insn for single- and double-precision
vector extract significand operation.
(xviexp<VSs>): New insn for single- and double-precision
vector insert exponent operation.
(xvtstdc<VSs>): New insn for single- and double-precision
vector test data class operation.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
built-in functions to represent the Power9 binary floating-point
support instructions.

gcc/testsuite/ChangeLog:

2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/bfp/bfp.exp: New file.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-0.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-1.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-0.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-1.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-0.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-1.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-0.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-1.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-3.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-4.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-5.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-0.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-1.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-3.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-0.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-1.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-2.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-3.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-0.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-1.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-2.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-3.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-0.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-1.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-2.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-3.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-0.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-1.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-2.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-3.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-4.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-5.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-6.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-7.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239334 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago compiler: annotate or fix fall through cases in switch statements
ian [Wed, 10 Aug 2016 18:56:35 +0000 (18:56 +0000)] 
compiler: annotate or fix fall through cases in switch statements

    A new GCC warning, -Wimplicit-fallthrough, detected these three cases
    where a switch case falls through to another.  One of them looks like
    a bug, so I fixed it; the two other look like intended fall throughs
    so I just added a "fall through" comment to suppress the GCC warning.

    Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.

    Reviewed-on: https://go-review.googlesource.com/26695

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239332 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
amker [Wed, 10 Aug 2016 15:47:58 +0000 (15:47 +0000)] 
* doc/sourcebuild.texi (@item vect_cond_mixed): New item.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239330 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago gcc/testsuite
amker [Wed, 10 Aug 2016 15:45:25 +0000 (15:45 +0000)] 
gcc/testsuite
* lib/target-supports.exp (check_effective_target_vect_cond_mixed):
Add aarch64*-*-*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239329 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
amker [Wed, 10 Aug 2016 15:34:23 +0000 (15:34 +0000)] 
* config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
(aarch64_vcond_internal<mode><mode>): Delete pattern.
(aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
(vcond<v_cmp_result><mode>): Ditto.
(vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
(vcondu<mode><mode>): Ditto.
(vcond<v_cmp_mixed><mode>): New pattern.
(vcondu<mode><v_cmp_mixed>): New pattern.
(aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
of aarch64_vcond_internal.

gcc/testsuite
* gcc.target/aarch64/simd/vcond-ne.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239328 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
amker [Wed, 10 Aug 2016 15:26:14 +0000 (15:26 +0000)] 
* config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
(vec_cmp<mode><v_cmp_result>): New pattern.
(vec_cmpu<mode><mode>): New pattern.
(vcond_mask_<mode><v_cmp_result>): New pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239327 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix PR tree-optimization/71734
hjl [Wed, 10 Aug 2016 15:03:02 +0000 (15:03 +0000)] 
Fix PR tree-optimization/71734

2016-08-10  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/71734
* tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
REF_LOOP, invoke ref_indep_loop_p_1.
(outermost_indep_loop): Pass LOOP argumnet where REF was defined
to ref_indep_loop_p.
(ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
is inside LOOP, do not cache dpendence value for loops with
non-zero SAFELEN.
(ref_indep_loop_p_2): Delete function.
(can_sm_ref_p): Pass LOOP as additional argument to
ref_indep_loop_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239326 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[gcc]
meissner [Wed, 10 Aug 2016 13:49:12 +0000 (13:49 +0000)] 
[gcc]
2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/72853
* config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
being an offsettable address.

[gcc/testsuite]
2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/72853
* gcc.target/powerpc/pr72853.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239325 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd new *_atomic counter update function
marxin [Wed, 10 Aug 2016 13:14:56 +0000 (13:14 +0000)] 
Add new *_atomic counter update function

PR gcov-profile/58306
* Makefile.in: New functions (modules) are added.
* libgcov-profiler.c (__gcov_interval_profiler_atomic): New
function.
(__gcov_pow2_profiler_atomic): New function.
(__gcov_one_value_profiler_body): New argument is instroduced.
(__gcov_one_value_profiler): Call with the new argument.
(__gcov_one_value_profiler_atomic): Likewise.
(__gcov_indirect_call_profiler_v2): Likewise.
(__gcov_time_profiler_atomic): New function.
(__gcov_average_profiler_atomic): Likewise.
(__gcov_ior_profiler_atomic): Likewise.
* libgcov.h: Declare the aforementioned functions.
PR gcov-profile/58306
* gcc.dg/tree-prof/val-profiler-threads-1.c: New test.
PR gcov-profile/58306
* tree-profile.c (gimple_init_edge_profiler): Create conditionally
atomic variants of profile update functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239324 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoCherry-pick fprofile-generate-atomic from google/gcc-4_9
marxin [Wed, 10 Aug 2016 13:11:42 +0000 (13:11 +0000)] 
Cherry-pick fprofile-generate-atomic from google/gcc-4_9

Cherry picked (and modified) from google-4_7 branch
2012-12-26  Rong Xu  <xur@google.com>
* common.opt (fprofile-update): Add new flag.
* coretypes.h: Define enum profile_update.
* doc/invoke.texi: Document -fprofile-update.
* gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
* tree-profile.c (gimple_init_edge_profiler): Generate
also atomic profiler update.
(gimple_gen_edge_profiler): Likewise.
* g++.dg/gcov/gcov-threads-1.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239323 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agotoplev.c: set FILE * globals to NULL after fclose
dmalcolm [Wed, 10 Aug 2016 13:08:13 +0000 (13:08 +0000)] 
toplev.c: set FILE * globals to NULL after fclose

gcc/ChangeLog:
* toplev.c (finalize): Set aux_info_file, asm_out_file, and
stack_usage_file to NULL after fclose calls.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239322 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix PR 71873 - ICE in push_reload
saaadhu [Wed, 10 Aug 2016 12:35:57 +0000 (12:35 +0000)] 
Fix PR 71873 - ICE in push_reload

Extend computation of subreg_in_class to constants and plus expressions
inside SUBREGs, before recursively calling push_reload. SYMBOL_REFs are
also CONSTANT_P, so remove explicit handling of SYMBOL_REFs.

gcc/ChangeLog

PR target/71873
* reload.c (push_reload): Compute subreg_in_class for
subregs of constants and plus expressions. Remove special
handling of SYMBOL_REFs.

gcc/testsuite/ChangeLog

PR target/71873
* gcc.target/avr/pr71873.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239321 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[RS6000] e500 part of pr71680
amodra [Wed, 10 Aug 2016 05:43:36 +0000 (05:43 +0000)] 
[RS6000] e500 part of pr71680

The fallback part of HARD_REGNO_CALLER_SAVE_MODE, choose_hard_reg_mode,
returns DFmode for SImode when TARGET_E500_DOUBLE.  This confuses
lra when attempting to save ctr around a call.

PR target/71680
* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
SImode for TARGET_E500_DOUBLE when given SImode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239317 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and
ian [Wed, 10 Aug 2016 05:19:23 +0000 (05:19 +0000)] 
* gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and
-fgo-debug-escae.
(Compiler Directives): New chapter.
(Function Names): Describe using //go:linkname.  Suggest using
-fgo-pkgpath rather than -fgo-prefix.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239316 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago compiler: implement go:noinline and go:nosplit directives
ian [Wed, 10 Aug 2016 00:46:35 +0000 (00:46 +0000)] 
compiler: implement go:noinline and go:nosplit directives

    Reviewed-on: https://go-review.googlesource.com/26652

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239315 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Wed, 10 Aug 2016 00:16:13 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239314 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago compiler: implement go:linkname compiler directive
ian [Tue, 9 Aug 2016 23:08:32 +0000 (23:08 +0000)] 
compiler: implement go:linkname compiler directive

    Implement the go:linkname compiler directive for functions (both
    function definitions and function declarations).  At least for now, give
    an error for code that tries to use go:linkname with a non-function.

    Reviewed-on: https://go-review.googlesource.com/26651

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239311 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
jakub [Tue, 9 Aug 2016 22:24:40 +0000 (22:24 +0000)] 
* config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
unused variable __O.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239310 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/68703 - bogus error with dependent vector length
jason [Tue, 9 Aug 2016 22:03:07 +0000 (22:03 +0000)] 
PR c++/68703 - bogus error with dependent vector length

gcc/c-family/
* c-common.c (c_common_attribute_table): vector_size affects type
identity.
gcc/cp/
* decl2.c (any_dependent_type_attributes_p): New.
* pt.c (dependent_type_p_r, type_dependent_expression_p): Check it.
* semantics.c (finish_id_expression): Check it.
* typeck.c (finish_class_member_access_expr): Check it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239309 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd tests for __gcov_dump and __gcov_reset
marxin [Tue, 9 Aug 2016 21:03:39 +0000 (21:03 +0000)] 
Add tests for __gcov_dump and __gcov_reset

* g++.dg/gcov/gcov-dump-1.C: New test.
* g++.dg/gcov/gcov-dump-2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239308 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix typo in gcov.texi
marxin [Tue, 9 Aug 2016 21:02:24 +0000 (21:02 +0000)] 
Fix typo in gcov.texi

* doc/gcov.texi: Change _gcov_dump to __gcov_dump and
_gcov_reset to __gcov_reset.
* doc/gcov-tool.texi: Fix typo.
* libgcov-util.c: Fix typo and GNU coding style.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239307 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoRemove __gcov_indirect_call_profiler
marxin [Tue, 9 Aug 2016 21:01:19 +0000 (21:01 +0000)] 
Remove __gcov_indirect_call_profiler

* Makefile.in: Remove __gcov_indirect_call_profiler.
* libgcov-profiler.c (__gcov_indirect_call_profiler): Remove
function.
* libgcov.h: And the declaration of the function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239306 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix usage of POW2 histogram
marxin [Tue, 9 Aug 2016 20:57:39 +0000 (20:57 +0000)] 
Fix usage of POW2 histogram

* value-prof.c (gimple_divmod_values_to_profile): Do not
instrument MOD histogram if a value is not a SSA name.
* gcc.dg/tree-prof/val-prof-9.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239305 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix POW2 histogram
marxin [Tue, 9 Aug 2016 20:57:14 +0000 (20:57 +0000)] 
Fix POW2 histogram

* gcc.dg/tree-prof/val-prof-8.c: New test.
* value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
values.
* libgcov-profiler.c (__gcov_pow2_profiler): Consider 0 as not
power of two.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239304 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoSet +x for two python scripts.
marxin [Tue, 9 Aug 2016 20:42:58 +0000 (20:42 +0000)] 
Set +x for two python scripts.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239303 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Tue, 9 Aug 2016 17:58:00 +0000 (17:58 +0000)] 
2016-08-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR bootstrap/72833
        * fixincl.tpl (version-compare): Fix generation with autogen 5.18.
        * inclhack.def (darwin_longjmp_noreturn): New fix.
        * fixincl.x: Regenerated.
        * tests/base/i386/setjmp.h [DARWIN_LONGJMP_NORETURN_CHECK]: new test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239301 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PATCH][PR64971]Convert function pointer to Pmode when emit call.
renlin [Tue, 9 Aug 2016 17:20:14 +0000 (17:20 +0000)] 
[PATCH][PR64971]Convert function pointer to Pmode when emit call.

gcc/

2016-08-04  Renlin Li  <renlin.li@arm.com>

PR middle-end/64971
* calls.c (prepare_call_address): Convert funexp to Pmode when
necessary.
* config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
(sibcall_value): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239300 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/71712 - ABI tags on conversion ops.
jason [Tue, 9 Aug 2016 16:55:08 +0000 (16:55 +0000)] 
PR c++/71712 - ABI tags on conversion ops.

* class.c (check_abi_tags): Don't duplicate tags for conversion ops.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239299 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago Adjust mangling of ABI tags on class template member functions.
jason [Tue, 9 Aug 2016 16:55:01 +0000 (16:55 +0000)] 
Adjust mangling of ABI tags on class template member functions.

* class.c (missing_abi_tags): New.
(check_abi_tags): Don't check template. Add just_checking mode.
* mangle.c (abi_flag_at_least, any_abi_below, equal_abi_tags): New.
(sorted_abi_tags): Split out from write_abi_tags.
(struct releasing_vec): New.
(write_unqualified_name): Only look for the primary
template for types.  Implement backward compatibility.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239298 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c/7652
mpolacek [Tue, 9 Aug 2016 16:39:28 +0000 (16:39 +0000)] 
PR c/7652
gcc/c-family/
* c-ada-spec.c (dump_generic_ada_node): Add return.
gcc/
* cselib.c (cselib_expand_value_rtx_1): Add return.
* gengtype.c (dbgprint_count_type_at): Likewise.
* hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
* reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239297 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago mksysinfo.sh: always define CLONE_NEWNET
ian [Tue, 9 Aug 2016 16:38:23 +0000 (16:38 +0000)] 
mksysinfo.sh: always define CLONE_NEWNET

    CLONE_NEWNET is needed to compile the syscall tests on GNU/Linux.
    The symbol is not defined in the CentOS 5.11 header files.

    Patch from Uros Bizjak.

    Reviewed-on: https://go-review.googlesource.com/26630

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239296 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PR ipa/71981] Make get_dynamic_type grok MEM_REF
jamborm [Tue, 9 Aug 2016 16:05:30 +0000 (16:05 +0000)] 
[PR ipa/71981] Make get_dynamic_type grok MEM_REF

2016-08-09  Martin Jambor  <mjambor@suse.cz>

        PR ipa/71981
        * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
        if instance is a MEM_REF.

testsuite/
        PR ipa/71981
        * gcc.dg/ipa/pr71981.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239294 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR target/72843
uros [Tue, 9 Aug 2016 15:35:34 +0000 (15:35 +0000)] 
PR target/72843
* config/i386/i386.md (*movtf_internal): Use
lra_in_progress || reload_completed instead of !can_create_pseudo_p
in the insn constraint.
(*movxf_internal): Ditto.
(*movdf_internal): Ditto.
(*movsf_internal): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239293 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago gcc/testsuite
amker [Tue, 9 Aug 2016 15:10:55 +0000 (15:10 +0000)] 
gcc/testsuite
PR tree-optimization/33707
* gcc.dg/vect/pr33707.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239292 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR tree-optimization/72772
amker [Tue, 9 Aug 2016 15:08:02 +0000 (15:08 +0000)] 
PR tree-optimization/72772
* tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
for expanded base.

gcc/testsuite
PR tree-optimization/pr72772
* gcc.dg/tree-ssa/pr72772.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239291 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR tree-optimization/72772
amker [Tue, 9 Aug 2016 15:01:49 +0000 (15:01 +0000)] 
PR tree-optimization/72772
* tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
parameter STOP.
* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
parameter STOP and update calls.  Move expand_simple_operations
function call from here...
(simplify_using_initial_conditions): ...to here.  Delete parameter
STOP.
(tree_simplify_using_condition): Delete parameter STOP.
* tree-scalar-evolution.c (simple_iv_with_niters): Update call to
simplify_using_initial_conditions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239290 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/72849 - ICE with incomplete class.
jason [Tue, 9 Aug 2016 14:37:12 +0000 (14:37 +0000)] 
PR c++/72849 - ICE with incomplete class.

* constexpr.c (cxx_eval_constant_expression): Check
COMPLETE_TYPE_P before calling is_really_empty_class.
* class.c (is_really_empty_class): Don't call complete_type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239289 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoMIPS: Skip gcc.dg/loop-8.c due to additional invariants
mpf [Tue, 9 Aug 2016 14:36:45 +0000 (14:36 +0000)] 
MIPS: Skip gcc.dg/loop-8.c due to additional invariants

gcc/
PR rtl-optimization/66669
* gcc.dg/loop-8.c: Skip for MIPS due to extra invariants.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239288 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/56701 - wrong type of &*this
jason [Tue, 9 Aug 2016 14:08:33 +0000 (14:08 +0000)] 
PR c++/56701 - wrong type of &*this

* typeck.c (cp_build_addr_expr_1): Remove special *this handling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239285 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago compiler: rewrite compiler directive support
ian [Tue, 9 Aug 2016 14:05:17 +0000 (14:05 +0000)] 
compiler: rewrite compiler directive support

    Rewrite the compiler directive support to recognize all the compiler
    directives implemented by the current gc compiler.  The directives other
    than go:linkname are now turned into GOPRAGMA flags attached to a
    function or function declaration.  The go:linkname directive is turned
    into a map attached to the Lex object.  No new directives are actually
    implemented yet, they are just recognized.

    Reviewed-on: https://go-review.googlesource.com/26610

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239282 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoMIPS: Use create_tmp_var_raw in mips_atomic_assign_expand_fenv
mpf [Tue, 9 Aug 2016 12:36:18 +0000 (12:36 +0000)] 
MIPS: Use create_tmp_var_raw in mips_atomic_assign_expand_fenv

gcc/
PR c/65345
* config/mips/mips.c (mips_atomic_assign_expand_fenv):
Use create_tmp_var_raw instead of create_tmp_var.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239278 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-09 Richard Biener <rguenther@suse.de>
rguenth [Tue, 9 Aug 2016 08:09:21 +0000 (08:09 +0000)] 
2016-08-09  Richard Biener  <rguenther@suse.de>

* tree-ssa-threadbackward.c (profitable_jump_thread_path):
        Treat same SSA names related.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239276 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR tree-optimization/72824
jakub [Tue, 9 Aug 2016 07:49:14 +0000 (07:49 +0000)] 
PR tree-optimization/72824
* tree-loop-distribution.c (const_with_all_bytes_same): Verify
real_zerop is not negative.

* gcc.c-torture/execute/ieee/pr72824.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239275 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-09 Richard Biener <rguenther@suse.de>
rguenth [Tue, 9 Aug 2016 07:40:50 +0000 (07:40 +0000)] 
2016-08-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71802
* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
all merge opportunities with the predecessor.

* gcc.dg/torture/pr71802.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239274 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2016-08-09 Richard Biener <rguenther@suse.de>
rguenth [Tue, 9 Aug 2016 07:38:13 +0000 (07:38 +0000)] 
2016-08-09  Richard Biener  <rguenther@suse.de>

PR ipa/68273
* ipa-prop.c (ipa_modify_formal_parameters): Build
parameter types with natural alignment also for the
over-aligned case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239273 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/72809
jakub [Tue, 9 Aug 2016 07:23:47 +0000 (07:23 +0000)] 
PR c++/72809
* rtti.c (get_pseudo_ti_index): Return TK_CLASS_TYPE for
builtin aggregate types without TYPE_BINFO.

* g++.dg/eh/stdarg1.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239272 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago Implement C++17 constexpr lambda.
jason [Tue, 9 Aug 2016 04:33:58 +0000 (04:33 +0000)] 
Implement C++17 constexpr lambda.

gcc/c-family/
* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
C++17 constexpr lambdas.
gcc/cp/
* class.c (finalize_literal_type_property): Handle lambdas.
* constexpr.c (is_valid_constexpr_fn): Likewise.  No longer static.
(explain_invalid_constexpr_fn, cxx_eval_call_expression): Handle
lambdas.
(cxx_eval_constant_expression): Handle capture proxy.
(var_in_constexpr_fn): Don't check for C++14.
(var_in_maybe_constexpr_fn): New.
(potential_constant_expression_1): Use it.  Check DECL_EXPR for
declarations not allowed in constexpr function.
* decl.c (make_rtl_for_nonlocal_decl): Use var_in_maybe_constexpr_fn.
(finish_function): Set DECL_DECLARED_CONSTEXPR_P on lambda members.
* lambda.c (begin_lambda_type): Set CLASSTYPE_LITERAL_P.
(maybe_add_lambda_conv_op): Clear thunk CALL_EXPR location.
(lambda_static_thunk_p): New.
* parser.c (cp_keyword_starts_decl_specifier_p): Add RID_CONSTEXPR.
(CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR): New enumerator.
(cp_parser_decl_specifier_seq): Handle it.
(cp_parser_lambda_declarator_opt): Use cp_parser_decl_specifier_seq.
* pt.c (instantiate_class_template_1): Set CLASSTYPE_LITERAL_P.
(tsubst_copy_and_build) [CALL_EXPR]: Propagate CALL_FROM_THUNK_P.
* error.c (dump_function_decl): Check TFF_NO_TEMPLATE_BINDINGS.
(dump_expr) [FUNCTION_DECL]: Pass it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239268 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago Fix empty class parameters with constexpr.
jason [Tue, 9 Aug 2016 04:33:42 +0000 (04:33 +0000)] 
Fix empty class parameters with constexpr.

PR c++/67131
* class.c (is_really_empty_class): Call complete_type.
* constexpr.c (cxx_eval_constant_expression): Check
is_really_empty_class.
(potential_constant_expression_1): Likewise.  Check for error type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239267 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix warning breaking profiled bootstrap
ak [Tue, 9 Aug 2016 02:48:44 +0000 (02:48 +0000)] 
Fix warning breaking profiled bootstrap

This patch fixes an bootstrap error with autoprofiledbootstrap
due to uninitiliazed variables, because the compiler cannot
figure out they don't need to be initialized in an error path.
Just always initialize them.

gcc/:

2016-08-08  Andi Kleen  <ak@linux.intel.com>

* tree-vrp.c (get_single_symbol): Always initialize inv and neg.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239266 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoMake autofdo tests safer for parallel builds
ak [Tue, 9 Aug 2016 02:47:25 +0000 (02:47 +0000)] 
Make autofdo tests safer for parallel builds

There were some reports that the autofdo tests are non deterministic
with parallel builds. I wasn't able to reproduce this, but here are
two changes that may help:

- Always use unique file names for temporary files.
- Don't print file names in the test log because the directories
can vary (suggested by Jeff Law)

gcc/testsuite/:

2016-08-08  Andi Kleen  <ak@linux.intel.com>

* lib/profopt.exp: (auto-profopt-execute): Don't include full
test command line in failure log.
(profopt-execute): dito. Make autofdo file names unique.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239265 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Tue, 9 Aug 2016 00:16:14 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239264 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago text/template: reduce maxExecDepth for gccgo further
ian [Mon, 8 Aug 2016 22:55:29 +0000 (22:55 +0000)] 
text/template: reduce maxExecDepth for gccgo further

    We already lowered the limit of recursive template invocations from
    100,000 to 10,000, but the tests still fail occasionally on
    x86_64-pc-linux-gnu when using GNU ld (so that split stacks are not
    fully functional).  Reduce the limit further, to 1000, enough so that
    the test passes consistently.

    Permitting 1000 recursive template invocations still seems capacious
    enough for real world use.

    Reviewed-on: https://go-review.googlesource.com/25590

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239261 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoc-format.c: suggest the correct format string to use (PR c/64955)
dmalcolm [Mon, 8 Aug 2016 22:50:47 +0000 (22:50 +0000)] 
c-format.c: suggest the correct format string to use (PR c/64955)

This adds fix-it hints to c-format.c so that it can (sometimes) suggest
the format string the user should have used.

The patch adds selftests for the new code in c-format.c.  These
selftests are thus lang-specific.  This is the first time we've had
lang-specific selftests, and hence the patch also adds a langhook for
running them.  (Note that currently the Makefile only invokes the
selftests for cc1).

gcc/c-family/ChangeLog:
PR c/64955
* c-common.h (selftest::c_format_c_tests): New declaration.
(selftest::run_c_tests): New declaration.
* c-format.c: Include "selftest.h.
(format_warning_va): Add param "corrected_substring" and use
it to add a replacement fix-it hint.
(format_warning_at_substring): Likewise.
(format_warning_at_char): Update for new param of
format_warning_va.
(argument_parser::check_argument_type): Pass "fki" to
check_format_types.
(check_format_types): Add param "fki" and pass it to
format_type_warning.
(deref_n_times): New function.
(get_modifier_for_format_len): New function.
(selftest::test_get_modifier_for_format_len): New function.
(get_format_for_type): New function.
(format_type_warning): Add param "fki" and use it to attempt
to provide hints for argument types when calling
format_warning_at_substring.
(selftest::get_info): New function.
(selftest::assert_format_for_type_streq): New function.
(ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
(selftest::test_get_format_for_type_printf): New function.
(selftest::test_get_format_for_type_scanf): New function.
(selftest::c_format_c_tests): New function.

gcc/c/ChangeLog:
PR c/64955
* c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
this up to selftest::run_c_tests.
(selftest::run_c_tests): New function.

gcc/ChangeLog:
PR c/64955
* langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
do-nothing langhook.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
* langhooks.h (struct lang_hooks): Add run_lang_selftests.
* selftest-run-tests.c: Include "tree.h" and "langhooks.h".
(selftest::run_tests): Call lang_hooks.run_lang_selftests.

gcc/testsuite/ChangeLog:
PR c/64955
* gcc.dg/format/diagnostic-ranges.c: Add fix-it hints to expected
output.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239260 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago libgo: don't have .lo depend on .lo.dep
ian [Mon, 8 Aug 2016 21:23:57 +0000 (21:23 +0000)] 
libgo: don't have .lo depend on .lo.dep

    Having each .lo depend on the corresponding .lo.dep caused too many
    rebuilds, because the .lo.dep files are rebuilt when Makefile changes.
    Instead, if the .lo.dep file changes, remove the .lo file.

    Reviewed-on: https://go-review.googlesource.com/25588

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239258 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix selftest::test_lexer_string_locations_ebcdic for systems without iconv (PR bootst...
dmalcolm [Mon, 8 Aug 2016 20:46:19 +0000 (20:46 +0000)] 
Fix selftest::test_lexer_string_locations_ebcdic for systems without iconv (PR bootstrap/72844)

selftest::test_lexer_string_locations_ebcdic has this clause:

  /* EBCDIC support requires iconv.  */
  if (!HAVE_ICONV)
    return;

leading to a build failure on systems without iconv.  This conditional
works in libcpp due to this in libcpp/internal.h:

  #if HAVE_ICONV
  #include <iconv.h>
  #else
  #define HAVE_ICONV 0
  typedef int iconv_t;  /* dummy */
  #endif

Fix the problem by ensuring that HAVE_ICONV is always defined within
gcc/input.c.

gcc/ChangeLog:
PR bootstrap/72844
* input.c: Ensure that HAVE_ICONV is defined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239257 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago testsuite: fix gotest for absolute srcdir
ian [Mon, 8 Aug 2016 20:34:05 +0000 (20:34 +0000)] 
testsuite: fix gotest for absolute srcdir

    The recent changes to Makefile.am mean that if you configure with an
    absolute path as srcdir then gotest will be invoked with absolute paths
    for the files.  That case never worked.  This patch fixes it.

    Reviewed-on: https://go-review.googlesource.com/25587

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239256 138bc75d-0d04-0410-961f-82ee72b054a4