]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
8 years ago * bb-reorder.c (fix_up_crossing_landing_pad,
hubicka [Sat, 1 Jul 2017 12:29:55 +0000 (12:29 +0000)] 
* bb-reorder.c (fix_up_crossing_landing_pad,
fix_crossing_conditional_branches): Use make_single_succ_edge
to keep profile consistent.

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

8 years ago * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
hubicka [Sat, 1 Jul 2017 12:05:29 +0000 (12:05 +0000)] 
* tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
to update profile.

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

8 years ago PR sanitizer/81262
jakub [Sat, 1 Jul 2017 10:11:16 +0000 (10:11 +0000)] 
PR sanitizer/81262
* bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
the right scopes, make sure cond_jump isn't preserved between multiple
iterations.  Search for fallthru edge whenever there are 3+ edges and
use find_fallthru_edge for it.

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

8 years ago PR sanitizer/81262
jakub [Sat, 1 Jul 2017 08:16:27 +0000 (08:16 +0000)] 
PR sanitizer/81262
* bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
the right scopes, make sure cond_jump isn't preserved between multiple
iterations.  Search for fallthru edge whenever there are 3+ edges and
use find_fallthru_edge for it.

* gcc.c-torture/compile/pr81262.c: New test.
* g++.dg/ubsan/pr81262.C: New test.

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

8 years ago Patch by Alexander Monakov <amonakov@ispras.ru>
hubicka [Sat, 1 Jul 2017 07:47:22 +0000 (07:47 +0000)] 
Patch by Alexander Monakov <amonakov@ispras.ru>
* sel-sched-ir.c (compute_succs_info): Handle uninitialized
probabilities consistently.

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

8 years ago * sel-sched-ir.c (compute_succs_info): Handle uninitialized
hubicka [Sat, 1 Jul 2017 07:44:45 +0000 (07:44 +0000)] 
* sel-sched-ir.c (compute_succs_info): Handle uninitialized
probabilities consistently.

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

8 years ago * pa.c (pa_expand_compare_and_swap_loop): Update call of
hubicka [Sat, 1 Jul 2017 07:28:27 +0000 (07:28 +0000)] 
* pa.c (pa_expand_compare_and_swap_loop): Update call of
emit_cmp_and_jump_insns.

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

8 years agoDaily bump.
gccadmin [Sat, 1 Jul 2017 00:16:33 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago PR ipa/81261
hubicka [Fri, 30 Jun 2017 21:09:13 +0000 (21:09 +0000)] 
PR ipa/81261
* tree-inline.c (expand_call_inline): Combine profile statuses.

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

8 years ago PR c++/81257 - ICE with invalid ::template.
jason [Fri, 30 Jun 2017 21:08:53 +0000 (21:08 +0000)] 
PR c++/81257 - ICE with invalid ::template.

PR c++/54769 - wrong lookup of dependent template-name.
* parser.c (cp_parser_template_name): Revert part of last change.

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

8 years ago2017-06-30 Andrew Pinski <apinski@cavium.com>
pinskia [Fri, 30 Jun 2017 20:40:38 +0000 (20:40 +0000)] 
2017-06-30  Andrew Pinski  <apinski@cavium.com>

        * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
        fold_stmt returned true.
2017-06-30  Andrew Pinski  <apinski@cavium.com>

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

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

8 years ago * config-lang.in (gtfiles): Add cp/lex.c.
nathan [Fri, 30 Jun 2017 18:46:01 +0000 (18:46 +0000)] 
* config-lang.in (gtfiles): Add cp/lex.c.
* cp-tree.h (mangle_convop_name_for_type): Rename ...
(make_conv_op_name): ... here.  Move to lex.
* lambda.c (maybe_add_lambda_conv_op): Update.
* parser.c (cp_parser_conversion_function_id): Update.
* pt.c (tsubst_decl, tsubst_baselink, tsubst_copy,
tsubst_copy_and_build): Update.
* semantics.c (apply_deduced_return_type): Update.
* mangle.c (conv_type_hasher, conv_type_names,
mangle_conv_op_name_for_type): Move to ...
* lex.c (conv_type_hasher, conv_type_names, make_convop_name):
... here.  Rename.

* libcp1plugin.cc (plugin_build_decl): Use make_conv_op_name.
(plugin_build_dependent_expr): Likewise.

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

8 years ago * ggc.h (empty_string): Delete.
nathan [Fri, 30 Jun 2017 17:00:46 +0000 (17:00 +0000)] 
* ggc.h (empty_string): Delete.
* cfgexpand.c (expand_asm_stmt): Use plain "".
* optabs.c (expand_asm_memory_barrier): Likewise.
* stringpool.c (empty_string): Delete.
(digit_vector, digit_string): Delete.
(ggc_alloc_string): Use plain "", don't optimize single digit
strings.  Use ggc_alloc_atomic.

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

8 years ago[rtlanal] Do a better job of costing parallel sets containing flag-setting operations.
rearnsha [Fri, 30 Jun 2017 16:36:57 +0000 (16:36 +0000)] 
[rtlanal] Do a better job of costing parallel sets containing flag-setting operations.

Many parallel set insns are of the form of a single set that also sets
the condition code flags.  In this case the cost of such an insn is
normally the cost of the part that doesn't set the flags, since
updating the condition flags is simply a side effect.

At present all such insns are treated as having unknown cost (ie 0)
and combine assumes that such insns are infinitely more expensive than
any other insn sequence with a non-zero cost.

This patch addresses this problem by allowing insn_rtx_cost to ignore
the condition setting part of a PARALLEL iff there is exactly one
comparison set and one non-comparison set.  If the only set operation
is a comparison we still use that as the basis of the insn cost.

* rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
comparison set and one other set, use the cost of the non-comparison
set.

Bootstrapped on aarch64-none-linuxgnu

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

8 years ago * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
nathan [Fri, 30 Jun 2017 16:10:13 +0000 (16:10 +0000)] 
* ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
some formatting.

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

8 years ago * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
bergner [Fri, 30 Jun 2017 16:04:08 +0000 (16:04 +0000)] 
* tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
loops.  Remove now unneeded calls to gimple_switch_set_label() that
just set removed labels to NULL_TREE.

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

8 years ago * tree-ssanames.c (set_range_info_raw): Abstract from ...
aldyh [Fri, 30 Jun 2017 15:36:41 +0000 (15:36 +0000)] 
* tree-ssanames.c (set_range_info_raw): Abstract from ...
(set_range_info): ...here.  Only call set_range_info_raw if domain
is useful.
(set_nonzero_bits): Call set_range_info_raw.
* tree-ssanames.h (set_range_info_raw): New.
testsuite/
* gcc.dg/Walloca-14.c: Adapt test to recognize new complaint of
unbounded use.

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

8 years agoFix location of typeid() (PR c++/80014)
dmalcolm [Fri, 30 Jun 2017 15:20:55 +0000 (15:20 +0000)] 
Fix location of typeid() (PR c++/80014)

gcc/cp/ChangeLog:
PR c++/80014
* parser.c (cp_parser_postfix_expression): Construct a location
for typeid expressions.

gcc/testsuite/ChangeLog:
PR c++/80014
* g++.dg/plugin/diagnostic-test-expressions-1.C (std::type_info):
Add declaration.
(test_typeid): New test function.

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

8 years ago PR target/81225
jakub [Fri, 30 Jun 2017 14:52:24 +0000 (14:52 +0000)] 
PR target/81225
* config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For
V8FI, V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
of nonimmediate_operand and <store_mask_constraint> instead of m for
the input operand.  For V8FI iterator, always split if input is a MEM.
For V16FI and V8SF_256 iterators, don't test if both operands are MEM
if <mask_applied>.  For VI4F_256 iterator, use <store_mask_predicate>
instead of register_operand and <store_mask_constraint> instead of v for
        the input operand.  Make sure both operands aren't MEMs for if not
<mask_applied>.

* gcc.target/i386/pr81225.c: New test.

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

8 years ago * cp-tree.h (lookup_fnfields_1, class_method_index_for_fn): Don't
nathan [Fri, 30 Jun 2017 14:50:48 +0000 (14:50 +0000)] 
* cp-tree.h (lookup_fnfields_1, class_method_index_for_fn): Don't
declare.
(lookup_all_conversions): Declare.
* class.c (get_basefndecls): Use lookup_fnfields_slot.
* decl.c (register_dtor_fn): Use lookup_fnfields_slot.
* decl2.c (check_class_fn): Use lookup_fnfields_slot.  Rework
diagnostics.
* pt.c (retrieve_specialization): Use lookup_fnfields_slot.
(check_explicit_specialization): Use lookup_fnfields_slot_nolazy,
lookup_all_conversions.
* search.c (lookup_fnfields_1): Make static.
(lookup_all_conversions): New.
(class_method_index_for_fn): Delete.
* semantics.c (classtype_has_nothrow_assign_or_copy_p): Use
lookup_fnfields_slot.

* g++.dg/concepts/memfun-err.C: Adjust diagnostics.
* g++.dg/cpp0x/decltype9.C: Likewise.
* g++.dg/cpp0x/forw_enum9.C: Likewise.
* g++.dg/lookup/decl1.C: Likewise.
* g++.dg/lookup/extern-c-redecl.C: Likewise.
* g++.dg/other/pr28432.C: Likewise.
* g++.dg/parse/crash12.C: Likewise.
* g++.dg/parse/enum3.C: Likewise.
* g++.dg/parse/operator6.C: Likewise.
* g++.dg/template/crash69.C: Likewise.
* g++.dg/template/error27.C: Likewise.
* g++.dg/template/error28.C: Likewise.
* g++.dg/template/memfriend6.C: Likewise.
* g++.old-deja/g++.mike/err1.C: Likewise.
* g++.old-deja/g++.mike/p811.C: Likewise.
* g++.old-deja/g++.other/crash25.C: Likewise.
* g++.old-deja/g++.other/dtor4.C: Likewise.
* g++.old-deja/g++.pt/t37.C: Likewise.

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

8 years ago * lto-wrapper.c (copy_file) Close both file descriptors before
sylvestre [Fri, 30 Jun 2017 14:17:54 +0000 (14:17 +0000)] 
* lto-wrapper.c (copy_file) Close both file descriptors before
exiting normally.

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

8 years agoFix removal of ifunc (PR ipa/81214).
marxin [Fri, 30 Jun 2017 13:51:19 +0000 (13:51 +0000)] 
Fix removal of ifunc (PR ipa/81214).

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

PR ipa/81214
* gcc.target/i386/pr81214.c: New test.
2017-06-30  Martin Liska  <mliska@suse.cz>

PR ipa/81214
* multiple_target.c (create_dispatcher_calls): Make ifunc
also for function that don't have calls or are not referenced.

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

8 years ago2017-06-30 Richard Biener <rguenther@suse.de>
rguenth [Fri, 30 Jun 2017 13:19:29 +0000 (13:19 +0000)] 
2017-06-30  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_slp_analyze_node_operations): Only
analyze the first scalar stmt.  Move vector type computation
for the BB case here from ...
* tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
live operation processing in the SLP case properly.

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

8 years ago * call.c (build_new_method_call_1): Use constructo_name to get
nathan [Fri, 30 Jun 2017 13:11:01 +0000 (13:11 +0000)] 
* call.c (build_new_method_call_1): Use constructo_name to get
ctor name.  Move argument processing earlier to merge cdtor
handling blocks.
* decl.c (grokfndecl): Cdtors have special names.
* method.c (implicitly_declare_fn): Likewise. Simplify flag setting.
* pt.c (check_explicit_specialization): Cdtor name is already
special.
* search.c (class_method_index_for_fn): Likewise.

* g++.dg/plugin/decl-plugin-test.C: Expect special ctor name.

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

8 years ago PR c++/81229
nathan [Fri, 30 Jun 2017 11:40:08 +0000 (11:40 +0000)] 
PR c++/81229
* name-lookup.c (do_pushdecl): Reset IDENTIFIER_TYPE when finding
a matching TYPE_DECL.

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

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

8 years ago2017-06-30 Richard Biener <rguenther@suse.de>
rguenth [Fri, 30 Jun 2017 09:49:44 +0000 (09:49 +0000)] 
2017-06-30  Richard Biener  <rguenther@suse.de>

* graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.

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

8 years agoCall BUILT_IN_ASAN_HANDLE_NO_RETURN before BUILT_IN_UNWIND_RESUME (PR sanitizer/81021).
marxin [Fri, 30 Jun 2017 08:51:00 +0000 (08:51 +0000)] 
Call BUILT_IN_ASAN_HANDLE_NO_RETURN before BUILT_IN_UNWIND_RESUME (PR sanitizer/81021).

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

PR sanitizer/81021
* g++.dg/asan/pr81021.C: New test.
2017-06-30  Martin Liska  <mliska@suse.cz>

PR sanitizer/81021
* tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
before BUILT_IN_UNWIND_RESUME when ASAN is used.

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

8 years agoDocumentation: Clean up AArch64 options.
yroux [Fri, 30 Jun 2017 08:36:57 +0000 (08:36 +0000)] 
Documentation: Clean up AArch64 options.

gcc/
2017-06-30  Yvan Roux  <yvan.roux@linaro.org>

* doc/invoke.texi (AArch64): Add missing options and remove redundant
ones.

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

8 years ago2017-06-30 Richard Biener <rguenther@suse.de>
rguenth [Fri, 30 Jun 2017 08:08:33 +0000 (08:08 +0000)] 
2017-06-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81249
* tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
condition reduction result to original scalar type.

* g++.dg/torture/pr81249.C: New testcase.

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

8 years agoprofile-count.h: Fix typos and whitespace issues.
krebbel [Fri, 30 Jun 2017 06:46:42 +0000 (06:46 +0000)] 
profile-count.h: Fix typos and whitespace issues.

gcc/ChangeLog:

2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* profile-count.h (enum profile_quality): Fix typos and whitespace
issues.

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

8 years agoS/390: Adjust to the recent branch probability changes.
krebbel [Fri, 30 Jun 2017 06:45:51 +0000 (06:45 +0000)] 
S/390: Adjust to the recent branch probability changes.

This fixes the bootstrap failure triggered by the recent changes wrt
branch probabilities aka emit_cmp_and_jump_insns does not accept
integers as branch probability anymore.

gcc/ChangeLog:

2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_expand_setmem): Adjust to the new data
type for branch probabilities.

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

