gcc.git
7 years agoGIMPLEFE: Handle missing labels in goto statements
Mikhail Maltsev [Wed, 31 May 2017 13:47:51 +0000 (13:47 +0000)]
GIMPLEFE: Handle missing labels in goto statements

gcc/c/

PR testsuite/80580
* gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.

gcc/testsuite/

PR testsuite/80580
* gcc.dg/gimplefe-error-7.c: New test.

From-SVN: r248738

7 years agoFix configure.ac to respect --{enable,disable}-werror option.
Martin Liska [Wed, 31 May 2017 13:35:41 +0000 (15:35 +0200)]
Fix configure.ac to respect --{enable,disable}-werror option.

2017-05-31  Martin Liska  <mliska@suse.cz>

* configure.ac: Add handling of stage2_werror_flags to
action-if-given and to action-if-not-given.
* configure: Regenerate.

From-SVN: r248737

7 years agopasses.c: implement pre-ICE emergency dumping
Alexander Monakov [Wed, 31 May 2017 13:26:54 +0000 (16:26 +0300)]
passes.c: implement pre-ICE emergency dumping

* passes.c (emergency_dump_function): New.
* tree-pass.h (emergency_dump_function): Declare.
* plugin.c (plugins_internal_error_function): Remove.
* plugin.h (plugins_internal_error_function): Remove declaration.
* toplev.c (internal_error_function): New static function.  Use it...
(general_init): ...here.

From-SVN: r248736

7 years ago[ARC] Recognise add_n and sub_n in combine again
Graham Markall [Wed, 31 May 2017 13:15:33 +0000 (13:15 +0000)]
[ARC] Recognise add_n and sub_n in combine again

Since the combine pass canonicalises shift-add insns using plus and
ashift (as opposed to plus and mult which it previously used to do), it
no longer creates *add_n or *sub_n insns, as the patterns match plus and
mult only. The outcome of this is that some opportunities to generate
add{1,2,3} and sub{1,2,3} instructions are missed.

This change adds additional *add_n and *sub_n insns that match the
plus-ashift pattern. The original *add_n and *sub_n insns are still left
in, as they are sometimes generated later on by constant propagation.
The idea of adding these insns is modelled on the changes in:

  https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01882.html

which addresses a similar issue for the PA target.

For the small test cases that are added, even if the combine pass misses
the opportunity to generate addN or subN, constant propagation manages
to do so, so the rtl of the combine pass is checked.

gcc/ChangeLog:

        * config/arc/arc.c (arc_print_operand): Handle constant operands.
        (arc_rtx_costs): Add costs for new patterns.
        * config/arc/arc.md: Additional *add_n and *sub_n patterns.
        * config/arc/predicates.md: Add _1_2_3_operand predicate.

gcc/testsuite/ChangeLog:

        * gcc.target/arc/add_n-combine.c: New test.
        * gcc.target/arc/sub_n-combine.c: New test.

From-SVN: r248735

7 years agoPR libstdc++/80893 Fix null dereference in vector<bool>
Jonathan Wakely [Wed, 31 May 2017 12:41:45 +0000 (13:41 +0100)]
PR libstdc++/80893 Fix null dereference in vector<bool>

PR libstdc++/80893
* include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
null pointer dereference when size is zero.
* testsuite/23_containers/vector/bool/80893.cc: New.
* testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
Add non-explicit constructor from nullptr.
(PointerBase::derived() const): Add const-qualified overload.

From-SVN: r248734

7 years ago[1/2] Add get_next_strinfo helper function
Richard Sandiford [Wed, 31 May 2017 12:26:03 +0000 (12:26 +0000)]
[1/2] Add get_next_strinfo helper function

This patch just adds a helper function for getting the next strinfo
in a chain, since part 2 adds another place where we do that.

2017-05-16  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree-ssa-strlen.c (get_next_strinfo): New function.
(get_stridx_plus_constant): Use it.
(zero_length_string): Likewise.
(adjust_related_strinfos): Likewise.
(adjust_last_stmt): Likewise.

From-SVN: r248732

7 years agore PR target/80880 (internal compiler error: in ix86_expand_builtin)
Richard Biener [Wed, 31 May 2017 12:09:51 +0000 (12:09 +0000)]
re PR target/80880 (internal compiler error: in ix86_expand_builtin)

2017-05-31  Richard Biener  <rguenther@suse.de>

PR target/80880
* config/i386/i386.c (ix86_expand_builtin): Remove assert
for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.

* gcc.target/i386/pr80880.c: New testcase.

From-SVN: r248731

7 years agoAlternative check for vector refs with same alignment
Richard Sandiford [Wed, 31 May 2017 12:05:10 +0000 (12:05 +0000)]
Alternative check for vector refs with same alignment

vect_find_same_alignment_drs uses the ddr dependence distance
to tell whether two references have the same alignment.  Although
that's safe with the current code, there's no particular reason
why a dependence distance of 0 should mean that the accesses start
on the same byte.  E.g. a reference to a full complex value could
in principle depend on a reference to the imaginary component.
A later patch adds support for this kind of dependence.

On the other side, checking modulo vf is pessimistic when the step
divided by the element size is a factor of 2.

This patch instead looks for cases in which the drs have the same
base, offset and step, and for which the difference in their constant
initial values is a multiple of the alignment.

2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
loop_vinfo argument and use of dependence distance vectors.
Check instead whether the two references differ only in their
initial value and assume that they have the same alignment if the
difference is a multiple of the vector alignment.
(vect_analyze_data_refs_alignment): Update call accordingly.

gcc/testsuite/
* gcc.dg/vect/vect-103.c: Update wording of dump message.

From-SVN: r248730

7 years agoFix typo in a comment in cpuid.h (PR target/79155).
Martin Liska [Wed, 31 May 2017 11:40:13 +0000 (13:40 +0200)]
Fix typo in a comment in cpuid.h (PR target/79155).

2017-05-31  Martin Liska  <mliska@suse.cz>

PR target/79155
* config/i386/cpuid.h: Fix typo in a comment in cpuid.h.

From-SVN: r248729

7 years ago* tree-vect-loop-manip.c (create_intersect_range_checks_index)
Bin Cheng [Wed, 31 May 2017 09:03:27 +0000 (09:03 +0000)]
* tree-vect-loop-manip.c (create_intersect_range_checks_index)
(create_intersect_range_checks): Move from ...
* tree-data-ref.c (create_intersect_range_checks_index)
(create_intersect_range_checks): ... to here.
(create_runtime_alias_checks): New function factored from ...
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
here.  Call above function.
* tree-data-ref.h (create_runtime_alias_checks): New function.

From-SVN: r248726

7 years agotree-data-ref.c (prune_runtime_alias_test_list): Relax minimal segment length for...
Bin Cheng [Wed, 31 May 2017 09:01:36 +0000 (09:01 +0000)]
tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal segment length for dr_b and compute it in wide_int.

* tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
segment length for dr_b and compute it in wide_int.

gcc/testsuite
* gcc.dg/vect/pr80815-3.c: New test.

From-SVN: r248725

7 years agoMAINTAINERS: Add self to Write After Approval
Prakhar Bahuguna [Wed, 31 May 2017 08:25:25 +0000 (08:25 +0000)]
MAINTAINERS: Add self to Write After Approval

2017-05-31  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

* MAINTAINERS: Add self to Write After Approval

From-SVN: r248723