8 years ago2017-06-29 Julian Brown <julian@codesourcery.com>
naveenh [Fri, 30 Jun 2017 03:58:48 +0000 (03:58 +0000)] 
2017-06-29  Julian Brown  <julian@codesourcery.com>
    Naveen H.S  <Naveen.Hurugalawadi@cavium.com>

* config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
* config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
(thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
(aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.

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

8 years ago2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
naveenh [Fri, 30 Jun 2017 03:50:44 +0000 (03:50 +0000)] 
2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>

* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
check for CC usage into AARCH64_FUSE_CMP_BRANCH.
* config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
CC usage from generic code to here.
* sched-deps.c (sched_macro_fuse_insns): Move the condition for
CC usage into the target macros.

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

8 years agoDaily bump.
gccadmin [Fri, 30 Jun 2017 00:16:27 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago2017-06-29 Maya Rashish <coypu@sdf.org>
law [Thu, 29 Jun 2017 23:23:06 +0000 (23:23 +0000)] 
2017-06-29  Maya Rashish  <coypu@sdf.org>

* config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
objects.

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

8 years ago * arm/arm-builtins.c: Include profile-count.h
hubicka [Thu, 29 Jun 2017 22:38:30 +0000 (22:38 +0000)] 
* arm/arm-builtins.c: Include profile-count.h
* except.c (sjlj_emit_function_enter): Use
profile_probability::unlikely.

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

8 years ago/cp
paolo [Thu, 29 Jun 2017 22:32:33 +0000 (22:32 +0000)] 
/cp
2017-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

* class.c (add_method): Change pair of errors to error + inform.
(handle_using_decl): Likewise.

/testsuite
2017-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/inh-ctor3.C: Adjust for dg-message vs dg-error.
* g++.dg/diagnostic/variadic1.C: Likewise.
* g++.dg/gomp/udr-3.C: Likewise.
* g++.dg/overload/error1.C: Likewise.
* g++.dg/overload/error2.C: Likewise.
* g++.dg/template/duplicate1.C: Likewise.
* g++.old-deja/g++.benjamin/warn02.C: Likewise.
* g++.old-deja/g++.brendan/arm2.C: Likewise.
* g++.old-deja/g++.other/redecl2.C: Likewise.
* g++.old-deja/g++.other/redecl4.C: Likewise.
* g++.old-deja/g++.pt/memtemp78.C: Likewise.

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

8 years ago * constexpr.c, error.c, tree.c: Remove WITH_CLEANUP_EXPR handling.
jason [Thu, 29 Jun 2017 21:44:11 +0000 (21:44 +0000)] 
* constexpr.c, error.c, tree.c: Remove WITH_CLEANUP_EXPR handling.

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

8 years ago PR c++/81180 - ICE with C++17 deduction of member class template.
jason [Thu, 29 Jun 2017 21:13:43 +0000 (21:13 +0000)] 
PR c++/81180 - ICE with C++17 deduction of member class template.

* pt.c (build_deduction_guide): Correct member template handling.

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

8 years ago2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
acsawdey [Thu, 29 Jun 2017 20:10:05 +0000 (20:10 +0000)] 
2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

        * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
        and tocrel_offset be pointer args rather than implicitly using
        static versions.
        (legitimate_constant_pool_address_p, rs6000_emit_move,
        const_load_sequence_p, adjust_vperm): Add local tocrel_base and
        tocrel_offset and use in toc_relative_expr_p call.
        (print_operand, print_operand_address): Use static tocrel_base_oac
        and tocrel_offset_oac.
        (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
        tocrel_offset_oac.

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

8 years ago PR c++/81188 - matching decltype of member function call.
jason [Thu, 29 Jun 2017 19:44:12 +0000 (19:44 +0000)] 
PR c++/81188 - matching decltype of member function call.

* tree.c (cp_tree_equal): Remove COMPONENT_REF special case.

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

8 years ago2017-06-29 Maya Rashish <coypu@sdf.org>
law [Thu, 29 Jun 2017 19:43:15 +0000 (19:43 +0000)] 
2017-06-29  Maya Rashish  <coypu@sdf.org>

* config/vax/builtins.md (ffssi2_internal): Correct constraint.

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

8 years ago * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
ebotcazou [Thu, 29 Jun 2017 19:21:25 +0000 (19:21 +0000)] 
* expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
objects, take into account only the alignment of 'op0' and 'mode1' if
'op0' is a MEM.

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

8 years ago PR fortran/77765
cesar [Thu, 29 Jun 2017 19:03:43 +0000 (19:03 +0000)] 
PR fortran/77765

gcc/fortran/
* openmp.c (gfc_match_oacc_routine): Check if proc_name exist before
comparing the routine name against it.

gcc/testsuite/
* gfortran.dg/goacc/pr77765.f90: New test.

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

8 years ago2017-06-29 Steve Ellcey <sellcey@cavium.com>
sje [Thu, 29 Jun 2017 18:23:40 +0000 (18:23 +0000)] 
2017-06-29  Steve Ellcey  <sellcey@cavium.com>

* gcc.target/aarch64/ccmp_2.c: New test.

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

8 years ago2017-06-29 Steve Ellcey <sellcey@cavium.com>
sje [Thu, 29 Jun 2017 18:20:14 +0000 (18:20 +0000)] 
2017-06-29  Steve Ellcey  <sellcey@cavium.com>

* ccmp.c (ccmp_tree_comparison_p): New function.
(ccmp_candidate_p): Update to use above function.
(get_compare_parts): New function.
(expand_ccmp_next): Update to use new functions.
(expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
new functions.
(expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
take mode as argument.
* ccmp.h (expand_ccmp_expr): Add mode as argument.
* expr.c (expand_expr_real_1): Pass mode as argument.

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

8 years ago PR c++/81247
nathan [Thu, 29 Jun 2017 18:20:13 +0000 (18:20 +0000)] 
PR c++/81247
* parser.c (cp_parser_namespace_definition): Immediately close the
namespace if there's no open-brace.
* name-lookup.c (do_pushdecl): Reset OLD when pushing into new
namespace.

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

8 years ago * bid/bid2dpd_dpd2bid.c (_bid_to_dpd32): Fix whitespace.
law [Thu, 29 Jun 2017 17:35:03 +0000 (17:35 +0000)] 
* bid/bid2dpd_dpd2bid.c (_bid_to_dpd32): Fix whitespace.
(_dpd_to_bid32): Simplify identical code on multiple branches.
Fix whitespace.
(_bid_to_dpd64, _dpd_to_bid64): Likewise.
(_bid_to_dpd128, _dpd_to_bid128): Likewise.

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

8 years agocombine: Print insns with the cost dump
segher [Thu, 29 Jun 2017 17:28:47 +0000 (17:28 +0000)] 
combine: Print insns with the cost dump

In the combine dump file, at the start there is a list of the RTL cost
of every insn.  The only thing listed about the insns is the UID though.
To make it more useful, this patch prints the insn itself as well (in
slim format).

* combine.c (combine_instructions): Print insns to dump_file, together
with their costs.

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

8 years ago * asan.c (asan_emit_stack_protection): Update.
hubicka [Thu, 29 Jun 2017 16:40:53 +0000 (16:40 +0000)] 
* asan.c (asan_emit_stack_protection): Update.
(create_cond_insert_point): Update.
* auto-profile.c (afdo_propagate_circuit): Update.
* basic-block.h (struct edge_def): Turn probability to
profile_probability.
(EDGE_FREQUENCY): Update.
* bb-reorder.c (find_traces_1_round): Update.
(better_edge_p): Update.
(sanitize_hot_paths): Update.
* cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
(make_single_succ_edge): Update.
(check_bb_profile): Update.
(dump_edge_info): Update.
(update_bb_profile_for_threading): Update.
* cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
probabilitycount to 0.
* cfgbuild.c (compute_outgoing_frequencies): Update.
* cfgcleanup.c (try_forward_edges): Update.
(outgoing_edges_match): Update.
(try_crossjump_to_edge): Update.
* cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
(expand_gimple_tailcall): Update.
(construct_init_block): Use make_single_succ_edge.
(construct_exit_block): Use make_single_succ_edge.
* cfghooks.c (verify_flow_info): Update.
(redirect_edge_succ_nodup): Update.
(split_edge): Update.
(account_profile_record): Update.
* cfgloopanal.c (single_likely_exit): Update.
* cfgloopmanip.c (scale_loop_profile): Update.
(set_zero_probability): Remove.
(duplicate_loop_to_header_edge): Update.
* cfgloopmanip.h (loop_version): Update prototype.
* cfgrtl.c (try_redirect_by_replacing_jump): Update.
(force_nonfallthru_and_redirect): Update.
(update_br_prob_note): Update.
(rtl_verify_edges): Update.
(purge_dead_edges): Update.
(rtl_lv_add_condition_to_bb): Update.
* cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
* cgraphunit.c (init_lowered_empty_function): Update.
(cgraph_node::expand_thunk): Update.
* cilk-common.c: Include profile-count.h
* dojump.c (inv): Remove.
(jumpifnot): Update.
(jumpifnot_1): Update.
(do_jump_1): Update.
(do_jump): Update.
(do_jump_by_parts_greater_rtx): Update.
(do_compare_rtx_and_jump): Update.
* dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
do_jump_1. do_compare_rtx_and_jump): Update prototype.
* dwarf2cfi.c: Include profile-count.h
* except.c (dw2_build_landing_pads): Use make_single_succ_edge.
(sjlj_emit_dispatch_table): Likewise.
* explow.c: Include profile-count.h
* expmed.c (emit_store_flag_force): Update.
(do_cmp_and_jump): Update.
* expr.c (compare_by_pieces_d::generate): Update.
(compare_by_pieces_d::finish_mode): Update.
(emit_block_move_via_loop): Update.
(store_expr_with_bounds): Update.
(store_constructor): Update.
(expand_expr_real_2): Update.
(expand_expr_real_1): Update.
* expr.h (try_casesi, try_tablejump): Update prototypes.
* gimple-pretty-print.c (dump_probability): Update.
(dump_profile): New.
(dump_gimple_label): Update.
(dump_gimple_bb_header): Update.
* graph.c (draw_cfg_node_succ_edges): Update.
* hsa-gen.c (convert_switch_statements): Update.
* ifcvt.c (cheap_bb_rtx_cost_p): Update.
(find_if_case_1): Update.
(find_if_case_2): Update.
* internal-fn.c (expand_arith_overflow_result_store): Update.
(expand_addsub_overflow): Update.
(expand_neg_overflow): Update.
(expand_mul_overflow): Update.
(expand_vector_ubsan_overflow): Update.
* ipa-cp.c (good_cloning_opportunity_p): Update.
* ipa-split.c (split_function): Use make_single_succ_edge.
* ipa-utils.c (ipa_merge_profiles): Update.
* loop-doloop.c (add_test): Update.
(doloop_modify): Update.
* loop-unroll.c (compare_and_jump_seq): Update.
(unroll_loop_runtime_iterations): Update.
* lra-constraints.c (lra_inheritance): Update.
* lto-streamer-in.c (input_cfg): Update.
* lto-streamer-out.c (output_cfg): Update.
* mcf.c (adjust_cfg_counts): Update.
* modulo-sched.c (sms_schedule): Update.
* omp-expand.c (expand_omp_for_init_counts): Update.
(extract_omp_for_update_vars): Update.
(expand_omp_ordered_sink): Update.
(expand_omp_for_ordered_loops): Update.
(expand_omp_for_generic): Update.
(expand_omp_for_static_nochunk): Update.
(expand_omp_for_static_chunk): Update.
(expand_cilk_for): Update.
(expand_omp_simd): Update.
(expand_omp_taskloop_for_outer): Update.
(expand_omp_taskloop_for_inner): Update.
* omp-simd-clone.c (simd_clone_adjust): Update.
* optabs.c (expand_doubleword_shift): Update.
(expand_abs): Update.
(emit_cmp_and_jump_insn_1): Update.
(expand_compare_and_swap_loop): Update.
* optabs.h (emit_cmp_and_jump_insns): Update prototype.
* predict.c (predictable_edge_p): Update.
(edge_probability_reliable_p): Update.
(set_even_probabilities): Update.
(combine_predictions_for_insn): Update.
(combine_predictions_for_bb): Update.
(propagate_freq): Update.
(estimate_bb_frequencies): Update.
(force_edge_cold): Update.
* profile-count.c (profile_count::dump): Add missing space into dump.
(profile_count::debug): Add newline.
(profile_count::differs_from_p): Explicitly convert to unsigned.
(profile_count::stream_in): Update.
(profile_probability::dump): New member function.
(profile_probability::debug): New member function.
(profile_probability::differs_from_p): New member function.
(profile_probability::differs_lot_from_p): New member function.
(profile_probability::stream_in): New member function.
(profile_probability::stream_out): New member function.
* profile-count.h (profile_count_quality): Rename to ...
(profile_quality): ... this one.
(profile_probability): New.
(profile_count): Update.
* profile.c (compute_branch_probabilities): Update.
* recog.c (peep2_attempt): Update.
* sched-ebb.c (schedule_ebbs): Update.
* sched-rgn.c (find_single_block_region): Update.
(compute_dom_prob_ps): Update.
(schedule_region): Update.
* sel-sched-ir.c (compute_succs_info): Update.
* stmt.c (struct case_node): Update.
(do_jump_if_equal): Update.
(get_outgoing_edge_probs): Update.
(conditional_probability): Update.
(emit_case_dispatch_table): Update.
(expand_case): Update.
(expand_sjlj_dispatch_table): Update.
(emit_case_nodes): Update.
* targhooks.c: Update.
* tracer.c (better_p): Update.
(find_best_successor): Update.
* trans-mem.c (expand_transaction): Update.
* tree-call-cdce.c: Update.
* tree-cfg.c (gimple_split_edge): Upate.
(move_sese_region_to_fn): Upate.
* tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
* tree-eh.c (lower_resx): Upate.
(cleanup_empty_eh_move_lp): Upate.
* tree-if-conv.c (version_loop_for_if_conversion): Update.
* tree-inline.c (copy_edges_for_bb): Update.
(copy_cfg_body): Update.
* tree-parloops.c (gen_parallel_loop): Update.
* tree-profile.c (gimple_gen_ic_func_profiler): Update.
(gimple_gen_time_profiler): Update.
* tree-ssa-dce.c (remove_dead_stmt): Update.
* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
* tree-ssa-loop-im.c (execute_sm_if_changed): Update.
* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
(unloop_loops): Update.
(try_peel_loop): Update.
* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
* tree-ssa-loop-split.c (connect_loops): Update.
(split_loop): Update.
* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
(hoist_guard): Update.
* tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
(value_replacement): Update.
* tree-ssa-reassoc.c (branch_fixup): Update.
* tree-ssa-tail-merge.c (replace_block_by): Update.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
(create_edge_and_update_destination_phis): Update.
(compute_path_counts): Update.
(recompute_probabilities): Update.
(update_joiner_offpath_counts): Update.
(freqs_to_counts_path): Update.
(duplicate_thread_path): Update.
* tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
(struct switch_conv_info): Update.
(gen_inbound_check): Update.
* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
(vect_do_peeling): Update.
(vect_loop_versioning): Update.
* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
(optimize_mask_stores): Update.
* ubsan.c (ubsan_expand_null_ifn): Update.
* value-prof.c (gimple_divmod_fixed_value): Update.
(gimple_divmod_fixed_value_transform): Update.
(gimple_mod_pow2): Update.
(gimple_mod_pow2_value_transform): Update.
(gimple_mod_subtract): Update.
(gimple_mod_subtract_transform): Update.
(gimple_ic): Update.
(gimple_stringop_fixed_value): Update.
(gimple_stringops_transform): Update.
* value-prof.h: Update.

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

8 years ago * Makefile.am (MOSTLYCLEANFILES): Remove testing files and logs.
ian [Thu, 29 Jun 2017 16:01:38 +0000 (16:01 +0000)] 
* Makefile.am (MOSTLYCLEANFILES): Remove testing files and logs.
(mostlyclean-local): Remove check-runtime-dir, cgo-test-dir,
carchive-test-dir.
(ECHO_ENV): Define.
(check-go-tool): Depend on cgo.  Write command to testlog.
(check-runtime): New target.
(check-cgo-test): New target.
(check-carchive-test): New target.
(check): Depend on check-runtime, check-cgo-test,
check-carchive-test.  Add @ to prettify output.
(.PHONY): Add check-runtime, check-cgo-test, check-carchive-test.
* Makefile.in: Rebuild.

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

8 years agogcc/ChangeLog:
carll [Thu, 29 Jun 2017 15:39:57 +0000 (15:39 +0000)] 
gcc/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000-c.c: Add support for built-in functions
vector signed int vec_signed (vector float);
vector signed long long vec_signed (vector double);
vector signed int vec_signed2 (vector double, vector double);
vector signed int vec_signede (vector double);
vector signed int vec_signedo (vector double);
* config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
instruction generator.
* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
UNSPEC_VSX_VSIGNED2): Add UNSPECS.
(vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
Add define_insn.
(vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
vunsignede_v2df): Add define_expands.
* config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
VEC_UNSIGNEDO): Add definitions.
* config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
UNSPEC_VSX_VSIGNED2): Add UNSPECs.
(vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
(vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
* config/rs6000/altivec.h (vec_signed, vec_signed2,
vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
vec_unsignede, vec_unsignedo): Add builtin defines.
* config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
declaration.
* doc/extend.texi: Update the built-in documentation file for the
new built-in functions.

gcc/testsuite/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-3-runnable.c (test_int_result,
test_unsigned_int_result, test_ll_int_result,
test_ll_unsigned_int_result): Add result checking functions, add
debug support.
(main): Add builtin function tests.

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

8 years ago PR c++/81164 - ICE with invalid inherited constructor.
jason [Thu, 29 Jun 2017 15:30:11 +0000 (15:30 +0000)] 
PR c++/81164 - ICE with invalid inherited constructor.

* search.c (binfo_direct_p): New.
* name-lookup.c (do_class_using_decl): Use it.

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

8 years ago misc/cgo/testcarchive: fix test to work for gccgo
ian [Thu, 29 Jun 2017 15:17:20 +0000 (15:17 +0000)] 
misc/cgo/testcarchive: fix test to work for gccgo

    This test is not yet run, but it will be soon.

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

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

8 years ago cmd/go: fix -buildmode={c-archive,c-shared,pie} for gccgo
ian [Thu, 29 Jun 2017 15:14:05 +0000 (15:14 +0000)] 
cmd/go: fix -buildmode={c-archive,c-shared,pie} for gccgo

    The tests are misc/cgo tests that are not currently run but will be
    run soon.

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

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

8 years agogcc/testsuite/ChangeLog:
carll [Thu, 29 Jun 2017 15:11:25 +0000 (15:11 +0000)] 
gcc/testsuite/ChangeLog:

2017-06-29  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-3-vec_reve-runnable.c (dg-options,
dg-skip-if): Add -mvsx -mcpu=power7.

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

8 years ago * cp-tree.h (THIS_NAME, IN_CHARGE_NAME, VTBL_PTR_TYPE,
nathan [Thu, 29 Jun 2017 14:49:46 +0000 (14:49 +0000)] 
* cp-tree.h (THIS_NAME, IN_CHARGE_NAME, VTBL_PTR_TYPE,
VTABLE_DELTA_NAME, VTABLE_PFN_NAME): Delete.
* decl.c (initialize_predefined_identifiers): Name cdtor special
names consistently.  Use literals for above deleted defines.
(cxx_init_decl_processing): Use literal for vtbl_ptr_type name,

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

8 years ago * lex.c (maybe_add_lang_type_raw): Exit early, rather than use a
nathan [Thu, 29 Jun 2017 14:45:44 +0000 (14:45 +0000)] 
* lex.c (maybe_add_lang_type_raw): Exit early, rather than use a
flag.

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

8 years ago * call.c (check_dtor_name): Use constructor_name for enums too.
nathan [Thu, 29 Jun 2017 14:38:09 +0000 (14:38 +0000)] 
* call.c (check_dtor_name): Use constructor_name for enums too.
(build_new_method_call_1): Use constructor_name for cdtors and
show ~ for dtor.
* class.c (build_self_reference): Use TYPE_NAME to get name of
self reference.
* name-lookup (constructor_name): Use DECL_NAME directly.
(constructor_name_p): Reimplement.
(push_class_level_binding_1): Use TYPE_NAME directly.

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

8 years ago * class.c (finish_struct): Use OVL_P.
nathan [Thu, 29 Jun 2017 14:28:24 +0000 (14:28 +0000)] 
* class.c (finish_struct): Use OVL_P.
(get_vfield_name): Measure constructor_name length.
* cp-tree.h (SET_CLASS_TYPE_P): Add RECORD_OR_UNION_CHECK.
(NON_UNION_CLASS_TYPE_P): Check RECORD_TYPE up front.
* cxx-pretty-print.c (is_destructor_name): Delete.
(pp_cxx_unqualified_id): Remove bogus destructor name checking.
* decl.c (grokfndecl): Move cheap checks first when looking for
implicit extern cness.

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

8 years ago * parser.c (cp_parser_direct_declarator): Reorder if to avoid
nathan [Thu, 29 Jun 2017 14:16:58 +0000 (14:16 +0000)] 
* parser.c (cp_parser_direct_declarator): Reorder if to avoid
indentation. Remove unnecessary assignment of constructor name.

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

8 years ago Whitespace cleanups.
nathan [Thu, 29 Jun 2017 14:13:11 +0000 (14:13 +0000)] 
Whitespace cleanups.
* call.c (name_as_c_string): Move CONST_CAST to return.
(build_new_method_call_1): Remove unneeded bracing.
* class.c (include_empty_classes): Unbreak line.
* constraint.cc (tsubst_check_constraint): Add space.
* cp-tree.h (lang_decl_ns): Add comment.
(PTRMEM_CST_MEMBER): Break line.
* decl.c (grokfndecl): Add blank lines. Unbreak some others.
(grokdeclarator): Remove lines, move declaration to first use.
* decl2.c (decl_needed_p): Fix indentation.
(c_parse_final_cleanups): Remove blank line.
* method.c (implicitly_declare_fn): Move declaration to first use.
* search.c (current_scope): Add blank lines.

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

8 years ago2017-06-29 Richard Biener <rguenther@suse.de>
rguenth [Thu, 29 Jun 2017 14:04:02 +0000 (14:04 +0000)] 
2017-06-29  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
reduction chains to LOOP_VINFO_REDUCTIONS.
* tree-vect-slp.c (vect_analyze_slp): Continue looking for
SLP reductions after processing reduction chains.

* gcc.dg/vect/slp-reduc-8.c: New testcase.

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

8 years ago gcc/
nathan [Thu, 29 Jun 2017 14:00:44 +0000 (14:00 +0000)] 
gcc/
* builtins.c (fold_builtin_FUNCTION): Use
lang_hooks.decl_printable_name.

gcc/cp/
* g++.dg/cpp1y/builtin_FUNCTION.C: New.

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

8 years agogcc/
bergner [Thu, 29 Jun 2017 12:58:32 +0000 (12:58 +0000)] 
gcc/
PR middle-end/81194
* cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
with only one label.
* stmt.c (expand_case): Assert NCASES is greater than one.

gcc/testsuite/
PR middle-end/81194
* g++.dg/pr81194.C: New test.

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

8 years agoAdd a testcase for PR ipa/80565
hjl [Thu, 29 Jun 2017 12:53:47 +0000 (12:53 +0000)] 
Add a testcase for PR ipa/80565

The testcase in

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80565

is passing now.  Check in the testcase and resolve it as fixed.

PR ipa/80565
* gcc.dg/torture/pr80565.c: New file.

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

8 years ago2017-06-29 Richard Biener <rguenther@suse.de>
rguenth [Thu, 29 Jun 2017 11:25:29 +0000 (11:25 +0000)] 
2017-06-29  Richard Biener  <rguenther@suse.de>

* tree-cfg.c (group_case_labels_stmt): Return whether we changed
anything.
(group_case_labels): Likewise.
(find_taken_edge): Push sanity checking on val to workers...
(find_taken_edge_cond_expr): ... here
(find_taken_edge_switch_expr): ... and here, handle cases
with just a default label.
* tree-cfg.h (group_case_labels_stmt): Adjust prototype.
(group_case_labels): Likewise.
* tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
group_case_labels does anything cleanup the CFG again.

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

8 years ago PR tree-optimization/81196
amker [Thu, 29 Jun 2017 10:41:28 +0000 (10:41 +0000)] 
PR tree-optimization/81196
* tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
exit condition comparing two IVs.

gcc/testsuite
* gcc.dg/vect/pr81196.c: New.

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

8 years ago[arm] Fix bootstrap - missing initializer in tail entry of autogenerated code
rearnsha [Thu, 29 Jun 2017 10:24:04 +0000 (10:24 +0000)] 
[arm] Fix bootstrap - missing initializer in tail entry of autogenerated code

My patch yesterday accidentally missed a hunk that added the
update to the tail entry of the autogenerated data structure
produced by parsecpu.awk.  This causes native bootstraps to
fail.

This patch adds back the missing hunk.

2017-06-29  Richard Earnshaw  <rearnsha@arm.com>

* config/arm/parsecpu.awk (gen_comm_data): Add initializer for
profile to the dummy entry at the end of the list of architectures.
* config/arm/arm-cpu-cdata.h: Regenerated.

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

8 years ago2017-06-29 Michael Collison <michael.collison@arm.com>
collison [Thu, 29 Jun 2017 09:24:45 +0000 (09:24 +0000)] 
2017-06-29  Michael Collison  <michael.collison@arm.com>

Fix date on prevfious ChangeLog entry.

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

8 years ago2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
collison [Thu, 29 Jun 2017 09:21:57 +0000 (09:21 +0000)] 
2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Michael Collison <michael.collison@arm.com>

PR target/70119
* config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
New pattern.
(*aarch64_reg_<mode>3_neg_mask2): New pattern.
(*aarch64_reg_<mode>3_minus_mask): New pattern.
(*aarch64_<optab>_reg_di3_mask2): New pattern.
* config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
of shift when the shift amount is masked with constant equal to
the size of the mode.
* config/aarch64/predicates.md (subreg_lowpart_operator): New
predicate.

2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Michael Collison <michael.collison@arm.com>

PR target/70119
* gcc.target/aarch64/var_shift_mask_1.c: New test.

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

8 years agoFix -mbranch-cost range.
marxin [Thu, 29 Jun 2017 09:01:27 +0000 (09:01 +0000)] 
Fix -mbranch-cost range.

2017-06-29  Martin Liska  <mliska@suse.cz>

* config/i386/i386.opt: Change range from [1,5] to [0,5].

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

8 years ago2017-06-29 Yury Gribov <tetra2005@gmail.com>
chefmax [Thu, 29 Jun 2017 08:50:21 +0000 (08:50 +0000)] 
2017-06-29  Yury Gribov  <tetra2005@gmail.com>

PR bootstrap/80565
        * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
code.
        * ipa-inline.h
(edge_growth_cache_entry::edge_growth_cache_entry): New
function.
        (reset_edge_growth_cache): Update to use constructor.

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

8 years agoDaily bump.
gccadmin [Thu, 29 Jun 2017 00:16:28 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago[AArch64] Do not increase data alignment at -Os and with -fconserve-stack.
ramana [Wed, 28 Jun 2017 22:09:50 +0000 (22:09 +0000)] 
[AArch64] Do not increase data alignment at -Os and with -fconserve-stack.

We unnecessarily align data to 8 byte alignments even when -Os is
specified. This brings the logic in the AArch64 backend more in line
with the ARM backend and helps gain some image size in a few
places. Caught by an internal report on the size of rodata sections
being high with aarch64 gcc.

* config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
  (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
  (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.

Bootstrapped and regression tested on aarch64-none-linux-gnu with no
regressions.

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

8 years ago PR c++/72764 - ICE with invalid template typename.
jason [Wed, 28 Jun 2017 21:06:35 +0000 (21:06 +0000)] 
PR c++/72764 - ICE with invalid template typename.

* decl.c (build_typename_type): No longer static.
* tree.c (strip_typedefs): Use it instead of make_typename_type.

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

8 years ago * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
uros [Wed, 28 Jun 2017 20:59:51 +0000 (20:59 +0000)] 
* config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
(_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.

testsuite/ChangeLog:

* gcc.target/i386/avx512vl-vpermd-1.c (_mm256_permutexvar_epi32):
Test new intrinsic.
* gcc.target/i386/avx512vl-vpermq-imm-1.c (_mm256_permutex_epi64):
Ditto.
* gcc.target/i386/avx512vl-vpermq-var-1.c (_mm256_permutexvar_epi64):
Ditto.
* gcc.target/i386/avx512f-vpermd-2.c: Do not check for AVX512F_LEN.
* gcc.target/i386/avx512f-vpermq-imm-2.c: Ditto.
* gcc.target/i386/avx512f-vpermq-var-2.c: Ditto.

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

8 years ago PR c++/69300 - ICE with self-referential noexcept
jason [Wed, 28 Jun 2017 20:02:12 +0000 (20:02 +0000)] 
PR c++/69300 - ICE with self-referential noexcept

* pt.c (maybe_instantiate_noexcept): Check for recursion.

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

8 years ago PR c++/61022 - error with variadic template template parm
jason [Wed, 28 Jun 2017 19:59:44 +0000 (19:59 +0000)] 
PR c++/61022 - error with variadic template template parm

* pt.c (convert_template_argument): Keep the TYPE_PACK_EXPANSION.

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

8 years ago PR c++/72801 - ICE with variadic partial specialization
jason [Wed, 28 Jun 2017 19:59:37 +0000 (19:59 +0000)] 
PR c++/72801 - ICE with variadic partial specialization

* pt.c (unify_pack_expansion): Use PACK_EXPANSION_EXTRA_ARGS.

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

8 years ago PR c++/55639 - partial specialization with ::template
jason [Wed, 28 Jun 2017 19:41:49 +0000 (19:41 +0000)] 
PR c++/55639 - partial specialization with ::template

* parser.c (cp_parser_class_head): Handle ::template.

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

8 years ago PR c++/45976 - error with ::template in declarator.
jason [Wed, 28 Jun 2017 19:41:43 +0000 (19:41 +0000)] 
PR c++/45976 - error with ::template in declarator.

* pt.c (resolve_typename_type): Fix TEMPLATE_ID_EXPR handling.

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

8 years ago PR c++/54769 - wrong lookup of dependent template-name.
jason [Wed, 28 Jun 2017 19:41:36 +0000 (19:41 +0000)] 
PR c++/54769 - wrong lookup of dependent template-name.

* parser.c (cp_parser_template_name): Handle dependent object type.
(cp_parser_nested_name_specifier_opt): Make template_keyword_p a
parameter.
(cp_parser_id_expression): Pass it.
(cp_parser_diagnose_invalid_type_name): Handle TEMPLATE_ID_EXPR.

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

8 years ago Make the TEMPLATE_ID_EXPR location a range.
jason [Wed, 28 Jun 2017 19:41:24 +0000 (19:41 +0000)] 
Make the TEMPLATE_ID_EXPR location a range.

* parser.c (cp_parser_template_id): Use the range location on the
TEMPLATE_ID_EXPR.

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

8 years ago PR c++/81204 - parse error with dependent template-name
jason [Wed, 28 Jun 2017 19:41:18 +0000 (19:41 +0000)] 
PR c++/81204 - parse error with dependent template-name

* parser.c (cp_parser_lookup_name): Disqualify function templates
after lookup.

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

8 years agomultiarch support for non-glibc linux systems
nsz [Wed, 28 Jun 2017 16:02:42 +0000 (16:02 +0000)] 
multiarch support for non-glibc linux systems

Current multiarch directory name is always *-linux-gnu* on linux,
this patch configures different names for uclibc and musl targets.

2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>

* config.gcc (*-linux-musl*): Add t-musl tmake_file.
(*-linux-uclibc*): Add t-uclibc tmake_file.
* config/t-musl: New.
* config/t-uclibc: New.

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

8 years ago[ARM] Consistently check for neon in vect effective targets
thopre01 [Wed, 28 Jun 2017 15:09:08 +0000 (15:09 +0000)] 
[ARM] Consistently check for neon in vect effective targets

Conditions checked for ARM targets in vector-related effective targets
are inconsistent:

* sometimes arm*-*-* is checked
* sometimes Neon is checked
* sometimes arm_neon_ok and sometimes arm_neon is used for neon check
* sometimes check_effective_target_* is used, sometimes
* is-effective-target

This patch consolidate all of these check into using is-effective-target
arm_neon and when little endian was checked, the check is kept.

2017-06-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_vect_int): Replace
    current ARM check by ARM NEON's availability check.
    (check_effective_target_vect_intfloat_cvt): Likewise.
    (check_effective_target_vect_uintfloat_cvt): Likewise.
    (check_effective_target_vect_floatint_cvt): Likewise.
    (check_effective_target_vect_floatuint_cvt): Likewise.
    (check_effective_target_vect_shift): Likewise.
    (check_effective_target_whole_vector_shift): Likewise.
    (check_effective_target_vect_bswap): Likewise.
    (check_effective_target_vect_shift_char): Likewise.
    (check_effective_target_vect_long): Likewise.
    (check_effective_target_vect_float): Likewise.
    (check_effective_target_vect_perm): Likewise.
    (check_effective_target_vect_perm_byte): Likewise.
    (check_effective_target_vect_perm_short): Likewise.
    (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise.
    (check_effective_target_vect_widen_sum_qi_to_hi): Likewise.
    (check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
    (check_effective_target_vect_widen_mult_hi_to_si): Likewise.
    (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
    (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
    (check_effective_target_vect_widen_shift): Likewise.
    (check_effective_target_vect_extract_even_odd): Likewise.
    (check_effective_target_vect_interleave): Likewise.
    (check_effective_target_vect_multiple_sizes): Likewise.
    (check_effective_target_vect64): Likewise.
    (check_effective_target_vect_max_reduc): Likewise.

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

8 years ago[arm] Fix incorrect __ARM_ARCH_PROFILE for -march=armv7
rearnsha [Wed, 28 Jun 2017 15:02:38 +0000 (15:02 +0000)] 
[arm] Fix incorrect __ARM_ARCH_PROFILE for -march=armv7

ACLE explicitly states that when targetting the common subset of
ARMv7-A, ARMv7-R and ARMv7-M, the __ARM_ARCH_PROFILE macro should not
be set.  We currently set it to 'M' which is clearly erroneous.

The logic for creating this is very convoluted and also somewhat
fragile, so I've taken the opportunity to use the new CPU and
architecture definition infrastructure to record the profile for each
architecture explicitly rather than try to reconstruct it from other
data.  I think this results in a much more robust solution.

2017-06-28  Richard Earnshaw  <rearnsha@arm.com>

* config/arm/parsecpu.awk (profile): Parse new keyword in an arch
context.
(gen_comm_data): Emit architectural setting of arch_prof.
* config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
profile.
(armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
(armv8-m.base, armv8-m.main): Likewise.
* arm-protos.h (arm_build_target): Add profile field.
(arch_option): Likewise.
* config/arm/arm.c (arm_configure_build_target): Copy the profile to
the active target.
* config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
arm_active_target.profile.

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

8 years ago2017-06-28 Richard Biener <rguenther@suse.de>
rguenth [Wed, 28 Jun 2017 14:24:00 +0000 (14:24 +0000)] 
2017-06-28  Richard Biener  <rguenther@suse.de>

PR middle-end/81227
* fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
TYPE_OVERFLOW_WRAPS.
* match.pd (negate_expr_p): Likewise.
* tree-ssa-reassoc.c (optimize_range_tests_diff): Use
fold_build2, not fold_binary.

* gcc.dg/pr81227.c: New testcase.

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

8 years agoThis patch fixes a failure in gcc.target/aarch64/reload-valid-spoff.c
wilco [Wed, 28 Jun 2017 14:21:04 +0000 (14:21 +0000)] 
This patch fixes a failure in gcc.target/aarch64/reload-valid-spoff.c
triggered by https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01367.html.

In ILP32 all memory accesses must have Pmode as the base address, but
aarch64_expand_mov_immediate wasn't emitting a conversion in one case.
Besides fixing this add an assert that flags any MEM operands that are
not Pmode.

    gcc/
* config/aarch64/aarch64 (aarch64_expand_mov_immediate):
Convert memory address to Pmode.
(aarch64_print_operand): Assert MEM operands are always Pmode.

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

8 years agoImprove Cortex-A53 shift bypass
wilco [Wed, 28 Jun 2017 14:13:02 +0000 (14:13 +0000)] 
Improve Cortex-A53 shift bypass

The aarch_forward_to_shift_is_not_shifted_reg bypass always returns true
on AArch64 shifted instructions.  This causes the bypass to activate in
too many cases, resulting in slower execution on Cortex-A53 like reported
in PR79665.

This patch uses the arm_no_early_alu_shift_dep condition instead which
improves the example in PR79665 by ~7%.  Given it is no longer used,
remove aarch_forward_to_shift_is_not_shifted_reg.  Also remove an
unnecessary REG_P check.

    gcc/
PR target/79665
* config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
Remove redundant if.
(aarch_forward_to_shift_is_not_shifted_reg): Remove.
* config/arm/aarch-common-protos.h
(aarch_forward_to_shift_is_not_shifted_re): Remove.
* config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.

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

8 years ago[gcc]
meissner [Wed, 28 Jun 2017 13:07:12 +0000 (13:07 +0000)] 
[gcc]
2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR ipa/81238
* multiple_target.c (create_dispatcher_calls): Set the default
clone to be static, not public.

[gcc/testsuite]
2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/81193
* lib/target-supports.exp
(check_ppc_cpu_supports_hw_available): New test to make sure
__builtin_cpu_supports works on power7 and newer.

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

8 years ago2017-06-28 Richard Biener <rguenther@suse.de>
rguenth [Wed, 28 Jun 2017 13:02:01 +0000 (13:02 +0000)] 
2017-06-28  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vectorizable_reduction): Move special
cond reduction IV var creation ...
(vect_create_epilog_for_reduction): ... here.  Remove induction_index
parameter.  Use STMT_VINFO_VECTYPE.
* tree-vect-slp.c (vect_get_constant_vectors): Properly reset
constant_p.

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

8 years agoDo not allow to inline ifunc resolvers (PR ipa/81128).
marxin [Wed, 28 Jun 2017 12:47:24 +0000 (12:47 +0000)] 
Do not allow to inline ifunc resolvers (PR ipa/81128).

2017-06-28  Martin Liska  <mliska@suse.cz>

PR ipa/81128
* ipa-visibility.c (non_local_p): Handle visibility.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR ipa/81128
* c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias
to a function declaration.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR ipa/81128
* gcc.target/i386/pr81128.c: New test.

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

8 years agoIntroduce IntegerRange for options (PR driver/79659).
marxin [Wed, 28 Jun 2017 12:45:59 +0000 (12:45 +0000)] 
Introduce IntegerRange for options (PR driver/79659).

2017-06-28  Martin Liska  <mliska@suse.cz>

PR driver/79659
* common.opt: Add IntegerRange to various options.
* opt-functions.awk (integer_range_info): New function.
* optc-gen.awk: Add integer_range_info to cl_options struct.
* opts-common.c (decode_cmdline_option): Handle
CL_ERR_INT_RANGE_ARG.
(cmdline_handle_error): Likewise.
* opts.c (print_filtered_help): Show valid interval in
when --help is provided.
* opts.h (struct cl_option): Add range_min and range_max fields.
* config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR driver/79659
* c.opt: Add IntegerRange to various options.
2017-06-28  Martin Liska  <mliska@suse.cz>

PR driver/79659
* g++.dg/opt/pr79659.C: New test.

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

8 years agocopy-sign-1.c, mult-abs-2.c: Restrict to c99_runtime.
clyon [Wed, 28 Jun 2017 12:18:31 +0000 (12:18 +0000)] 
copy-sign-1.c, mult-abs-2.c: Restrict to c99_runtime.

2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.dg/tree-ssa/copy-sign-1.c: Add c99_runtime effective target
and options.
* gcc.dg/tree-ssa/mult-abs-2.c: Likewise.

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

8 years agoSimplify 3*x == 3*y for wrapping types
glisse [Wed, 28 Jun 2017 09:22:30 +0000 (09:22 +0000)] 
Simplify 3*x == 3*y for wrapping types

2017-06-28  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
(x * C EQ/NE y * C): New transformation.

gcc/testsuite/
* gcc.dg/tree-ssa/addadd.c: Remove test duplicated in addadd-2.c.
* gcc.dg/tree-ssa/mulcmp-1.c: New file.

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

8 years agoUse ucontext_t not struct ucontext in linux-unwind.h files.
jsm28 [Wed, 28 Jun 2017 09:21:16 +0000 (09:21 +0000)] 
Use ucontext_t not struct ucontext in linux-unwind.h files.

Current glibc no longer gives the ucontext_t type the tag struct
ucontext, to conform with POSIX namespace rules.  This requires
various linux-unwind.h files in libgcc, that were previously using
struct ucontext, to be fixed to use ucontext_t instead.  This is
similar to the removal of the struct siginfo tag from siginfo_t some
years ago.

This patch changes those files to use ucontext_t instead.  As the
standard name that should be unconditionally safe, so this is not
restricted to architectures supported by glibc, or conditioned on the
glibc version.

Tested compilation together with current glibc with glibc's
build-many-glibcs.py.

* config/aarch64/linux-unwind.h (aarch64_fallback_frame_state),
config/alpha/linux-unwind.h (alpha_fallback_frame_state),
config/bfin/linux-unwind.h (bfin_fallback_frame_state),
config/i386/linux-unwind.h (x86_64_fallback_frame_state,
x86_fallback_frame_state), config/m68k/linux-unwind.h (struct
uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext),
config/pa/linux-unwind.h (pa32_fallback_frame_state),
config/riscv/linux-unwind.h (riscv_fallback_frame_state),
config/sh/linux-unwind.h (sh_fallback_frame_state),
config/tilepro/linux-unwind.h (tile_fallback_frame_state),
config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use
ucontext_t instead of struct ucontext.

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

8 years ago2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Wed, 28 Jun 2017 09:15:59 +0000 (09:15 +0000)] 
2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* genmultilib (combination_space): Accept '+' in option names.

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

8 years ago * gcc.target/i386/cmov7.c (sgn): Renamed to ...
jakub [Wed, 28 Jun 2017 08:05:20 +0000 (08:05 +0000)] 
* gcc.target/i386/cmov7.c (sgn): Renamed to ...
(foo): ... this.  Change constants such that it isn't matched
as __builtin_copysign, yet tests the combiner the same.

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