7 years agore PR tree-optimization/80906 (ICE in copy_loop_close_phi_args, at graphite-isl-ast...
Richard Biener [Wed, 31 May 2017 07:09:21 +0000 (07:09 +0000)]
re PR tree-optimization/80906 (ICE in copy_loop_close_phi_args, at graphite-isl-ast-to-gimple.c:2094)

2017-05-31  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80906
* graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
and pass through iv_map.
(copy_bb_and_scalar_dependences): Adjust.
(translate_pending_phi_nodes): Likewise.
(copy_loop_close_phi_args): Handle code-generating IVs instead
of ICEing.

* gcc.dg/graphite/pr80906.c: New testcase.

From-SVN: r248722

7 years agoconfigure.ac (strnlen): Add to AC_CHECK_DECLS.
DJ Delorie [Wed, 31 May 2017 04:16:45 +0000 (00:16 -0400)]
configure.ac (strnlen): Add to AC_CHECK_DECLS.

* configure.ac (strnlen): Add to AC_CHECK_DECLS.
* configure: Likewise.
* config.in: Add HACE_DECL_STRNLEN.

From-SVN: r248721

7 years agoDaily bump.
GCC Administrator [Wed, 31 May 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248719

7 years agoTest if host compiler supports -std=c++11 in ms-sysv.exp
Tom de Vries [Tue, 30 May 2017 22:00:57 +0000 (22:00 +0000)]
Test if host compiler supports -std=c++11 in ms-sysv.exp

2017-05-30  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80910
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Exit with status
unsupported if host compiler does not support c++11.
(host_supports_c++11): New proc.

From-SVN: r248701

7 years agore PR c/80731 (poor -Woverflow warnings, missing detail)
Martin Sebor [Tue, 30 May 2017 21:27:35 +0000 (21:27 +0000)]
re PR c/80731 (poor -Woverflow warnings, missing detail)

gcc/testsuite/ChangeLog:
PR c/80731
* g++.dg/ext/utf16-4.C: Relax test.
* gcc.dg/fixed-point/int-warning.c: Adjust.

From-SVN: r248700

7 years agoPR c++/80856 - ICE with local extern in template
Jason Merrill [Tue, 30 May 2017 21:13:27 +0000 (17:13 -0400)]
PR c++/80856 - ICE with local extern in template

* semantics.c (finish_call_expr): Replace a local extern overload
set in a template with the IDENTIFIER_NODE.

From-SVN: r248699

7 years agoC++ template type diff printing
David Malcolm [Tue, 30 May 2017 20:38:14 +0000 (20:38 +0000)]
C++ template type diff printing

gcc/ChangeLog:
* diagnostic-color.c (color_dict): Add "type-diff".
(parse_gcc_colors): Update comment.
* doc/invoke.texi (Diagnostic Message Formatting Options): Add
-fdiagnostics-show-template-tree and -fno-elide-type.
(GCC_COLORS): Add type-diff to example.
(type-diff=): New.
(-fdiagnostics-show-template-tree): New.
(-fno-elide-type): New.
* pretty-print.c (pp_format): Pass quote and formatters[argno] to
the pp_format_decoder callback.  Call any m_format_postprocessor's
"handle" method.
(pretty_printer::pretty_printer): Initialize
m_format_postprocessor.
(pretty_printer::~pretty_printer): Delete any
m_format_postprocessor.
* pretty-print.h (printer_fn): Add bool and const char **
parameters.
(class format_postprocessor): New class.
(struct pretty_printer::format_decoder): Document the new
parameters.
(struct pretty_printer::m_format_postprocessor): New field.
* tree-diagnostic.c (default_tree_printer): Update for new
bool and const char ** params.
* tree-diagnostic.h (default_tree_printer): Likewise.

gcc/c/ChangeLog:
* c-objc-common.c (c_tree_printer): Gain bool and const char **
parameters.

gcc/c-family/ChangeLog:
* c-format.c (gcc_cxxdiag_char_table): Add 'H' and 'I' to
format_chars.
* c.opt (fdiagnostics-show-template-tree): New option.
(felide-type): New option.

gcc/cp/ChangeLog:
* call.c (perform_implicit_conversion_flags): Convert
"from %qT to %qT" to "from %qH to %qI" in diagnostic.
(print_conversion_rejection): Replace pairs of %qT with
%qH and %qI in various places.
(build_user_type_conversion_1): Likewise.
(build_integral_nontype_arg_conv): Likewise.
(build_conditional_expr_1): Likewise.
(convert_like_real): Likewise.
(convert_arg_to_ellipsis): Likewise.
(joust): Likewise.
(initialize_reference): Likewise.
* cvt.c (cp_convert_to_pointer): Likewise.
(cp_convert_to_pointer): Likewise.
(convert_to_reference): Likewise.
(ocp_convert): Likewise.
* error.c (cp_printer): Gain bool and const char ** parameters.
(struct deferred_printed_type): New struct.
(class cxx_format_postprocessor): New class.
(cxx_initialize_diagnostics): Wire up a cxx_format_postprocessor
to pp->m_format_postprocessor.
(comparable_template_types_p): New function.
(newline_and_indent): New function.
(arg_to_string): New function.
(print_nonequal_arg): New function.
(print_template_differences): New function.
(type_to_string_with_compare): New function.
(print_template_tree_comparison): New function.
(append_formatted_chunk): New function.
(add_quotes): New function.
(cxx_format_postprocessor::handle): New function.
(defer_phase_2_of_type_diff): New function.
(cp_printer): Add "quoted" and "buffer_ptr" params.  Implement
%H and %I.
* typeck.c (cp_build_binary_op): Replace pairs of %qT with
%qH and %qI in various places.
(convert_member_func_to_ptr): Likewise.
(build_reinterpret_cast_1): Likewise.
(convert_for_assignment): Likewise.
* typeck2.c (check_narrowing): Likewise.

gcc/fortran/ChangeLog:
* error.c (gfc_format_decoder): Update for new bool and
const char ** params.

gcc/testsuite/ChangeLog:
* g++.dg/plugin/plugin.exp (plugin_test_list): Add...
* g++.dg/plugin/show-template-tree-color-no-elide-type.C: New
test case.
* g++.dg/plugin/show-template-tree-color.C: New test case.
* g++.dg/plugin/show_template_tree_color_plugin.c: New plugin.
* g++.dg/template/show-template-tree-2.C: New test case.
* g++.dg/template/show-template-tree-3.C: New test case.
* g++.dg/template/show-template-tree-4.C: New test case.
* g++.dg/template/show-template-tree-no-elide-type.C: New test case.
* g++.dg/template/show-template-tree.C: New test case.

From-SVN: r248698

7 years agoRemove gen_cell_microcode, warn_cell_microcode
Segher Boessenkool [Tue, 30 May 2017 19:34:36 +0000 (21:34 +0200)]
Remove gen_cell_microcode, warn_cell_microcode

-mno-gen-cell-microcode is a pain to handle correctly: it causes
different code generation for some very basic patterns, even patterns
specific to that option.  It also requires marking up many patterns,
which is a pain when adding new patterns or modifying existing ones
(first non-trivial step is finding the Cell BE manual!)

-mwarn-cell-microcode is very expensive, even more so after my recent
fix for PR43763; and it used to ICE for seven years before that fix.

This patch removes both these command line options (it leaves the
positive form of -mgen-cell-microcode, doing nothing, for
compatibility).

Where cc_reg_not_micro_cr0_operand was used, we now get the regular
cc_reg_not_cr0_operand.

One testcase used -mgen-cell-microcode and one its negation; both
are adjusted.

* config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
(lwa_operand): Delete rs6000_gen_cell_microcode test.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
rs6000_gen_cell_microcode code.
(rs6000_final_prescan_insn): Delete.
(rs6000_opt_vars): Delete the "gen-cell-microcode" and
"warn-cell-microcode" entries.
* config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
* config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
throughout.  Change cc_reg_not_micro_cr0_operand to
cc_reg_not_cr0_operand throughout.
(*extendhi<mode>2_noload): Delete.
* config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
(mwarn-cell-microcode): Delete.
* doc/invoke.texi (RS/6000 and PowerPC Options): Delete
-mgen-cell-microcode and -mwarn-cell-microcode.

gcc/testsuite/
* gcc.target/powerpc/shift-dot.c: Delete -mgen-cell-microcode from
dg-options.
* gfortran.dg/pr80107.f: Delete testcase.

From-SVN: r248695

7 years agoKill IDENTIFIER_NAMESPACE_BINDINGS
Nathan Sidwell [Tue, 30 May 2017 19:12:35 +0000 (19:12 +0000)]
Kill IDENTIFIER_NAMESPACE_BINDINGS

Kill IDENTIFIER_NAMESPACE_BINDINGS
* cp-tree.h (lang_identifier): Delete namespace_bindings.
(IDENTIFIER_NAMESPACE_BINDINGS): Delete.
(lang_decl_ns): Add bindings.
(DECL_NAMESPACE_BINDINGS): New.
* lex.c (retrofit_lang_decl): Create namespace hash table.
* name-lookup.c (find_namespace_slot): Change to use hash-map.
* ptree.c (cxx_print_binding): Delete.
(cxx_print_identifier): Remove NAMESPACE_BINDING printing.

From-SVN: r248694

7 years agocp-tree.def (OVERLOAD): Fix comment.
Nathan Sidwell [Tue, 30 May 2017 17:48:57 +0000 (17:48 +0000)]
cp-tree.def (OVERLOAD): Fix comment.

* cp-tree.def (OVERLOAD): Fix comment.
* cp-tree.h: Fix comments and whitespace.
* error.c (dump_decl): Use pp_cxx_colon_colon, ovl_scope.
* name-lookup.c (add_decl_to_level): Assert not class.
(check_local_shadow): Use OVL_P.
(pushdecl_with_scope_1): Rename to ...
(do_pushdecl_with_Scope): ... here.
(do_nonmember_using_decl): Use qualified_namespace_lookup return
value.
(push_class_level_binding_1): Use OVL_P.
(pushdecl_namespace_level): Use do_pushdecl_with_scope.
(pushtag_1): Rename to ...
(do_pushtag): ... here.  Adjust do_pushdecl_with_scope call.
(pushtag): Adjust.
(store_class_bindings): Do not time here.
* name-lookup.h (pushdecl_outermost_localscope): Reorder.
* pt.c (listify): Declare argvec at point of initialization.

From-SVN: r248693

7 years agoChangeLog: Add missing entry.
Uros Bizjak [Tue, 30 May 2017 17:25:43 +0000 (19:25 +0200)]
ChangeLog: Add missing entry.

* ChangeLog: Add missing entry.
* testsuite/ChangeLog: Ditto.

From-SVN: r248692

7 years agore PR target/80833 (32-bit x86 causes store-forwarding stalls for int64_t -> xmm)
Uros Bizjak [Tue, 30 May 2017 17:18:25 +0000 (19:18 +0200)]
re PR target/80833 (32-bit x86 causes store-forwarding stalls for int64_t -> xmm)

PR target/80833
* config/i386/constraints.md (Yd): New constraint.
(Ye): Ditto.
* config/i386/i386.md (*movti_internal): Add (?r, Ye)
and (?Yd, r) alternatives.  Update insn attributes.
* config/i386/i386.md (*movti_internal): Add (?r, *Ye)
and (?*Yd, r) alternatives.  Update insn attributes.
(double-mode inter-unit splitters): Add new GR<->XMM splitters.

testsuite/ChangeLog:

PR target/80833
* gcc.target/i386/pr80833-1.c: New test.
* gcc.target/i386/pr80833-2.c: Ditto.

From-SVN: r248691

7 years agogimplify_modify_expr: avoid DECL_DEBUG_EXPR links across functions
Pierre-Marie de Rodat [Tue, 30 May 2017 15:34:00 +0000 (15:34 +0000)]
gimplify_modify_expr: avoid DECL_DEBUG_EXPR links across functions

An upcoming patch exposes a bug in gimplify_modify_expr.  There, we try
not to create DECL_DEBUG_EXPR links across functions, however we don't
check that *FROM_P actually belongs to the current function before
modifying it.  This patch fixes this oversight.

gcc/

* gimplify.c (gimplify_modify_expr): Don't create a
DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
function.

From-SVN: r248688

7 years agore PR c++/80913 (Infinite loop in cc1plus with stat hack patch)
Nathan Sidwell [Tue, 30 May 2017 14:43:45 +0000 (14:43 +0000)]
re PR c++/80913 (Infinite loop in cc1plus with stat hack patch)

PR c++/80913
* name-lookup.c (add_decl_to_level): Assert not making a circular
chain.
(update_binding): Don't prematurely slide artificial decl.

* g++.dg/lookup/pr80913.C: New.

From-SVN: r248687

7 years agoFix ARM bootstrap failure due to an odd warning:
Wilco Dijkstra [Tue, 30 May 2017 14:29:55 +0000 (14:29 +0000)]
Fix ARM bootstrap failure due to an odd warning:

/src/gcc/gcc/config/arm/arm-builtins.c: In function 'rtx_def* arm_expand_builtin(tree, rtx, rtx, machine_mode, int)':
/src/gcc/gcc/config/arm/arm-builtins.c:3056:46: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]
     if (d->code == (const enum arm_builtins) fcode)
                                              ^~~~~

Avoid the warning by removing const, and bootstrap is OK again.

Committed as trivial patch.

    gcc/
* config/arm/arm-builtins.c (arm_expand_builtin): Remove const.

From-SVN: r248686

7 years agotree-vectorizer.h (struct _stmt_vec_info): Add reduc_type and reduc_def fields.
Richard Biener [Tue, 30 May 2017 13:21:44 +0000 (13:21 +0000)]
tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type and reduc_def fields.

2017-05-30  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
and reduc_def fields.
(STMT_VINFO_REDUC_TYPE): New define.
(STMT_VINFO_REDUC_DEF): Likewise.
(vect_force_simple_reduction): Adjust prototype.
* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
(vect_is_simple_reduction): Remove check_reduction argument.
(vect_force_simple_reduction): Adjust and set
STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
(vectorizable_reduction): Do not re-do reduction analysis
but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
* tree-parloops.c (gather_scalar_reductions): Adjust.

From-SVN: r248685

7 years agot-vxworks (LIBGCC2_INCLUDES): Remove extraneous dollar sign before $(MULTIDIR).
Olivier Hainque [Tue, 30 May 2017 12:37:39 +0000 (12:37 +0000)]
t-vxworks (LIBGCC2_INCLUDES): Remove extraneous dollar sign before $(MULTIDIR).

2017-05-30  Olivier Hainque  <hainque@adacore.com>

libgcc/
* config/t-vxworks (LIBGCC2_INCLUDES): Remove extraneous
dollar sign before $(MULTIDIR).

From-SVN: r248684

7 years agore PR libgomp/80822 (libgomp incorrect affinity when OMP_PLACES=threads)
Jakub Jelinek [Tue, 30 May 2017 12:05:30 +0000 (14:05 +0200)]
re PR libgomp/80822 (libgomp incorrect affinity when OMP_PLACES=threads)

PR libgomp/80822
* config/linux/affinity.c (gomp_affinity_init_level_1): New function.
(gomp_affinity_init_level): Use it.  Always analyze the core and thread
sibling lists, depending on level just pick up what CPUs to put
together into a place vs. whether add multiple ordered places.

From-SVN: r248683

7 years agore PR tree-optimization/80901 (ICE on valid code at -Os and above on x86_64-linux...
Richard Biener [Tue, 30 May 2017 11:08:36 +0000 (11:08 +0000)]
re PR tree-optimization/80901 (ICE on valid code at -Os and above on x86_64-linux-gnu: in verify_loop_structure, at cfgloop.c:1644)

2017-05-30  Richard Biener  <rguenther@suse.de>

PR middle-end/80901
* cfgexpand.c (expand_gimple_cond): Match up loop fixup with
split_edge code.

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

From-SVN: r248681

7 years agoVector peeling cost model 6/6
Robin Dapp [Tue, 30 May 2017 11:02:14 +0000 (11:02 +0000)]
Vector peeling cost model 6/6

gcc/ChangeLog:

2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
Introduce unknown_misalignment parameter and remove vf.
(vect_peeling_hash_get_lowest_cost):
Pass unknown_misalignment parameter.
(vect_enhance_data_refs_alignment):
Fix unsupportable data ref treatment.

From-SVN: r248680

7 years agoVector peeling cost model 5/6
Robin Dapp [Tue, 30 May 2017 11:00:50 +0000 (11:00 +0000)]
Vector peeling cost model 5/6

gcc/testsuite/ChangeLog:

2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* gcc.target/s390/vector/vec-nopeel-2.c: New test.

From-SVN: r248679

7 years agoVector peeling cost model 4/6
Robin Dapp [Tue, 30 May 2017 10:59:07 +0000 (10:59 +0000)]
Vector peeling cost model 4/6

gcc/ChangeLog:

2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* tree-vect-data-refs.c (vect_get_data_access_cost):
Workaround for SLP handling.
(vect_enhance_data_refs_alignment):
Compute costs for doing no peeling at all, compare to the best
peeling costs so far and avoid peeling if cheaper.

From-SVN: r248678

7 years agoVector peeling cost model 3/6
Robin Dapp [Tue, 30 May 2017 10:57:53 +0000 (10:57 +0000)]
Vector peeling cost model 3/6

gcc/ChangeLog:

2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
Return peeling info and set costs to zero for unlimited cost
model.
(vect_enhance_data_refs_alignment): Also inspect all datarefs
with unknown misalignment. Compute and costs for unknown
misalignment, compare them to the costs for known misalignment
and choose the cheapest for peeling.

From-SVN: r248677

7 years agoVector peeling cost model 2/6
Robin Dapp [Tue, 30 May 2017 10:56:15 +0000 (10:56 +0000)]
Vector peeling cost model 2/6

gcc/ChangeLog:

2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
(vect_get_peeling_costs_all_drs): Create function.
(vect_peeling_hash_get_lowest_cost):
Use vect_get_peeling_costs_all_drs.
(vect_peeling_supportable): Create function.
(vect_enhance_data_refs_alignment): Use vect_peeling_supportable.

From-SVN: r248676

7 years agoVector peeling cost model 1/6
Robin Dapp [Tue, 30 May 2017 10:53:25 +0000 (10:53 +0000)]
Vector peeling cost model 1/6

gcc/ChangeLog:

2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
DR_HAS_NEGATIVE_STEP.
(vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
(vect_enhance_data_refs_alignment): Use.
(vect_duplicate_ssa_name_ptr_info): Use.
* tree-vectorizer.h (dr_misalignment): Use.
(known_alignment_for_access_p): Use.

From-SVN: r248675

7 years agore PR target/78838 (msp430 option -mcode-region=either, -ffunction-sections, and...
Jozef Lawrynowicz [Tue, 30 May 2017 10:49:29 +0000 (10:49 +0000)]
re PR target/78838 (msp430 option -mcode-region=either, -ffunction-sections, and interrupt function attributes cause incorrect section to be created)

PR target/78838
gcc * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
.lowtext.
(has_section_name): New function.

testsuite * gcc.target/msp430/interrupt_fn_placement.c: New test.

From-SVN: r248674

7 years agoFix parenthesis in auto-profile.c (PR other/80909).
Martin Liska [Tue, 30 May 2017 08:02:03 +0000 (10:02 +0200)]
Fix parenthesis in auto-profile.c (PR other/80909).

2017-05-30  Martin Liska  <mliska@suse.cz>

PR other/80909
* auto-profile.c (get_function_decl_from_block): Fix
parenthesis.

From-SVN: r248647

7 years agore PR tree-optimization/80876 (ICE in verify_loop_structure, at cfgloop.c:1644 (error...
Richard Biener [Tue, 30 May 2017 07:49:00 +0000 (07:49 +0000)]
re PR tree-optimization/80876 (ICE in verify_loop_structure, at cfgloop.c:1644 (error: loop 1's latch does not have an edge to its header))

2017-05-30  Richard Biener  <rguenther@suse.de>

PR middle-end/80876
* cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.

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

From-SVN: r248633

7 years agoRemove dump_file_info::dump_file_info and replace it with macro.
Martin Liska [Tue, 30 May 2017 07:35:23 +0000 (09:35 +0200)]
Remove dump_file_info::dump_file_info and replace it with macro.

2017-05-30  Martin Liska  <mliska@suse.cz>

* dumpfile.c: Use newly added macro DUMP_FILE_INFO.
* dumpfile.h (struct dump_file_info): Remove ctors.

From-SVN: r248617

7 years agoCompare predictor values with these defined in predict.def.
Martin Liska [Tue, 30 May 2017 07:16:31 +0000 (09:16 +0200)]
Compare predictor values with these defined in predict.def.

2017-05-30  Martin Liska  <mliska@suse.cz>

* analyze_brprob.py: Add new argument to parse and modify
predict.def file.
* analyze_brprob_spec.py: Likewise.

From-SVN: r248600

7 years agoFix coding style.
Martin Liska [Tue, 30 May 2017 07:16:04 +0000 (09:16 +0200)]
Fix coding style.

2017-05-30  Martin Liska  <mliska@suse.cz>

* predict.def: Fix GNU coding style.

From-SVN: r248599

7 years agoDaily bump.
GCC Administrator [Tue, 30 May 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248591

7 years agogcc: xtensa: fix unused parameter warning
Max Filippov [Mon, 29 May 2017 23:03:52 +0000 (23:03 +0000)]
gcc: xtensa: fix unused parameter warning

2017-05-28  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
Mark 'to' argument with ATTRIBUTE_UNUSED.

From-SVN: r248587

7 years agogcc: xtensa: fix fprintf format specifiers
Max Filippov [Mon, 29 May 2017 23:02:36 +0000 (23:02 +0000)]
gcc: xtensa: fix fprintf format specifiers

HOST_WIDE_INT may not be long as assumed in print_operand and
xtensa_emit_call. Use HOST_WIDE_INT_PRINT_DEC/HOST_WIDE_INT_PRINT_HEX
format strings instead of %ld/0x%lx. This fixes incorrect assembly code
generation by the compiler running on armhf host.

2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.c (xtensa_emit_call): Use
HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
(print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
format string.

From-SVN: r248586

7 years agoinstall.texi (Options specification): Restore entry of --enable-sjlj-exceptions.
Eric Botcazou [Mon, 29 May 2017 21:08:02 +0000 (21:08 +0000)]
install.texi (Options specification): Restore entry of --enable-sjlj-exceptions.

* doc/install.texi (Options specification): Restore entry of
--enable-sjlj-exceptions.

From-SVN: r248582

7 years ago[libcc1] drop unused field from C++ lang_identifier
Alexandre Oliva [Mon, 29 May 2017 20:23:43 +0000 (20:23 +0000)]
[libcc1] drop unused field from C++ lang_identifier

for  gcc/cp/ChangeLog

* cp-tree.h (lang_identifier): Drop oracle_looked_up, unused.

From-SVN: r248580

7 years agoPR c++/80891 (#1,#5)
Nathan Sidwell [Mon, 29 May 2017 19:45:42 +0000 (19:45 +0000)]
PR c++/80891 (#1,#5)

PR c++/80891 (#1,#5)
* cp-tree.h (lookup_maybe_add): Add DEDUPING argument.
* name-lookup.c (name_lookup): Add deduping field.
(name_lookup::preserve_state, name_lookup::restore_state): Deal
with deduping.
(name_lookup::add_overload): New.
(name_lookup::add_value, name_lookup::add_fns): Call add_overload.
(name_lookup::search_adl): Set deduping.  Don't unmark here.
* pt.c (most_specialized_instantiation): Revert previous change,
Assert not given duplicates.
* tree.c (lookup_mark): Just mark the underlying decls.
(lookup_maybe_add): Dedup using marked decls.

PR c++/80891 (#5)
* g++.dg/lookup/pr80891-5.C: New.

From-SVN: r248578

7 years agore PR fortran/53029 (missed optimization in internal read (without implied-do-loop))
Jerry DeLisle [Mon, 29 May 2017 19:17:57 +0000 (19:17 +0000)]
re PR fortran/53029 (missed optimization in internal read (without implied-do-loop))

2017-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/53029
* list_read.c (list_formatted_read_scala): Set the err return
value to the common.flags error values.

* gfortran.dg/read_5.f90: New test.

From-SVN: r248577

7 years agoPR c++/80891 (#4)
Nathan Sidwell [Mon, 29 May 2017 16:50:41 +0000 (16:50 +0000)]
PR c++/80891 (#4)

PR c++/80891 (#4)
* ptree.c (cxx_print_xnode): Show internal OVERLOAD structure.
* tree.c (ovl_insert, ovl_iterator_remove_node): Fix copying
assert.

PR c++/80891 (#4)
* g++.dg/lookup/pr80891-4.C: New.

From-SVN: r248576

7 years agoStat hack representation
Nathan Sidwell [Mon, 29 May 2017 15:01:20 +0000 (15:01 +0000)]
Stat hack representation

Stat hack representation
* name-lookup.c (STAT_HACK_P, STAT_TYPE, STAT_DECL)
MAYBE_STAT_DECL, MAYBE_STAT_TYPE): New.
(stat_hack): New.
(find_namespace_binding): Replace with ...
(find_namespace_slot): ... this.
(find_namespace_value): New.
(name_lookup::search_namespace_only,
name_lookup::adl_namespace_only): Adjust.
(update_binding): Add SLOT parameter, adjust.
(check_local_shadow): Use find_namespace_value.
(set_local_extern_decl_linkage): Likewise.
(do_pushdecl): Adjust for namespace slot.
(push_local_binding): Assert not a namespace binding.
(check_for_out_of_scope_variable): Use find_namespace_value.
(set_identifier_type_value_with_scope): Likewise.
(get_namespace_binding): Likewise.
(set_namespace_binding): Delete.
(set_global_binding): Directly update the binding.
(finish_namespace_using_decl): Likewise.
(lookup_type_scope_1): Use find_namespace_slot and update.
(do_push_nested_namespace): Use find_namespace_value.

From-SVN: r248574

7 years agoPR c++/80891 (#1)
Nathan Sidwell [Mon, 29 May 2017 14:08:04 +0000 (14:08 +0000)]
PR c++/80891 (#1)

PR c++/80891 (#1)
* pt.c (most_specialized_instantiation): Cope with duplicate
instantiations.

PR c++/80891 (#1)
* g++.dg/lookup/pr80891-1.C: New.

From-SVN: r248573

7 years agoPR c++/80891 (#3)
Nathan Sidwell [Mon, 29 May 2017 12:52:58 +0000 (12:52 +0000)]
PR c++/80891 (#3)

PR c++/80891 (#3)
* cp-tree.h (build_min_nt_call_vec): Declare.
* decl.c (build_offset_ref_call_from_tree): Call it.
* parser.c (cp_parser_postfix_expression): Likewise.
* pt.c (tsubst_copy_and_build): Likewise.
* semantics.c (finish_call_expr): Likewise.
* tree.c (build_min_nt_loc): Keep unresolved lookups.
(build_min): Likewise.
(build_min_non_dep): Likewise.
(build_min_non_dep_call_vec): Likewise.
(build_min_nt_call_vec): New.

PR c++/80891 (#3)
* g++.dg/lookup/pr80891-3.C: New.

From-SVN: r248571

7 years agoPR c++/80891 (#2)
Nathan Sidwell [Mon, 29 May 2017 11:51:13 +0000 (11:51 +0000)]
PR c++/80891 (#2)

PR c++/80891 (#2)
* tree.c (ovl_copy): Adjust assert, copy OVL_LOOKUP.
(ovl_used): New.
(lookup_keep): Call it.

PR c++/80891 (#2)
* g++.dg/lookup/pr80891-2.C: New.

From-SVN: r248570

7 years agocheck_GNU_style_lib.py: Fix trailing whitespace check
Tom de Vries [Mon, 29 May 2017 07:31:11 +0000 (07:31 +0000)]
check_GNU_style_lib.py: Fix trailing whitespace check

2017-05-29  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style_lib.py (TrailingWhitespaceCheck.check): Assert no
trailing eol.
(TrailingWhitespaceTest): New unit test.
(check_GNU_style_file): Remove eol before checking.

From-SVN: r248556

7 years agocheck_GNU_style.py: Read stdin if file argument is '-'
Tom de Vries [Mon, 29 May 2017 07:31:02 +0000 (07:31 +0000)]
check_GNU_style.py: Read stdin if file argument is '-'

2017-05-29  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style_lib.py (check_GNU_style_file): Treat file argument as
file handle.  Add and handle file_encoding argument.
* check_GNU_style.py (main): Handle '-' file argument.  Call
check_GNU_style_file with file handle as argument.

From-SVN: r248555

7 years agocheck_GNU_style_lib.py: Suggest to install all missing pip3 packages at once
Tom de Vries [Mon, 29 May 2017 07:30:47 +0000 (07:30 +0000)]
check_GNU_style_lib.py: Suggest to install all missing pip3 packages at once

Instead of:
...
$ ./contrib/check_GNU_style.py
termcolor module is missing (run: pip3 install termcolor)
$ pip3 install termcolor
$ ./contrib/check_GNU_style.py
unidiff module is missing (run: pip3 install unidiff)
$ pip3 install unidiff
$
...

Do:
...
$ ./contrib/check_GNU_style.py
termcolor and unidiff modules are missing (run: pip3 install termcolor unidiff)
$ pip3 install termcolor unidiff
$
...

2017-05-29  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style_lib.py: Use import_pip3 to import pip3 packages.
(import_pip3): New function.

From-SVN: r248554

7 years agore PR fortran/37131 (inline matmul for small matrix sizes)
Thomas Koenig [Mon, 29 May 2017 06:03:23 +0000 (06:03 +0000)]
re PR fortran/37131 (inline matmul for small matrix sizes)

2017-05-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37131
* frontend-passes.c (check_conjg_transpose_variable):
Add prototype.
(has_dimen_vector_ref):  Likewise
(matmul_temp_args):  New function. Add prototype.
(optimize_namespace):  Call matmul_temp_args.

2017-05-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37131
* gfortran.dg/promotion_2.f90: Add -finline-matmul-limit=0 to
flags.
* gfortran.dg/transpose_optimization_1.f90: Likewise.
* gfortran.dg/inline_matmul_17.f90:  New test.

From-SVN: r248553

7 years agoDaily bump.
GCC Administrator [Mon, 29 May 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248552

7 years agore PR c++/80737 (variant<any> as class member resulting to compile errors)
Tim Shen [Sun, 28 May 2017 21:27:30 +0000 (21:27 +0000)]
re PR c++/80737 (variant<any> as class member resulting to compile errors)

  PR libstdc++/80737
  * include/std/variant(variant::variant): SFINAE on is_same first.
  * testsuite/20_util/variant/any.cc: test case.

From-SVN: r248548

7 years agoFix libgfortran FMA3/FMA4 tests
Rainer Orth [Sun, 28 May 2017 19:12:45 +0000 (19:12 +0000)]
Fix libgfortran FMA3/FMA4 tests

* acinclude.m4 (LIBGFOR_CHECK_FMA3): Use test from
check_effective_target_fma in gcc.target/i386/i386.exp.
(LIBGFOR_CHECK_FMA4): Use test from check_effective_target_fma4.
* configure: Regenerate.

From-SVN: r248547

7 years agofrontend-passes.c (matmul_lhs_realloc): Correct allocation size for case A1B2.
Thomas Koenig [Sun, 28 May 2017 14:02:57 +0000 (14:02 +0000)]
frontend-passes.c (matmul_lhs_realloc): Correct allocation size for case A1B2.

2017-05-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

* frontend-passes.c (matmul_lhs_realloc):  Correct
allocation size for case A1B2.

2017-05-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

* gfortran.dg/matmul_bounds_12.f90:  New test.

From-SVN: r248546

7 years agoDaily bump.
GCC Administrator [Sun, 28 May 2017 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248544

7 years agoRevert:
Michael Eager [Sat, 27 May 2017 18:29:40 +0000 (18:29 +0000)]
Revert:

2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>

See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.

* config/microblaze/microblaze.h
(FIXED_REGISTERS): Update in macro.
(CALL_USED_REGISTERS): Update in macro.

From-SVN: r248540

7 years agod-demangle.c (dlang_identifier): Prefix mangled init symbols with `initializer for'.
Iain Buclaw [Sat, 27 May 2017 11:30:22 +0000 (11:30 +0000)]
d-demangle.c (dlang_identifier): Prefix mangled init symbols with `initializer for'.

libiberty/ChangeLog:

* d-demangle.c (dlang_identifier): Prefix mangled init symbols
with `initializer for'.
* testsuite/demangle-expected: Update tests.

From-SVN: r248539

7 years agod-demangle.c (dlang_call_convention_p): Move declaration before dlang_type.
Iain Buclaw [Sat, 27 May 2017 11:29:52 +0000 (11:29 +0000)]
d-demangle.c (dlang_call_convention_p): Move declaration before dlang_type.

libiberty/ChangeLog:

* d-demangle.c (dlang_call_convention_p): Move declaration
before dlang_type.
(dlang_type): Handle function types.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r248538

7 years agod-demangle.c (dlang_parse_real): Remove stack buffer, write the demangled hexadecimal...
Iain Buclaw [Sat, 27 May 2017 11:29:38 +0000 (11:29 +0000)]
d-demangle.c (dlang_parse_real): Remove stack buffer, write the demangled hexadecimal directly to string.

libiberty/ChangeLog:

* d-demangle.c (dlang_parse_real): Remove stack buffer, write
the demangled hexadecimal directly to string.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r248537

7 years agoMAINTAINERS: Update my email address, and remove myself as maintainer in some areas.
Bernd Schmidt [Sat, 27 May 2017 10:50:27 +0000 (10:50 +0000)]
MAINTAINERS: Update my email address, and remove myself as maintainer in some areas.

* MAINTAINERS: Update my email address, and remove myself as
maintainer in some areas.

From-SVN: r248536

7 years ago* doc/install.texi: Add links to macOS binary distributions.
Francois-Xavier Coudert [Sat, 27 May 2017 08:40:18 +0000 (08:40 +0000)]
* doc/install.texi: Add links to macOS binary distributions.

From-SVN: r248535

7 years agoSmall ChangeLog tweak.
Jakub Jelinek [Sat, 27 May 2017 07:48:54 +0000 (09:48 +0200)]
Small ChangeLog tweak.

From-SVN: r248534

7 years agore PR bootstrap/80887 (gnat bootstrap fails at s-regpat.o: raised STORAGE_ERROR ...
Jakub Jelinek [Sat, 27 May 2017 07:46:12 +0000 (09:46 +0200)]
re PR bootstrap/80887 (gnat bootstrap fails at s-regpat.o: raised STORAGE_ERROR : stack overflow or erroneous memory access)

PR bootstrap/80887
2017-05-25  Marc Glisse  <marc.glisse@inria.fr>

* match.pd ((A +- CST1) +- CST2): Allow some conversions.

* gcc.dg/tree-ssa/addadd.c: Xfail all scan-tree-dump*.

From-SVN: r248533

7 years agoDaily bump.
GCC Administrator [Sat, 27 May 2017 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248532

7 years agocompiler: identify array index expressions in lvalue context
Ian Lance Taylor [Fri, 26 May 2017 21:48:49 +0000 (21:48 +0000)]
compiler: identify array index expressions in lvalue context

    Update the Mark_lvalue_varexprs visitor class (used in
    Assignment_statement::do_get_backend) to identify
    Array_index_expression's that appear on the left hand side of
    assignments, then pass this context info on when invoking
    Array_type::get_value_pointer.

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

From-SVN: r248528

7 years agore PR libgcc/80037 (Bad .eh_frame data in crtend.o)
Richard Henderson [Fri, 26 May 2017 18:45:59 +0000 (11:45 -0700)]
re PR libgcc/80037 (Bad .eh_frame data in crtend.o)

PR libgcc/80037

 * config/alpha/t-alpha (CRTSTUFF_T_CFLAGS): New.

From-SVN: r248522

7 years agoImplement DR2061
Nathan Sidwell [Fri, 26 May 2017 18:13:53 +0000 (18:13 +0000)]
Implement DR2061

gcc/
Implement DR2061
* name-lookup.c (push_inline_namespaces): New.
(push_namespace): Look inside inline namespaces.

testsuite/
* g++.dg/cpp0x/dr2061.C: New.
* g++.dg/parse/namespace-alias-1.C: Add more test.

From-SVN: r248521

7 years agoInline and using namespace representation change.
Nathan Sidwell [Fri, 26 May 2017 17:19:46 +0000 (17:19 +0000)]
Inline and using namespace representation change.

gcc/cp/
Inline and using namespace representation change.
* cp-tree.h (struct lang_decl_ns): Delete ns_using.  Add usings,
inlinees as vector.
(DECL_NAMESPACE_USING): Adjust.
(DECL_NAMESPACE_INLINEES): New.
* name-lookup.h (struct cp_binding_level): Change usings
representation.
* name-lookup.c (name_lookup::do_queue_usings)
name_lookup::queue_usings): Adjust.
(name_lookup::search_namespace, name_lookup::search_usings)
name_lookup::queue_namespace): Adjust.
(name_lookup::adl_namespace_only): Adjust.
(add_using_namespace, push_namespace): Push onto vector.
(pop_namespace): Add timing logic.

libcc1/
* libcp1plugin.cc (plugin_make_namespace_inline): Push onto linees.
((--This line, and those below, will be ignored--

M    gcc/cp/ChangeLog
M    gcc/cp/cp-tree.h
M    gcc/cp/name-lookup.c
M    gcc/cp/name-lookup.h
M    libcc1/libcp1plugin.cc
M    libcc1/ChangeLog

From-SVN: r248520

7 years agore PR fortran/80889 (Bootstrap broken on all targets due to rev 248472)
Thomas Koenig [Fri, 26 May 2017 17:16:35 +0000 (17:16 +0000)]
re PR fortran/80889 (Bootstrap broken on all targets due to rev 248472)

2017-05-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR boostrap/80889
* acinclude.m4: Also set HAVE_AVX128 on the false
branch of LIBGFOR_CHECK_AVX128.
* configure:  Regenerated.

From-SVN: r248519

7 years agocall.c (build_operator_new_call): Do namelookup and ADL here.
Nathan Sidwell [Fri, 26 May 2017 16:34:40 +0000 (16:34 +0000)]
call.c (build_operator_new_call): Do namelookup and ADL here.

gcc/cp/
* call.c (build_operator_new_call): Do namelookup and ADL here.
(build_new_op_1): Likewise.
* name-lookup.h (lookup_function_nonclass): Delete declaration.
(do_using_directive): Likewise.
* name-lookup.c (set_namespace_binding, push_local_binding): Don't
declare early.
(struct scope_binding): Delete.
(EMPTY_SCOPE_BINDING): Delete.
(set_decl_namespace): Use OVL_P.
(finish_local_using_decl): Lose unnecesary checks.
(lookup_function_nonclass): Delete.
(cp_emit_debug_info_for_using): Use MAYBE_BASELINK_P.

libcc1/
* libcp1plugin.cc (plugin_add_using_namespace): Call
finish_namespace_using_directive.

From-SVN: r248518

7 years agocp-tree.h (OVL_CHAIN): Check looking at OVERLOAD.
Nathan Sidwell [Fri, 26 May 2017 15:01:07 +0000 (15:01 +0000)]
cp-tree.h (OVL_CHAIN): Check looking at OVERLOAD.

* cp-tree.h (OVL_CHAIN): Check looking at OVERLOAD.
(ovl_iterator): Add allow_inner field.  Adjust ctor.  Make
unduplicatable.
(ovl_iterator::maybe_push, ovl_iterator::pop): New.
(lkp_iterator): Add outer field.  Adjust ctor.
(lkp_iterator::operator++): New.
(lookup_mark, lookup_maybe_add): Declare.
* name-lookup.c (name_lookup): Delete fn_set member.
(name_lookup::preserve_state, name_lookup::restore_state): Unmark
and mark lookup.
(name_lookup::add_value): Use lookup_add directly.
(name_lookup::add_fns: Use lookup_maybe_add.
(name_lookup::search_adl): Mark and unmark fns.
(pushdecl): Adjust.
* pt.c (check_explicit_specialization): Use lookup_add directly.
* ptree.c (cxx_print_xnode): Show complete overload structure.
* tree.c (lookup_mark, lookup_maybe_add): New.

From-SVN: r248517

7 years agoRenumber TDF_* flags to be contiguous.
Martin Liska [Fri, 26 May 2017 14:49:36 +0000 (16:49 +0200)]
Renumber TDF_* flags to be contiguous.

2017-05-26  Martin Liska  <mliska@suse.cz>

* dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.

From-SVN: r248515

7 years agoSimplify usage of some TDF_* flags.
Martin Liska [Fri, 26 May 2017 14:45:59 +0000 (16:45 +0200)]
Simplify usage of some TDF_* flags.

2017-05-26  Martin Liska  <mliska@suse.cz>

* cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
always leading ';; '.
(dump_bb_info): Likewise.
(brief_dump_cfg): Likewise.
* cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
* dumpfile.c: Remove usage of TDF_VERBOSE.
* dumpfile.h (enum dump_kind): Likewise.
(dump_gimple_bb_header): Do not use TDF_COMMENT.
* print-tree.c (debug_verbose): Remove.
* tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
(dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
* tree-diagnostic.c (default_tree_printer): Replace
TDF_DIAGNOSTIC with TDF_SLIM.

From-SVN: r248514

7 years agotree-vect-loop-manip.c (create_intersect_range_checks_index): Pass in parameter loop...
Bin Cheng [Fri, 26 May 2017 14:21:29 +0000 (14:21 +0000)]
tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass in parameter loop, rather than loop_vinfo.

* tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
in parameter loop, rather than loop_vinfo.
(create_intersect_range_checks): Ditto.
(vect_create_cond_for_alias_checks): Update call to above functions.

From-SVN: r248513

7 years agore PR middle-end/80815 (wrong code because of broken runtime alias check in vectorizer)
Bin Cheng [Fri, 26 May 2017 14:18:26 +0000 (14:18 +0000)]
re PR middle-end/80815 (wrong code because of broken runtime alias check in vectorizer)

PR tree-optimization/80815
* tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
for merging runtime alias checks.  Handle negative DR_STEPs.
gcc/testsuite
* gcc.dg/vect/pr80815-1.c: New test.
* gcc.dg/vect/pr80815-2.c: New test.

From-SVN: r248512

7 years agotree-vect-data-refs.c (Operator==, [...]): Move from ...
Bin Cheng [Fri, 26 May 2017 14:10:43 +0000 (14:10 +0000)]
tree-vect-data-refs.c (Operator==, [...]): Move from ...

* tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
Move from ...
* tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
out code pruning runtime alias checks.
* tree-data-ref.c (prune_runtime_alias_test_list): New function
factored out from above.
* tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
Move from ...
* tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
... to here.
(prune_runtime_alias_test_list): New decalaration.

From-SVN: r248511

7 years agotree-vect-data-refs.c (compare_tree): Rename and move ...
Bin Cheng [Fri, 26 May 2017 14:04:49 +0000 (14:04 +0000)]
tree-vect-data-refs.c (compare_tree): Rename and move ...

* tree-vect-data-refs.c (compare_tree): Rename and move ...
* tree-data-ref.c (data_ref_compare_tree): ... to here.
* tree-data-ref.h (data_ref_compare_tree): New decalaration.
* tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
(operator==, comp_dr_with_seg_len_pair): Ditto.
(vect_prune_runtime_alias_test_list): Ditto.

From-SVN: r248510

7 years ago* name-lookup.c (name_lookup::search_adl): ADL OMP UDR type args.
Nathan Sidwell [Fri, 26 May 2017 11:36:39 +0000 (11:36 +0000)]
* name-lookup.c (name_lookup::search_adl): ADL OMP UDR type args.

From-SVN: r248506

7 years agoBound partial-inlining-entry-probability param (PR ipa/80663).
Martin Liska [Fri, 26 May 2017 11:05:52 +0000 (13:05 +0200)]
Bound partial-inlining-entry-probability param (PR ipa/80663).

2017-05-26  Martin Liska  <mliska@suse.cz>

PR ipa/80663
* params.def: Bound partial-inlining-entry-probability param.
2017-05-26  Martin Liska  <mliska@suse.cz>

PR ipa/80663
* g++.dg/ipa/pr80212.C: Remove the test as it does not longer
split at the problematic spot.
* gcc.dg/ipa/pr48195.c: Change 101 to 100 as 101 is no longer
a valid value of the param.

From-SVN: r248489

7 years agore PR sanitizer/80875 (UBSAN: compile time crash in fold_binary_loc at fold-const...
Marek Polacek [Fri, 26 May 2017 09:31:36 +0000 (09:31 +0000)]
re PR sanitizer/80875 (UBSAN: compile time crash in fold_binary_loc at fold-const.c:9817)

PR sanitizer/80875
* fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
can be negated.

* c-c++-common/ubsan/pr80875.c: New test.

From-SVN: r248485

7 years agoReplace absolute line numbers in gcc.dg
Tom de Vries [Fri, 26 May 2017 09:25:00 +0000 (09:25 +0000)]
Replace absolute line numbers in gcc.dg

2017-05-26  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* gcc.dg/20011021-1.c: Replace absolute line numbers.
* gcc.dg/Wcxx-compat-8.c: Same.
* gcc.dg/Wobjsize-1.c: Same.
* gcc.dg/Wshadow-local-2.c: Same.
* gcc.dg/Wstrict-aliasing-converted-assigned.c: Same.
* gcc.dg/anon-struct-6.c: Same.
* gcc.dg/asm-wide-1.c: Same.
* gcc.dg/builtin-inf-1.c: Same.
* gcc.dg/builtin-redefine.c: Same.
* gcc.dg/c90-array-lval-6.c: Same.
* gcc.dg/c90-array-lval-7.c: Same.
* gcc.dg/c90-fordecl-1.c: Same.
* gcc.dg/c99-fordecl-2.c: Same.
* gcc.dg/cast-lvalue-1.c: Same.
* gcc.dg/cast-lvalue-2.c: Same.
* gcc.dg/compound-lvalue-1.c: Same.
* gcc.dg/cond-lvalue-1.c: Same.
* gcc.dg/cpp/20000419-1.c: Same.
* gcc.dg/cpp/backslash.c: Same.
* gcc.dg/cpp/backslash2.c: Same.
* gcc.dg/cpp/macspace1.c: Same.
* gcc.dg/cpp/macspace2.c: Same.
* gcc.dg/cpp/multiline-2.c: Same.
* gcc.dg/cpp/pr27777.c: Same.
* gcc.dg/cpp/pr30786.c: Same.
* gcc.dg/cpp/pr34602.c: Same.
* gcc.dg/cpp/redef1.c: Same.
* gcc.dg/cpp/tr-warn1.c: Same.
* gcc.dg/cpp/tr-warn3.c: Same.
* gcc.dg/cpp/tr-warn6.c: Same.
* gcc.dg/cpp/trad/hash.c: Same.
* gcc.dg/cpp/trad/redef1.c: Same.
* gcc.dg/cpp/ucs.c: Same.
* gcc.dg/declspec-10.c: Same.
* gcc.dg/declspec-11.c: Same.
* gcc.dg/declspec-18.c: Same.
* gcc.dg/format/c99-strftime-1.c: Same.
* gcc.dg/format/ext-3.c: Same.
* gcc.dg/format/pr72858.c: Same.
* gcc.dg/gomp/appendix-a/a.24.1.c: Same.
* gcc.dg/init-string-1.c: Same.
* gcc.dg/label-decl-3.c: Same.
* gcc.dg/m-un-2.c: Same.
* gcc.dg/nofixed-point-2.c: Same.
* gcc.dg/noncompile/20020213-1.c: Same.
* gcc.dg/pch/counter-2.c: Same.
* gcc.dg/plugin/diagnostic-test-string-literals-2.c: Same.
* gcc.dg/pr27528.c: Same.
* gcc.dg/pr27953.c: Same.
* gcc.dg/pr35899.c: Same.
* gcc.dg/pr37561.c: Same.
* gcc.dg/pr45461.c: Same.
* gcc.dg/pr45750.c: Same.
* gcc.dg/pr53196-2.c: Same.
* gcc.dg/pr53265.c: Same.
* gcc.dg/redecl-1.c: Same.
* gcc.dg/tls/thr-init-1.c: Same.
* gcc.dg/torture/pr51106-1.c: Same.
* gcc.dg/torture/pr51106-2.c: Same.
* gcc.dg/uninit-19.c: Same.
* gcc.dg/uninit-pr20644.c: Same.

From-SVN: r248484

7 years agocp-tree.h (struct lang_decl_decomp): New type.
Jakub Jelinek [Fri, 26 May 2017 09:17:54 +0000 (11:17 +0200)]
cp-tree.h (struct lang_decl_decomp): New type.

* cp-tree.h (struct lang_decl_decomp): New type.
(struct lang_decl): Add u.decomp.
(LANG_DECL_DECOMP_CHECK): Define.
(DECL_DECOMPOSITION_P): Note it is set also on the vars
for user identifiers.
(DECL_DECOMP_BASE): Define.
(retrofit_lang_decl): Add extra int = 0 argument.
* lex.c (retrofit_lang_decl): Add SEL argument, if non-zero
use it to influence the selector choices and for selector
0 to non-zero transition copy old content.
(cxx_dup_lang_specific_decl): Handle DECL_DECOMPOSITION_P.
* decl.c (poplevel): For DECL_DECOMPOSITION_P, check
!DECL_DECOMP_BASE instead of !DECL_VALUE_EXPR.  Adjust warning
wording if decl is a structured binding.
(cp_finish_decomp): Pass 4 as the new argument to retrofit_lang_decl.
Set DECL_DECOMP_BASE.  Ignore DECL_READ_P sets from initialization
of individual variables for tuple structured bindings.
(grokdeclarator): Pass 4 as the new argument to retrofit_lang_decl.
Clear DECL_DECOMP_BASE.
* decl2.c (mark_used): Mark DECL_DECOMP_BASE TREE_USED as well.
* pt.c (tsubst_decomp_names): Assert DECL_DECOMP_BASE matches what
is expected.
* expr.c (mark_exp_read): Recurse on DECL_DECOMP_BASE instead of
DECL_VALUE_EXPR.

* g++.dg/cpp1z/decomp29.C (p): New variable.
(main): Add further tests.

From-SVN: r248483

7 years agore PR tree-optimization/80842 (ICE at -O3 on x86_64-linux-gnu in "set_lattice_value")
Richard Biener [Fri, 26 May 2017 07:19:00 +0000 (07:19 +0000)]
re PR tree-optimization/80842 (ICE at -O3 on x86_64-linux-gnu in "set_lattice_value")

2017-05-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80842
* tree-ssa-ccp.c (set_lattice_value): Always meet with the old
value.

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

From-SVN: r248482

7 years agore PR tree-optimization/80844 (OpenMP SIMD doesn't know how to efficiently zero a...
Richard Biener [Fri, 26 May 2017 07:14:52 +0000 (07:14 +0000)]
re PR tree-optimization/80844 (OpenMP SIMD doesn't know how to efficiently zero a vector (its stores zeros and reloads))

2017-05-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80844
* tree-vectorizer.c (adjust_simduid_builtins): Propagate
results.

From-SVN: r248481

7 years agoDaily bump.
GCC Administrator [Fri, 26 May 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248479

7 years agoMAINTAINERS: Add self to Write After Approval
Eric Gallager [Thu, 25 May 2017 23:38:05 +0000 (23:38 +0000)]
MAINTAINERS: Add self to Write After Approval

2017-05-25  Eric Gallager  <egall@gwmail.gwu.edu>

* MAINTAINERS: Add self to Write After Approval

From-SVN: r248475

7 years agore PR c++/79652 (ICE on invalid c++ code in warn_extern_redeclared_static in cp/decl...
Paolo Carlini [Thu, 25 May 2017 22:29:40 +0000 (22:29 +0000)]
re PR c++/79652 (ICE on invalid c++ code in warn_extern_redeclared_static in cp/decl.c:1231)

2017-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79652
* g++.dg/cpp0x/pr79652.C: New.

From-SVN: r248474

7 years agore PR c++/71451 (ICE on invalid C++11 code on x86_64-linux-gnu: in dependent_type_p...
Paolo Carlini [Thu, 25 May 2017 22:28:54 +0000 (22:28 +0000)]
re PR c++/71451 (ICE on invalid C++11 code on x86_64-linux-gnu: in dependent_type_p, at cp/pt.c:22599)

2017-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71451
* g++.dg/cpp0x/variadic170.C: New.

From-SVN: r248473

7 years agore PR libfortran/78379 (Processor-specific versions for matmul)
Thomas Koenig [Thu, 25 May 2017 21:51:27 +0000 (21:51 +0000)]
re PR libfortran/78379 (Processor-specific versions for matmul)

2017-05-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR libfortran/78379
* Makefile.am: Add generated/matmulavx128_*.c files.
Handle them for compiling and setting the right flags.
* acinclude.m4: Add tests for FMA3, FMA4 and AVX128.
* configure.ac: Call them.
* Makefile.in: Regenerated.
* config.h.in: Regenerated.
* configure: Regenerated.
* m4/matmul.m4:  Handle AMD chips by calling 128-bit AVX
versions which use FMA3 or FMA4.
* m4/matmulavx128.m4: New file.
        * generated/matmul_c10.c: Regenerated.
        * generated/matmul_c16.c: Regenerated.
        * generated/matmul_c4.c: Regenerated.
        * generated/matmul_c8.c: Regenerated.
        * generated/matmul_i1.c: Regenerated.
        * generated/matmul_i16.c: Regenerated.
        * generated/matmul_i2.c: Regenerated.
        * generated/matmul_i4.c: Regenerated.
        * generated/matmul_i8.c: Regenerated.
        * generated/matmul_r10.c: Regenerated.
        * generated/matmul_r16.c: Regenerated.
        * generated/matmul_r4.c: Regenerated.
        * generated/matmul_r8.c: Regenerated.
        * generated/matmulavx128_c10.c: New file.
        * generated/matmulavx128_c16.c: New file.
        * generated/matmulavx128_c4.c: New file.
        * generated/matmulavx128_c8.c: New file.
        * generated/matmulavx128_i1.c: New file.
        * generated/matmulavx128_i16.c: New file.
        * generated/matmulavx128_i2.c: New file.
        * generated/matmulavx128_i4.c: New file.
        * generated/matmulavx128_i8.c: New file.
        * generated/matmulavx128_r10.c: New file.
        * generated/matmulavx128_r16.c: New file.
        * generated/matmulavx128_r4.c: New file.
        * generated/matmulavx128_r8.c: New file.

From-SVN: r248472

7 years ago* g++.dg/cpp1z/nontype-auto11.C: Move from pr79583.C.
Jason Merrill [Thu, 25 May 2017 21:24:48 +0000 (17:24 -0400)]
* g++.dg/cpp1z/nontype-auto11.C: Move from pr79583.C.

From-SVN: r248471

7 years agoPR c++/80605 - __is_standard_layout and zero-length array
Jason Merrill [Thu, 25 May 2017 21:24:36 +0000 (17:24 -0400)]
PR c++/80605 - __is_standard_layout and zero-length array

* class.c (check_bases): Use DECL_FIELD_IS_BASE.

From-SVN: r248470