platform/upstream/gcc.git
8 years agoPR c/68868 - atomic_init emits an unnecessary fence
Martin Sebor [Thu, 17 Dec 2015 01:33:41 +0000 (01:33 +0000)]
PR c/68868 - atomic_init emits an unnecessary fence

gcc/ChangeLog
* ginclude/stdatomic.h (atomic_init): Use atomic_store instead
of plain assignment.
gcc/testsuite/ChangeLog
* testsuite/gcc.dg/atomic/stdatomic-init.c: New test.

From-SVN: r231733

8 years agore PR target/68805 (ICE while var-tracking in simplify_binary_operation_1 with -g...
Michael Meissner [Thu, 17 Dec 2015 01:01:24 +0000 (01:01 +0000)]
re PR target/68805 (ICE while var-tracking in simplify_binary_operation_1 with -g and -mvsx-timode)

[gcc]
2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/68805
* config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use ROTATE
instead of VEC_SELECT for TImode.

* config/rs6000/vsx.md (VSX_LE): Move TImode from VSX_LE to
VSX_LE_128, so that we use ROTATE to swap the 64-bit words instead
of using VEC_SELECT.
(VSX_LE_128): Likewise.
(define_peephole2): Add peephole to eliminate double xxpermdi when
copying TImode.

[gcc/testsuite]
2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/68805
* gcc.target/powerpc/pr68805.c: New test.

From-SVN: r231732

8 years agoDaily bump.
GCC Administrator [Thu, 17 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231731

8 years agore PR target/68779 (HPPA/PARISC 32-bit Linux kernel build triggers multiple ICEs)
John David Anglin [Thu, 17 Dec 2015 00:11:55 +0000 (00:11 +0000)]
re PR target/68779 (HPPA/PARISC 32-bit Linux kernel build triggers multiple ICEs)

PR target/68779
* config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs.
(atomic_loaddi_1): Likewise.
(atomic_storedi): Likewise.
(atomic_storedi_1): Likewise.
(atomic_loaddf): Likewise.
(atomic_loaddf_1): Likewise.
(atomic_storedf): Likewise.
(atomic_storedf_1): Likewise.
Move all atomic patterns to end of file.

From-SVN: r231727

8 years agoPR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime
Martin Sebor [Wed, 16 Dec 2015 23:56:27 +0000 (23:56 +0000)]
PR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime

PR objc++/68932  - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime
                   (internal compiler error)

cp/
* decl.c (grokdeclarator): Avoid assuming ctype is non-null when
checking the validity of a flexible array member.

testsuite/
* obj-c++.dg/property/at-property-23.mm: Remove check for
an error message.

From-SVN: r231726

8 years agoattach schedule tree to the scop
Abderrazek Zaafrani [Wed, 16 Dec 2015 23:40:06 +0000 (23:40 +0000)]
attach schedule tree to the scop

we used to translate the just computed schedule tree into a union_map,
and then in the code generation it would be translated back to a schedule tree
just before generating AST code.

From-SVN: r231725

8 years agopt.c (comp_template_args): Remove.
Paolo Carlini [Wed, 16 Dec 2015 21:45:14 +0000 (21:45 +0000)]
pt.c (comp_template_args): Remove.

2015-12-16  Paolo Carlini  <paolo.carlini@oracle.com>

* pt.c (comp_template_args): Remove.
(comp_template_args_with_info): Rename to comp_template_args;
not static.
(add_pending_template): Adjust call.
* cp-tree.h (comp_template_args): Add default arguments.

From-SVN: r231723

8 years agoipa-visibility.c (can_replace_by_local_alias): Make static, check ASM_OUTPUT_DEF.
Nathan Sidwell [Wed, 16 Dec 2015 21:05:39 +0000 (21:05 +0000)]
ipa-visibility.c (can_replace_by_local_alias): Make static, check ASM_OUTPUT_DEF.

* ipa-visibility.c (can_replace_by_local_alias): Make static,
check ASM_OUTPUT_DEF.
(can_replace_by_local_alias_in_vtable): Make static.
(function_and_variable_visibility): Reformat overlong comment.

From-SVN: r231721

8 years agoree.c (add_removable_extension): Use reg_overlap_mentioned_p rather than testing...
Jeff Law [Wed, 16 Dec 2015 20:34:31 +0000 (13:34 -0700)]
ree.c (add_removable_extension): Use reg_overlap_mentioned_p rather than testing hard register #s.

* ree.c (add_removable_extension): Use reg_overlap_mentioned_p
rather than testing hard register #s.

From-SVN: r231719

8 years agonvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
Nathan Sidwell [Wed, 16 Dec 2015 20:02:02 +0000 (20:02 +0000)]
nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.

* config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
(REGISTER_NAMES): Adjust.
* config/nvptx/nvptx.c (nvptx_pass_by_reference): Avoid long line.
(nvptx_static_hain): Delete.
(write_arg_mode): Don't emit initializer if argno < 0.
(write_arg_type): Fix whitespace.
(init_frame): Initialize reg to zero if frame is zero-sized.
(nvptx_declare_function_name):  Use write_arg_type to emit chain
decl.
(nvptx_output_call_insn): Adjust static chain emission.
(nvptx_goacc_reduction): Make static.
(TARGET_STATIC_CHAIN): Don't override.

From-SVN: r231718

8 years ago* gcc.dg/tree-ssa/pr68619-4.c: Change size of code bitfield.
Jeff Law [Wed, 16 Dec 2015 18:53:25 +0000 (11:53 -0700)]
* gcc.dg/tree-ssa/pr68619-4.c: Change size of code bitfield.

From-SVN: r231717

8 years agore PR c++/68309 (ICE: Segmentation fault)
Jason Merrill [Wed, 16 Dec 2015 18:22:23 +0000 (13:22 -0500)]
re PR c++/68309 (ICE: Segmentation fault)

PR c++/68309
* pt.c (instantiate_decl): Revert earlier change.

From-SVN: r231714

8 years agore PR c++/63628 ([c++1y] cannot use decltype on captured arg-pack)
Jason Merrill [Wed, 16 Dec 2015 18:22:17 +0000 (13:22 -0500)]
re PR c++/63628 ([c++1y] cannot use decltype on captured arg-pack)

PR c++/63628
* pt.c (tsubst_pack_expansion): Also make dummy decls if
retrieve_local_specialization fails.

From-SVN: r231713

8 years agoBetter error recovery for merge-conflict markers
David Malcolm [Wed, 16 Dec 2015 18:15:01 +0000 (18:15 +0000)]
Better error recovery for merge-conflict markers

gcc/c-family/ChangeLog:
* c-common.h (conflict_marker_get_final_tok_kind): New prototype.
* c-lex.c (conflict_marker_get_final_tok_kind): New function.

gcc/c/ChangeLog:
* c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
to 4.
(c_parser_peek_nth_token): New function.
(c_parser_peek_conflict_marker): New function.
(c_parser_error): Detect conflict markers and report them as such.

gcc/cp/ChangeLog:
* parser.c (cp_lexer_peek_conflict_marker): New function.
(cp_parser_error): Detect conflict markers and report them as
such.

gcc/testsuite/ChangeLog:
* c-c++-common/conflict-markers-1.c: New testcase.
* c-c++-common/conflict-markers-2.c: Likewise.
* c-c++-common/conflict-markers-3.c: Likewise.
* c-c++-common/conflict-markers-4.c: Likewise.
* c-c++-common/conflict-markers-5.c: Likewise.
* c-c++-common/conflict-markers-6.c: Likewise.
* c-c++-common/conflict-markers-7.c: Likewise.
* c-c++-common/conflict-markers-8.c: Likewise.
* c-c++-common/conflict-markers-9.c: Likewise.
* c-c++-common/conflict-markers-10.c: Likewise.
* c-c++-common/conflict-markers-11.c: Likewise.
* g++.dg/conflict-markers-1.C: Likewise.

From-SVN: r231712

8 years agoAdd missing changelog entry
Aditya Kumar [Wed, 16 Dec 2015 17:35:48 +0000 (17:35 +0000)]
Add missing changelog entry

From-SVN: r231710

8 years agoC FE: fix range of primary-expression in c_parser_postfix_expression
David Malcolm [Wed, 16 Dec 2015 17:34:27 +0000 (17:34 +0000)]
C FE: fix range of primary-expression in c_parser_postfix_expression

gcc/c/ChangeLog:
* c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
to preserve range information for the primary expression
in the call to c_parser_postfix_expression_after_primary.

gcc/testsuite/ChangeLog:
* gcc.dg/cast-function-1.c (bar): Update column numbers.
* gcc.dg/diagnostic-range-bad-called-object.c: New test case.

From-SVN: r231709

8 years agoRemove individial dependence pointers and add a scop::dependence to contain all the...
Aditya Kumar [Wed, 16 Dec 2015 17:33:07 +0000 (17:33 +0000)]
Remove individial dependence pointers and add a scop::dependence to contain all the dependence.

Removed the member variables which are only used in scop_get_dependence. Instead
only maintaining the overall dependence. Passes regtest and bootstrap.

gcc/ChangeLog:

2015-12-15  hiraditya  <hiraditya@msn.com>

        * graphite-dependences.c (scop_get_dependences): Use local pointers.
        * graphite-isl-ast-to-gimple.c(translate_isl_ast_to_gimple::scop_to_isl_ast):
          Use scop->dependence.
        * graphite-optimize-isl.c (optimize_isl): Same.
        * graphite-poly.c (new_scop): Remove initialization of removed members.
        (free_scop): Same.
        * graphite.h (struct scop): Remove individial dependence pointers and
        add a scop::dependence to contain all the dependence.

From-SVN: r231708

8 years agoUse refs instead of values.
Aditya Kumar [Wed, 16 Dec 2015 17:33:00 +0000 (17:33 +0000)]
Use refs instead of values.

Passes bootstrap and regtest.

gcc/ChangeLog:

2015-12-15  hiraditya  <hiraditya@msn.com>

        * graphite-sese-to-poly.c (build_poly_sr): Use refs.

From-SVN: r231707

8 years agoupdate required isl version
Aditya Kumar [Wed, 16 Dec 2015 17:27:57 +0000 (17:27 +0000)]
update required isl version

we check for a the isl compute timeout function added in isl 0.13.
That means GCC could still be configured with isl 0.13, 0.14, and 0.15.

* config/isl.m4 (ISL_CHECK_VERSION): Check for
isl_ctx_get_max_operations.
* configure: Regenerate.

gcc/
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Remove checks for functions that exist in isl 0.13 or
later.
* graphite-isl-ast-to-gimple.c: Remove #ifdefs and code for isl 0.12.
        * graphite-optimize-isl.c: Same.
* graphite-poly.c: Same.
* graphite-sese-to-poly.c: Same.
* graphite.h: Add comment for isl 0.14.
* toplev.c (print_version): Print isl version.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r231706

8 years agoipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not speculate to impossi...
Jan Hubicka [Wed, 16 Dec 2015 17:26:20 +0000 (18:26 +0100)]
ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not speculate to impossible targets.

* ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not
speculate to impossible targets.
* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.

From-SVN: r231705

8 years agoC FE: use correct location range for static assertions
David Malcolm [Wed, 16 Dec 2015 17:25:45 +0000 (17:25 +0000)]
C FE: use correct location range for static assertions

gcc/c/ChangeLog:
* c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
expression location, falling back on the first token location,
rather than always using the latter.

gcc/testsuite/ChangeLog:
* gcc.dg/diagnostic-range-static-assert.c: New test case.

From-SVN: r231704

8 years agoadd more dumps on data dependence graph
Aditya Kumar [Wed, 16 Dec 2015 17:24:25 +0000 (17:24 +0000)]
add more dumps on data dependence graph

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r231703

8 years agore PR c/64637 (Incorrect location for -Wunused-value warnings in for-loop)
Marek Polacek [Wed, 16 Dec 2015 16:50:07 +0000 (16:50 +0000)]
re PR c/64637 (Incorrect location for -Wunused-value warnings in for-loop)

PR c/64637
* c-typeck.c (c_process_expr_stmt): Use location of the expression if
available.

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

From-SVN: r231700

8 years ago* gcc.dg/sibcall-9.c: Xfail for nvptx.
Nathan Sidwell [Wed, 16 Dec 2015 16:47:05 +0000 (16:47 +0000)]
* gcc.dg/sibcall-9.c: Xfail for nvptx.

From-SVN: r231699

8 years ago[AArch64] Properly cost zero_extend+ashift forms of ubfi[xz]
Kyrylo Tkachov [Wed, 16 Dec 2015 15:49:42 +0000 (15:49 +0000)]
[AArch64] Properly cost zero_extend+ashift forms of ubfi[xz]

* config/aarch64/aarch64.c (aarch64_extend_bitfield_pattern_p):
New function.
(aarch64_rtx_costs, ZERO_EXTEND, SIGN_EXTEND cases): Use the above
to handle extend+shift rtxes.

From-SVN: r231698

8 years agounwind-generic.h (_Unwind_GetTextRelBase): Call __builtin_abort instead of abort...
Bernd Edlinger [Wed, 16 Dec 2015 15:24:52 +0000 (15:24 +0000)]
unwind-generic.h (_Unwind_GetTextRelBase): Call __builtin_abort instead of abort to avoid dependency on stdlib.h.

2015-12-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * unwind-generic.h (_Unwind_GetTextRelBase): Call __builtin_abort
        instead of abort to avoid dependency on stdlib.h.

From-SVN: r231697

8 years ago[AArch64] PR target/68696 FAIL: gcc.target/aarch64/vbslq_u64_1.c scan-assembler-times...
Kyrylo Tkachov [Wed, 16 Dec 2015 15:03:44 +0000 (15:03 +0000)]
[AArch64] PR target/68696 FAIL: gcc.target/aarch64/vbslq_u64_1.c scan-assembler-times bif\tv 1

        PR target/68696
        * config/aarch64/aarch64-simd.md (*aarch64_simd_bsl<mode>_alt):
        New pattern.
        (aarch64_simd_bsl<mode>_internal): Update comment to reflect
        the above.

From-SVN: r231696

8 years agore PR middle-end/68870 (ICE on valid code at -O1, -O2 and -O3 on x86_64-linux-gnu)
Richard Biener [Wed, 16 Dec 2015 14:56:10 +0000 (14:56 +0000)]
re PR middle-end/68870 (ICE on valid code at -O1, -O2 and -O3 on x86_64-linux-gnu)

2015-12-16  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68870
* tree-cfgcleanup.c (cleanup_control_expr_graph): Add first_p
parameter, if set only perform trivial constant folding.
Queue other blocks with conditions for later processing.
(cleanup_control_flow_bb): Add first_p parameter and pass it through.
(cleanup_tree_cfg_1): Pass true for the first iteration
cleanup_control_expr_graph.

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

From-SVN: r231695

8 years agonvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.
Nathan Sidwell [Wed, 16 Dec 2015 13:51:36 +0000 (13:51 +0000)]
nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.

* config/nvptx/nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.
* config/nvptx/nvptx.h (struct machine_function):
Reimplement. Adjust all users.
* config/nvptx/nvptx.c (nvptx_declare_function_name): Move stack
and frame array generation earlier.
(nvptx_call_args): Reimplement.
(nvptx_expand_call): Adjust.
(nvptx_hard_reno_mode_ok): Delete.
(nvptx_reorg): Revert scan of hard regs.

From-SVN: r231691

8 years agoAdd pass_oacc_ipa
Tom de Vries [Wed, 16 Dec 2015 13:49:07 +0000 (13:49 +0000)]
Add pass_oacc_ipa

2015-12-16  Tom de Vries  <tom@codesourcery.com>

* opts.c (default_options_optimization): Set fipa-pta on by default for
fopenacc.
* passes.def: Move kernels pass group to pass_ipa_oacc.
* tree-pass.h (make_pass_oacc_kernels2): Remove.
(make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): Declare.
* tree-ssa-loop.c (pass_oacc_kernels2, make_pass_oacc_kernels2): Remove.
(pass_ipa_oacc, pass_ipa_oacc_kernels): New pass.
(make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): New function.
* tree-ssa-structalias.c (pass_ipa_pta::clone): New function.

* g++.dg/ipa/devirt-37.C: Update for new fre2 pass.
* g++.dg/ipa/devirt-40.C: Same.
* g++.dg/tree-ssa/pr61034.C: Same.
* gcc.dg/ipa/ipa-pta-1.c: Update for new pta1 pass.
* gcc.dg/ipa/ipa-pta-10.c: Same.
* gcc.dg/ipa/ipa-pta-11.c: Same.
* gcc.dg/ipa/ipa-pta-14.c: Same.
* gcc.dg/ipa/ipa-pta-16.c: Same.
* gcc.dg/ipa/ipa-pta-2.c: Same.
* gcc.dg/ipa/ipa-pta-5.c: Same.
* gcc.dg/ipa/ipa-pta-6.c: Same.
* gcc.dg/torture/ipa-pta-1.c: Same.
* gcc.dg/ipa/ipa-pta-13.c: Update for new fre2 and pta1 pass.
* gcc.dg/ipa/ipa-pta-3.c: Same.
* gcc.dg/ipa/ipa-pta-4.c: Same.

From-SVN: r231690

8 years agore PR tree-optimization/68861 (FAIL: libgomp.fortran/vla8.f90 -O3 -g execution...
Richard Biener [Wed, 16 Dec 2015 13:45:40 +0000 (13:45 +0000)]
re PR tree-optimization/68861 (FAIL: libgomp.fortran/vla8.f90   -O3 -g  execution test)

2015-12-16  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68861
* tree-vect-slp.c (vect_build_slp_tree): Properly handle
duplicate stmts when applying swapping to stmts.

From-SVN: r231689

8 years agoi386-c.c (ix86_target_macros_internal): Remove duplicate check (__CLZERO__).
Kirill Yukhin [Wed, 16 Dec 2015 13:43:56 +0000 (13:43 +0000)]
i386-c.c (ix86_target_macros_internal): Remove duplicate check (__CLZERO__).

gcc/
* config/i386/i386-c.c (ix86_target_macros_internal): Remove
duplicate check (__CLZERO__).

From-SVN: r231688

8 years agore PR tree-optimization/68915 (gcc.dg/vect/pr46032.c FAILs)
Richard Biener [Wed, 16 Dec 2015 12:37:02 +0000 (12:37 +0000)]
re PR tree-optimization/68915 (gcc.dg/vect/pr46032.c FAILs)

2015-12-16  Richard Biener  <rguenther@suse.de>

PR testsuite/68915
* gcc.dg/vect/pr46032.c: Use dg-additional-options.

From-SVN: r231687

8 years ago[ARM] Add ACLE intrinsics vqrdmlah_lane and vqrdmlsh_lane
Matthew Wahab [Wed, 16 Dec 2015 12:21:47 +0000 (12:21 +0000)]
[ARM] Add ACLE intrinsics vqrdmlah_lane and vqrdmlsh_lane

* config/arm/arm_neon.h (vqrdmlahq_lane_s16): New.
(vqrdmlahq_lane_s32): New.
(vqrdmlah_lane_s16): New.
(vqrdmlah_lane_s32): New.
(vqrdmlshq_lane_s16): New.
(vqrdmlshq_lane_s32): New.
(vqrdmlsh_lane_s16): New.
(vqrdmlsh_lane_s32): New.
* config/arm/arm_neon_builtins.def: Add "vqrdmlah_lane" and
"vqrdmlsh_lane".

From-SVN: r231686

8 years ago[ARM] Add ACLE intrinsics vqrdmlah and vqrdmlsh
Matthew Wahab [Wed, 16 Dec 2015 12:16:13 +0000 (12:16 +0000)]
[ARM] Add ACLE intrinsics vqrdmlah and vqrdmlsh

* config/arm/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
(vqrdmlahq_s16, vqrdmlahq_s32): New.
(vqrdmlsh_s16, vqrdmlsh_s32): New.
(vqrdmlahq_s16, vqrdmlshq_s32): New.
* config/arm/arm_neon_builtins.def: Add "vqrdmlah" and "vqrdmlsh".

From-SVN: r231685

8 years agore PR tree-optimization/68916 (gcc.dg/vect/slp-perm-4.c FAILs)
Richard Biener [Wed, 16 Dec 2015 12:13:05 +0000 (12:13 +0000)]
re PR tree-optimization/68916 (gcc.dg/vect/slp-perm-4.c FAILs)

2015-12-16  Richard Biener  <rguenther@suse.de>

PR testsuite/68916
PR testsuite/68914
* gcc.dg/vect/pr45752.c: Require vect_perm and adjust expected
dump.
* gcc.dg/vect/slp-perm-4.c: Likewise.

From-SVN: r231684

8 years ago[Testsuite] Support ARMv8.1 ARM tests.
Matthew Wahab [Wed, 16 Dec 2015 12:10:59 +0000 (12:10 +0000)]
[Testsuite] Support ARMv8.1 ARM tests.

testsuite/
* lib/target-supports.exp (add_options_for_arm_v8_1a_neon): Update
comment.  Use check_effective_target_arm_v8_1a_neon_ok to select
the command line options.
(check_effective_target_arm_v8_1a_neon_ok_nocache): Update initial
test to allow ARM targets.  Select and record a working set of
command line options.
(check_effective_target_arm_v8_1a_neon_hw): Add tests for ARM
targets.

gcc/
* doc/sourcebuild.texi (ARM-specific attributes): Add
"arm_v8_1a_neon_ok" and "arm_v8_1a_neon_hw".

From-SVN: r231683

8 years ago[ARM] Add ACLE feature macro for ARMv8.1 instructions.
Matthew Wahab [Wed, 16 Dec 2015 12:02:15 +0000 (12:02 +0000)]
[ARM] Add ACLE feature macro for ARMv8.1 instructions.

* config/arm/arm-c.c (arm_cpu_builtins): Define
__ARM_FEATURE_QRDMX.  Clean up some trailing whitespace.

From-SVN: r231682

8 years ago[ARM] Add patterns for new instructions
Matthew Wahab [Wed, 16 Dec 2015 11:56:21 +0000 (11:56 +0000)]
[ARM] Add patterns for new instructions

* config/arm/iterators.md (VQRDMLH_AS): New.
(neon_rdma_as): New.
* config/arm/neon.md
(neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h<mode>): New.
(neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h_lane<mode>): New.
* config/arm/unspecs.md (UNSPEC_VQRDMLAH): New.
(UNSPEC_VQRDMLSH): New.

From-SVN: r231681

8 years ago[ARM] Multilib support for ARMv8.1.
Matthew Wahab [Wed, 16 Dec 2015 11:50:43 +0000 (11:50 +0000)]
[ARM] Multilib support for ARMv8.1.

* config/arm/t-aprofile: Make "armv8.1-a" and "armv8.1-a+crc"
matches for "armv8-a".

From-SVN: r231680

8 years ago[ARM] Add support for ARMv8.1.
Matthew Wahab [Wed, 16 Dec 2015 11:45:25 +0000 (11:45 +0000)]
[ARM] Add support for ARMv8.1.

* config/arm/arm-arches.def: Add "armv8.1-a" and "armv8.1-a+crc".
* config/arm/arm-protos.h (FL2_ARCH8_1): New.
(FL2_FOR_ARCH8_1A): New.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm.c (arm_arch8_1): New.
(arm_option_override): Set arm_arch8_1.
* config/arm/arm.h (TARGET_NEON_RDMA): New.
(arm_arch8_1): Declare.
* doc/invoke.texi (ARM Options, -march): Add "armv8.1-a" and
"armv8.1-a+crc".
(ARM Options, -mfpu): Fix a typo.

From-SVN: r231678

8 years agolibstdc++/68921 add timeout argument to futex(2)
Jonathan Wakely [Wed, 16 Dec 2015 10:40:04 +0000 (10:40 +0000)]
libstdc++/68921 add timeout argument to futex(2)

PR libstdc++/68921
* src/c++11/futex.cc
(__atomic_futex_unsigned_base::_M_futex_wait_until): Use null pointer
as timeout argument.

From-SVN: r231676

8 years ago[ARM] PR target/68648: Fold NOT of CONST_INT in andsi_iorsi3_notsi splitter
Kyrylo Tkachov [Wed, 16 Dec 2015 10:01:48 +0000 (10:01 +0000)]
[ARM] PR target/68648: Fold NOT of CONST_INT in andsi_iorsi3_notsi splitter

PR target/68648
* config/arm/arm.md (*andsi_iorsi3_notsi): Try to simplify
the complement of operands[3] during splitting.

* gcc.c-torture/execute/pr68648.c: New test.

From-SVN: r231675

8 years agore PR tree-optimization/68892 (Excessive dead loads produced by BB vectorization)
Richard Biener [Wed, 16 Dec 2015 09:21:04 +0000 (09:21 +0000)]
re PR tree-optimization/68892 (Excessive dead loads produced by BB vectorization)

2015-12-16  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68892
* tree-vect-slp.c (vect_analyze_slp_cost_1): Properly compute
cost for permuted loads.

* gcc.dg/vect/bb-slp-pr68892.c: New testcase.

From-SVN: r231674

8 years agore PR rtl-optimization/65980 (-fcompare-debug failure building Linux kernel)
Jakub Jelinek [Wed, 16 Dec 2015 08:04:31 +0000 (09:04 +0100)]
re PR rtl-optimization/65980 (-fcompare-debug failure building Linux kernel)

PR rtl-optimization/65980
* jump.c (rtx_renumbered_equal_p) <case LABEL_REF>: Use
next_nonnote_nondebug_insn instead of next_real_insn and
skip over CODE_LABELs too.

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

From-SVN: r231672

8 years agore PR middle-end/68878 (471.omnetpp in SPEC CPU 2006 is miscompiled with LTO)
Jan Hubicka [Wed, 16 Dec 2015 04:58:13 +0000 (05:58 +0100)]
re PR middle-end/68878 (471.omnetpp in SPEC CPU 2006 is miscompiled with LTO)

PR lto/68878
* lto-symtab.c (lto_symtab_prevailing_virtual_decl): New function.
* lto-symtab.h (lto_symtab_prevailing_virtual_decl): Declare.
(lto_symtab_prevailing_decl): Use it.

From-SVN: r231671

8 years agosymtab.c (symtab_node::fixup_same_cpp_alias_visibility): Do not copy DECL_VIRTUAL_P.
Jan Hubicka [Wed, 16 Dec 2015 04:56:34 +0000 (05:56 +0100)]
symtab.c (symtab_node::fixup_same_cpp_alias_visibility): Do not copy DECL_VIRTUAL_P.

* symtab.c (symtab_node::fixup_same_cpp_alias_visibility):
Do not copy DECL_VIRTUAL_P.

From-SVN: r231670

8 years agoDaily bump.
GCC Administrator [Wed, 16 Dec 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231668

8 years agostruct-layout-1_generate.c: Avoid generating further fields after the first flexible...
Martin Sebor [Tue, 15 Dec 2015 21:04:08 +0000 (21:04 +0000)]
struct-layout-1_generate.c: Avoid generating further fields after the first flexible array member.

gcc/testsuite/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

c++/42121
c++/68478
c++/68613
c++/68689
c++/68710
* g++.dg/compat/struct-layout-1_generate.c: Avoid generating
further fields after the first flexible array member.
* g++.dg/ext/flexary2.C: Expect a sole flexible array member
to be rejected.  Add a test case exercising zero-length array.
* g++.dg/ext/flexary3.C: Expect a sole flexible array member
to be rejected.
* g++.dg/ext/flexary.h: New file.
* g++.dg/ext/flexary4.C: New file.
* g++.dg/ext/flexary5.C: New file.
* g++.dg/ext/flexary6.C: New file.
* g++.dg/ext/flexary7.C: New file.
* g++.dg/ext/flexary8.C: New file.
* g++.dg/other/dump-ada-spec-2.C: Adjust to reflect flexible
array members.
* g++.dg/parse/pr43765.C: Add a member to make a struct with
a flexible array member valid.  Adjust expected error message.
* g++.dg/torture/pr64280.C: Expect a sole flexible array member
to be rejected.
* g++.dg/torture/pr64312.C: Add a member to make a struct with
a flexible array member valid.
* g++.dg/ubsan/object-size-1.C: Adjust expected diagnostic.

gcc/cp/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

c++/42121
c++/68478
c++/68613
c++/68689
c++/68710
* class.c (walk_subobject_offsets): Avoid assuming type domain
is non-null or has an upper bound.
(layout_class_type): Include type size in error message.
(flexmems_t): New type.
(field_nonempty_p, find_flexarrays, diagnose_flexarrays)
(check_flexarrays): New functions.
(finish_struct_1): Call check_flexarrays.
* decl.c (compute_array_index_type): Distinguish flexible array
members from zero-length arrays.
(grokdeclarator): Reject flexible array members in unions.  Avoid
rejecting members of incomplete types that are flexible array members.
* error.c (dump_type_suffix): Handle flexible array members with null
upper bound.
* init.c (perform_member_init): Same.
* pt.c (instantiate_class_template_1): Allow flexible array members.
(tsubst): Handle flexible array members with null upper bound.
* typeck2.c (digest_init_r): Warn for initialization of flexible
array members.
(process_init_constructor_record): Handle flexible array members.

gcc/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

c++/42121
* tree-chkp.c (chkp_find_bound_slots_1): Handle flexible array
members.
* tree.c (type_contains_placeholder_1): Avoid assuming type has
a non-null domain or an upper bound to handle flexible array
members.
* varasm.c (output_constructor_regular_field):  Same.
(output_constructor): Set min_index to integer_zero_node rather
than null when a type has no domain to avoid crashing later.

From-SVN: r231665

8 years agonvptx.c (write_one_arg): Rename to ...
Nathan Sidwell [Tue, 15 Dec 2015 20:46:37 +0000 (20:46 +0000)]
nvptx.c (write_one_arg): Rename to ...

* config/nvptx/nvptx.c (write_one_arg): Rename to ...
(write_arg_mode): ... here.  Update callers.
(write_arg): Rename to ...
(write__arg_type): ... here.  Update callers.
(write_return_mode): New fn, broken out of ...
(write_return): ... here.  Rename to ...
(write_return_type): ... here.  Call it. Update callers.
(write_fn_proto_from_insn): Use write_arg_mode and
write_return_mode.
(init_frame): New fn.
(nvptx_declare_function_name): Call it for frame and varargs. Only
emit outgoing static chain, if it's live.
(nvptx_output_return): Use reg_names for return reg name.
(nvptx_output_call_insn): Likewise.
(nvptx_reorg): Mark unused hard regs too.

From-SVN: r231663

8 years agoRestore accidentally-removed volatile qualifier
Jonathan Wakely [Tue, 15 Dec 2015 17:06:25 +0000 (17:06 +0000)]
Restore accidentally-removed volatile qualifier

* include/std/functional (_Mu<_Arg, false, false>::operator()): Restore
accidentally-removed volatile qualifier.

From-SVN: r231660

8 years agonvptx.md (nvptx_register_operand): Don't accept and then reject subregs.
Nathan Sidwell [Tue, 15 Dec 2015 17:05:01 +0000 (17:05 +0000)]
nvptx.md (nvptx_register_operand): Don't accept and then reject subregs.

* config/nvptx/nvptx.md (nvptx_register_operand): Don't accept and
then reject subregs.
(nvptx_reg_or_mem_operand): Likewise.
(nvptx_nonmemory_operand): Likewise.
(call_insn_operand): A regular predicate, check SYMBOL_REF_FUNCTION_P.
(call_insn, call_value_insn): Address is not SImode.
* config/nvptx/nvptx.h (FIXED_REGISTERS): Make return reg fixed.
(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove
RETURN_REG class.
(REGNO_REG_CLASS): Alwaus ALL_REGS.
(PROMOTE_MODE): QI and HI are the only smaller than SI int modes.
(HARD_FRAME_POINTER_REGNUM): Delete.
(REGISTER_NAMES): Move earlier.
(struct nvptx_args): Remove 'off'.
(INIT_CUMULATIVE_ARGS): Don't initialize 'off'.
(ELIMINABLE_REGS): Remove HARD_FRAME_POINTER_REGNUM.
* config/nvptx/nvptx.c (arg_promotion): Delete.
(nvptx_expand_call): Remove check for funtype being an fntype.

From-SVN: r231659

8 years ago* hash-map.h, hash-table.h: Make copy constructors explicit.
Jason Merrill [Tue, 15 Dec 2015 16:21:50 +0000 (11:21 -0500)]
* hash-map.h, hash-table.h: Make copy constructors explicit.

From-SVN: r231658

8 years agoAdd space between name and email in Changelog
Alessandro Fanfarillo [Tue, 15 Dec 2015 16:12:41 +0000 (09:12 -0700)]
Add space between name and email in Changelog

From-SVN: r231657

8 years agore PR c/68907 (bogus warning: right-hand operand of comma expression has no effect...
Marek Polacek [Tue, 15 Dec 2015 15:13:49 +0000 (15:13 +0000)]
re PR c/68907 (bogus warning: right-hand operand of comma expression has no effect on an atomic_int preincrement)

PR c/68907
* c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
artificial decl.

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

From-SVN: r231656

8 years agoc-common.c (c_common_attribute_table): Handle "omp declare target link" attribute.
Ilya Verbin [Tue, 15 Dec 2015 14:56:50 +0000 (14:56 +0000)]
c-common.c (c_common_attribute_table): Handle "omp declare target link" attribute.

gcc/c-family/
* c-common.c (c_common_attribute_table): Handle "omp declare target
link" attribute.
gcc/
* cgraphunit.c (output_in_order): Do not assemble "omp declare target
link" variables in ACCEL_COMPILER.
* gimplify.c (gimplify_adjust_omp_clauses): Do not remove mapping of
"omp declare target link" variables.
* omp-low.c (scan_sharing_clauses): Do not remove mapping of "omp
declare target link" variables.
(add_decls_addresses_to_decl_constructor): For "omp declare target link"
variables output address of the artificial pointer instead of address of
the variable.  Set most significant bit of the size to mark them.
(pass_data_omp_target_link): New pass_data.
(pass_omp_target_link): New class.
(find_link_var_op): New static function.
(make_pass_omp_target_link): New function.
* passes.def: Add pass_omp_target_link.
* tree-pass.h (make_pass_omp_target_link): Declare.
* varpool.c (symbol_table::output_variables): Do not assemble "omp
declare target link" variables in ACCEL_COMPILER.
gcc/lto/
* lto.c: Include stringpool.h and fold-const.h.
(offload_handle_link_vars): New static function.
(lto_main): Call offload_handle_link_vars.
libgomp/
* libgomp.h (REFCOUNT_LINK): Define.
(struct splay_tree_key_s): Add link_key.
* target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped.
Replace target address of the pointer with target address of newly
mapped object in the splay tree.  Set link pointer on target to the
device address of the mapped object.
(gomp_unmap_vars): Restore target address of the pointer in the splay
tree for REFCOUNT_LINK objects after unmapping.
(gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp
declare target link" objects.
(gomp_unload_image_from_device): Replace j with i.  Force unmap of all
"omp declare target link" objects, which were mapped for the image.
(gomp_exit_data): Restore target address of the pointer in the splay
tree for REFCOUNT_LINK objects after unmapping.
* testsuite/libgomp.c/target-link-1.c: New file.

From-SVN: r231655

8 years agore PR middle-end/21273 (gensupport.c:collect_insn_data doesn't consider the constrain...
Bernd Schmidt [Tue, 15 Dec 2015 14:34:01 +0000 (14:34 +0000)]
re PR middle-end/21273 (gensupport.c:collect_insn_data doesn't consider the constraints of match_scratch)

Fix PR21273

PR middle-end/21273
* gensupport.c (collect_insn_data): Look for number of alternatives
in MATCH_SCRATCH.

From-SVN: r231654

8 years agoRemove vestigial traces of std::tr1::bind
Jonathan Wakely [Tue, 15 Dec 2015 14:17:27 +0000 (14:17 +0000)]
Remove vestigial traces of std::tr1::bind

* include/std/functional (is_placeholder, is_bind_expression): Update
comments.
(_Safe_tuple_element): Replace with _Safe_tuple_element_t alias
template.
(_Mu): Remove vestigial TR1 return types and update coments.

From-SVN: r231653

8 years agoFix cv-qualifiers in std::bind invocation
Jonathan Wakely [Tue, 15 Dec 2015 14:17:17 +0000 (14:17 +0000)]
Fix cv-qualifiers in std::bind invocation

PR libstdc++/68912
* include/std/functional (_Bind::operator()): Use lvalue functor to
deduce return type.
* testsuite/20_util/bind/68912.cc: New.

From-SVN: r231652

8 years agonvptx.h (HARD_REGNO_NREGS): Reformat.
Nathan Sidwell [Tue, 15 Dec 2015 13:32:48 +0000 (13:32 +0000)]
nvptx.h (HARD_REGNO_NREGS): Reformat.

* config/nvptx/nvptx.h (HARD_REGNO_NREGS): Reformat.
(CANNOT_CHANGE_MODE_CLASS): Always return true.
(HARD_REGNO_MODE_OK): Reformat.
* config/nvptx/nvptx.md (define_expand mov<mode>): No
RETURN_REGNUM handling here.
* config/nvptx/nvptx.c (nvptx_function_value): Set ret_reg_mode
here.
(write_one_arg): No QI or HI mode args.
(write_fn_proto_from_insn): No argument promotion here.
(nvptx_output_return_insn): No return promotion here.
(nvptx_output_mov_insn): No RETURN_REGNUM handling needed.
(nvptx_output_call_insn): No return promotion here.

From-SVN: r231651

8 years agoFix ICE for coarray Critical inside module procedure
Alessandro Fanfarillo [Tue, 15 Dec 2015 13:19:21 +0000 (06:19 -0700)]
Fix ICE for coarray Critical inside module procedure

From-SVN: r231649

8 years ago[PR 68851] Do not collect thunks in collect_callers
Martin Jambor [Tue, 15 Dec 2015 13:07:15 +0000 (14:07 +0100)]
[PR 68851] Do not collect thunks in collect_callers

2015-12-15  Martin Jambor  <mjambor@suse.cz>

PR ipa/68851
* cgraph.c (collect_callers_of_node_1): Do not collect thunks.
* cgraph.h (cgraph_node): Change comment of collect_callers.

testsuite/
* g++.dg/ipa/pr68851.C: New test.

From-SVN: r231648

8 years agoAdd myself to MAINTAINERS
Alessandro Fanfarillo [Tue, 15 Dec 2015 13:01:06 +0000 (06:01 -0700)]
Add myself to MAINTAINERS

From-SVN: r231647

8 years agore PR c++/63506 (GCC deduces wrong return type of operator*() inside template functions)
Paolo Carlini [Tue, 15 Dec 2015 10:18:13 +0000 (10:18 +0000)]
re PR c++/63506 (GCC deduces wrong return type of operator*() inside template functions)

2015-12-15  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/63506
* g++.dg/cpp0x/pr63506-1.C: New.
* g++.dg/cpp0x/pr63506-2.C: Likewise.

From-SVN: r231646

8 years agoSkip block move tests for mcpu=gr5 on Visium
Olivier Hainque [Tue, 15 Dec 2015 09:36:37 +0000 (09:36 +0000)]
Skip block move tests for mcpu=gr5 on Visium

testsuite/
        * gcc.target/visium/block_move.c: Skip for -mcpu=gr5.

From-SVN: r231645

8 years agore PR debug/66688 (compare debug failure building Linux kernel on ppc64le)
Jakub Jelinek [Tue, 15 Dec 2015 07:46:23 +0000 (08:46 +0100)]
re PR debug/66688 (compare debug failure building Linux kernel on ppc64le)

PR tree-optimization/66688
* tree-cfgcleanup.c (cleanup_control_flow_bb): Handle
noreturn call followed only by debug stmts by removing
the debug stmts and handling it the same as if the noreturn
call is the last stmt.

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

From-SVN: r231644

8 years agore PR libstdc++/68863 (Regular expressions: Backreferences don't work in negative...
Tim Shen [Tue, 15 Dec 2015 04:50:29 +0000 (04:50 +0000)]
re PR libstdc++/68863 (Regular expressions: Backreferences don't work in negative lookahead)

PR libstdc++/68863
* include/bits/regex_executor.tcc (_Executor::_M_lookahead):
Copy the captured content for lookahead, so that the backreferences
inside can refer to them.
* testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc:
New testcase.

From-SVN: r231641

8 years agoFix PR c++/21802 (two-stage name lookup fails for operators)
Patrick Palka [Tue, 15 Dec 2015 03:33:53 +0000 (03:33 +0000)]
Fix PR c++/21802 (two-stage name lookup fails for operators)

gcc/cp/ChangeLog:

PR c++/21802
PR c++/53223
* cp-tree.h (cp_tree_code_length): Declare.
(build_min_non_dep_op_overload): Declare.
* tree.c (cp_tree_code_length): Define.
(build_min_non_dep_op_overload): Define.
(build_win_non_dep_call_vec): Copy the KOENIG_LOOKUP_P flag.
* typeck.c (build_x_indirect_ref): Use
build_min_non_dep_op_overload when the given expression
has been resolved to an operator overload.
(build_x_binary_op): Likewise.
(build_x_array_ref): Likewise.
(build_x_unary_op): Likewise.
(build_x_compound_expr): Likewise.
(build_x_modify_expr): Likewise.
* decl2.c (grok_array_decl): Likewise.
* call.c (build_new_op_1): If during template processing we
chose an operator overload that is a hidden friend function, set
the call's KOENIG_LOOKUP_P flag to 1.

gcc/testsuite/ChangeLog:

PR c++/21802
PR c++/53223
* g++.dg/cpp0x/pr53223.C: New test.
* g++.dg/lookup/pr21802.C: New test.
* g++.dg/lookup/two-stage4.C: Remove XFAIL.

From-SVN: r231640

8 years agoPR libfortran/pr68867
Jerry DeLisle [Tue, 15 Dec 2015 03:16:26 +0000 (03:16 +0000)]
PR libfortran/pr68867

2015-12-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/pr68867
* io/write.c (set_fnode_default): For kind=16, set the decimal precision
depending on the platform binary precision, 106 or 113.

From-SVN: r231639

8 years agoDaily bump.
GCC Administrator [Tue, 15 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231638

8 years agossa-fre-4.c: Remove mips*-*-* target.
Steve Ellcey [Mon, 14 Dec 2015 23:58:31 +0000 (23:58 +0000)]
ssa-fre-4.c: Remove mips*-*-* target.

2015-12-14  Steve Ellcey  <sellcey@imgtec.com>

* gcc.dg/tree-ssa/ssa-fre-4.c: Remove mips*-*-* target.
* gcc.target/mips/ext-2.c: Update scan checks.

From-SVN: r231635

8 years agomips.c (mips_promote_function_mode): New function.
Steve Ellcey [Mon, 14 Dec 2015 23:56:28 +0000 (23:56 +0000)]
mips.c (mips_promote_function_mode): New function.

2015-12-14  Steve Ellcey  <sellcey@imgtec.com>

* config/mips/mips.c (mips_promote_function_mode): New function.
(TARGET_PROMOTE_FUNCTION_MODE): Define as above function.
(TARGET_PROMOTE_PROTOTYPES): Remove.

From-SVN: r231634

8 years agore PR c++/68309 (ICE: Segmentation fault)
Jason Merrill [Mon, 14 Dec 2015 20:54:17 +0000 (15:54 -0500)]
re PR c++/68309 (ICE: Segmentation fault)

PR c++/68309
gcc/
* hash-table.h: Add copy constructor.
* hash-map.h: Add copy constructor.
gcc/cp/
* pt.c (instantiate_decl): Copy local_specializations for nested
function.

From-SVN: r231632

8 years agore PR fortran/68850 (Coarray events: EVENT_QUERY not documented as intrinsic subroutine)
Tobias Burnus [Mon, 14 Dec 2015 19:31:51 +0000 (20:31 +0100)]
re PR fortran/68850 (Coarray events: EVENT_QUERY not documented as intrinsic subroutine)

2014-12-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/68850
        * gfortran.texi (Standards): Mention TS 18508.
        (Fortran 2003 and 2008 Status): Add section on TS 18508 status.
        * intrinsic.texi (EVENT_QUERY): Add.

From-SVN: r231631

8 years agoDump default defs for arguments, static chain and decl-by-reference
Tom de Vries [Mon, 14 Dec 2015 19:29:48 +0000 (19:29 +0000)]
Dump default defs for arguments, static chain and decl-by-reference

2015-12-14  Tom de Vries  <tom@codesourcery.com>

PR other/68882
* gimple-pretty-print.c (dump_ssaname_info_to_file): New function.
* gimple-pretty-print.h (dump_ssaname_info_to_file): Declare.
* tree-cfg.c (dump_default_def): New function.
(dump_function_to_file): Dump default defs for arguments, static chain,
and decl-by-reference.

From-SVN: r231630

8 years agonvptx.h (PARM_BOUNDARY): Set to 32.
Nathan Sidwell [Mon, 14 Dec 2015 19:26:49 +0000 (19:26 +0000)]
nvptx.h (PARM_BOUNDARY): Set to 32.

gcc/
* config/nvptx/nvptx.h (PARM_BOUNDARY): Set to 32.
* config/nvptx/nvptx.c (PASS_IN_REG_P, RETURN_IN_REG_P): Delete.
(pass_in_memory, promote_arg, promote_return): New.
(nvptx_function_arg_boundary): Delete.
(nvptx_function_value): Use promote_return.
(nvptx_pass_by_reference): Use pass_in_memory.
(nvptx_return_in_memory): Use pass_in_memory.
(nvptx_promote_function_mode): Use promote_arg.
(write_arg): Adjust arg splitting logic.
(write_return): Check and clear ret_reg_mode, if needed.
(write_fn_proto, nvptx_declare_function_name): Adust write_return
calls.
(TARGET_RUNCTION_ARG_BOUNDARY,
TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Don't override.

gcc/testsuite/
* g++.dg/abi/nvptx-nrv1.C: New.
* g++.dg/abi/nvptx-ptrmem1.C: New.
* gcc.target/nvptx/abi-complex-arg.c: New.
* gcc.target/nvptx/abi-complex-ret.c: New.
* gcc.target/nvptx/abi-enum-arg.c: New.
* gcc.target/nvptx/abi-enum-ret.c: New.
* gcc.target/nvptx/abi-knr-arg.c: New.
* gcc.target/nvptx/abi-knr-ret.c: New.
* gcc.target/nvptx/abi-scalar-arg.c: New.
* gcc.target/nvptx/abi-scalar-ret.c: New.
* gcc.target/nvptx/abi-struct-arg.c: New.
* gcc.target/nvptx/abi-struct-ret.c: New.
* gcc.target/nvptx/abi-vararg-1.c: New.
* gcc.target/nvptx/abi-vararg-2.c: New.
* gcc.target/nvptx/abi-vect-arg.c: New.
* gcc.target/nvptx/abi-vect-ret.c: New.

From-SVN: r231628

8 years agore PR c/68833 (-Werror=format issues an error now)
Jakub Jelinek [Mon, 14 Dec 2015 16:59:05 +0000 (17:59 +0100)]
re PR c/68833 (-Werror=format issues an error now)

PR c/68833
* common.opt (Wmissing-noreturn): Add Warning option.
* opts-common.c (control_warning_option): If opt is
alias_target with alias_arg, set arg to it.

* c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option.

* c-c++-common/pr68833-1.c: New test.
* c-c++-common/pr68833-2.c: New test.

From-SVN: r231624

8 years agolibgomp.h (gomp_device_state): New enum.
Ilya Verbin [Mon, 14 Dec 2015 16:46:54 +0000 (16:46 +0000)]
libgomp.h (gomp_device_state): New enum.

libgomp/
* libgomp.h (gomp_device_state): New enum.
(struct gomp_device_descr): Replace is_initialized with state.
(gomp_fini_device): Remove declaration.
* oacc-host.c (host_dispatch): Use state instead of is_initialized.
* oacc-init.c (acc_init_1): Use state instead of is_initialized.
(acc_shutdown_1): Likewise.  Inline gomp_fini_device.
(acc_set_device_type): Use state instead of is_initialized.
(acc_set_device_num): Likewise.
* target.c (resolve_device): Use state instead of is_initialized.
Do not initialize finalized device.
(gomp_map_vars): Do nothing if device is finalized.
(gomp_unmap_vars): Likewise.
(gomp_update): Likewise.
(GOMP_offload_register_ver): Use state instead of is_initialized.
(GOMP_offload_unregister_ver): Likewise.
(gomp_init_device): Likewise.
(gomp_unload_device): Likewise.
(gomp_fini_device): Remove.
(gomp_get_target_fn_addr): Do nothing if device is finalized.
(GOMP_target): Go to host fallback if device is finalized.
(GOMP_target_ext): Likewise.
(gomp_exit_data): Do nothing if device is finalized.
(gomp_target_task_fn): Go to host fallback if device is finalized.
(gomp_target_fini): New static function.
(gomp_target_init): Use state instead of is_initialized.
Call gomp_target_fini at exit.
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (unregister_main_image): Remove.
(register_main_image): Do not call unregister_main_image at exit.
(GOMP_OFFLOAD_fini_device): Allow for OpenMP.  Unregister main image.

From-SVN: r231623

8 years agors6000: Fix a mistake in cstore_si_as_di (PR68865, PR68879)
Segher Boessenkool [Mon, 14 Dec 2015 16:13:33 +0000 (17:13 +0100)]
rs6000: Fix a mistake in cstore_si_as_di (PR68865, PR68879)

convert_move does not know how to zero-extend a constant integer to the
target mode -- simply because it does not know the source mode.  As a
result, 32-bit SImode with the high bit set would be effectively sign-
extended instead of zero-extended.

This patch fixes it.

PR target/68865
PR target/68879
* config/rs6000/rs6000.md (cstore_si_as_di): Force all operands
into registers.

From-SVN: r231621

8 years agore PR tree-optimization/68707 (testcase gcc.dg/vect/O3-pr36098.c vectorized using...
Richard Biener [Mon, 14 Dec 2015 15:33:20 +0000 (15:33 +0000)]
re PR tree-optimization/68707 (testcase gcc.dg/vect/O3-pr36098.c vectorized using VEC_PERM_EXPR rather than VEC_LOAD_LANES)

2015-12-10  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68707
PR tree-optimization/67323
* tree-vect-slp.c (vect_analyze_slp_instance): Drop SLP instances
if they can be vectorized using load/store-lane instructions.

From-SVN: r231620

8 years agore PR middle-end/68852 (ICE in vect_is_simple_use (tree-vect-stmts.c:8750) using...
Richard Biener [Mon, 14 Dec 2015 15:26:24 +0000 (15:26 +0000)]
re PR middle-end/68852 (ICE in vect_is_simple_use (tree-vect-stmts.c:8750) using -O3)

2015-12-14  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68852
* tree-vectorizer.h (struct _slp_tree): Add def_type member.
(SLP_TREE_DEF_TYPE): New accessor.
* tree-vect-stmts.c (vect_is_simple_use): Remove BB vectorization
hack.
* tree-vect-slp.c (vect_create_new_slp_node): Initialize
SLP_TREE_DEF_TYPE.
(vect_build_slp_tree): When a node is to be built up from scalars
do not push a NULL as child but instead set its def_type to
vect_external_def.
(vect_analyze_slp_cost_1): Check for child def-type instead
of NULL.
(vect_detect_hybrid_slp_stmts): Likewise.
(vect_bb_slp_scalar_cost): Likewise.
(vect_get_slp_defs): Likewise.
(vect_slp_analyze_node_operations): Likewise.  Before
processing node push the children def-types to the underlying
stmts vinfo and restore it afterwards.
(vect_schedule_slp_instance): Likewise.
(vect_slp_analyze_bb_1): Do not mark stmts not in SLP instances
as not vectorizable.

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

From-SVN: r231619

8 years agore PR tree-optimization/68775 (spec2006 test case 465.tonto fails with the gcc 6...
Richard Biener [Mon, 14 Dec 2015 13:42:03 +0000 (13:42 +0000)]
re PR tree-optimization/68775 (spec2006 test case 465.tonto fails with the gcc 6.0 fortran compiler)

2015-12-14  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68775
* tree-vect-slp.c (vect_build_slp_tree): Make sure to apply
a operand swapping even if replacing the op with scalars.

From-SVN: r231617

8 years ago[combine] Don't create LSHIFTRT of zero bits in change_zero_ext
Kyrylo Tkachov [Mon, 14 Dec 2015 11:33:00 +0000 (11:33 +0000)]
[combine] Don't create LSHIFTRT of zero bits in change_zero_ext

* combine.c (change_zero_ext): Do not create a shift of zero length.

From-SVN: r231613

8 years agoBad date on the Changelog entry, boo hiss.
Ville Voutilainen [Mon, 14 Dec 2015 11:11:03 +0000 (13:11 +0200)]
Bad date on the Changelog entry, boo hiss.

From-SVN: r231612

8 years agoDocument the implementation of Logical Operator Type Traits.
Ville Voutilainen [Mon, 14 Dec 2015 11:08:30 +0000 (13:08 +0200)]
Document the implementation of Logical Operator Type Traits.

* doc/html/index.html: Regenerate.
* doc/html/manual/status.html: Likewise.
* doc/xml/manual/status_cxx2017.xml: Add P0013R1 to C++ 201z
and to Library Fundamentals 2 TS.

From-SVN: r231611

8 years agobuiltin-return-1.c: Correct effective-target test.
Alexander Monakov [Mon, 14 Dec 2015 10:15:13 +0000 (13:15 +0300)]
builtin-return-1.c: Correct effective-target test.

* gcc.dg/builtin-return-1.c: Correct effective-target test.
* gcc.dg/stack-usage-2.c: Use effective-target test.

From-SVN: r231610

8 years ago[ARC] Use TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P hook.
Claudiu Zissulescu [Mon, 14 Dec 2015 09:59:02 +0000 (10:59 +0100)]
[ARC] Use TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P hook.

gcc/
2015-12-14  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P):
Provide target hook.
(arc_no_speculation_in_delay_slots_p): New function.

From-SVN: r231609

8 years ago[ARC] Refurbish emitting DWARF2 related information when expanding epilogue.
Claudiu Zissulescu [Mon, 14 Dec 2015 09:46:13 +0000 (10:46 +0100)]
[ARC] Refurbish emitting DWARF2 related information when expanding epilogue.

gcc/
2015-12-14  Claudiu Zissulescu  <claziss@synopsys.com>
    Andrew Burgess  <andrew.burgess@embecosm.com>

* config/arc/arc.c (frame_move): Set frame related flag.
(arc_save_restore): Emit epilogue related DWARF2 information.
(arc_expand_epilogue): Likewise.
* config/arc/arc.opt (mno-epilogue-cfi): Remove.
(mepilogue-cfi): Likewise.
* doc/invoke.texi: Remove -m[no]-epilogue-cfi documentation.

Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>
From-SVN: r231608

8 years ago[PR 66616] Check for thunks when adding extra constants to clones
Martin Jambor [Mon, 14 Dec 2015 09:33:12 +0000 (10:33 +0100)]
[PR 66616] Check for thunks when adding extra constants to clones

2015-12-14  Martin Jambor  <mjambor@suse.cz>

PR ipa/66616
* ipa-cp.c (propagate_constants_accross_call): Move thuk check...
(call_passes_through_thunk_p): ...here.
(find_more_scalar_values_for_callers_subset): Perform thunk checks
like propagate_constants_accross_call does.

testsuite/
* g++.dg/ipa/pr66616.C: New test.

From-SVN: r231607

8 years agore PR rtl-optimization/68730 (wrong code at -O3 on x86_64-linux-gnu (in 32-bit mode))
Jakub Jelinek [Mon, 14 Dec 2015 08:04:37 +0000 (09:04 +0100)]
re PR rtl-optimization/68730 (wrong code at -O3 on x86_64-linux-gnu (in 32-bit mode))

PR rtl-optimization/68730
* cfgrtl.c (cfg_layout_finalize): Free dominators.

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

From-SVN: r231606

8 years agore PR testsuite/68629 (FAIL: c-c++-common/attr-simd-3.c)
Thomas Preud'homme [Mon, 14 Dec 2015 02:05:16 +0000 (02:05 +0000)]
re PR testsuite/68629 (FAIL: c-c++-common/attr-simd-3.c)

2015-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR testsuite/68629
    * lib/target-supports.exp (check_effective_target_cilkplus): Also
    check that compiling with -fcilkplus does not give an error.
    * c-c++-common/attr-simd-3.c: Require cilkplus effective target.

From-SVN: r231605

8 years agoDaily bump.
GCC Administrator [Mon, 14 Dec 2015 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231604

8 years ago[PR67355] drop dummy zero from reverse VTA ops, fix infinite recursion
Alexandre Oliva [Sun, 13 Dec 2015 20:37:26 +0000 (20:37 +0000)]
[PR67355] drop dummy zero from reverse VTA ops, fix infinite recursion

VTA's cselib expression hashing compares expressions with the same
hash before adding them to the hash table.  When there is a collision
involving a self-referencing expression, we could get infinite
recursion, in spite of the cycle breakers already in place.  The
problem is currently latent in the trunk, because by chance we don't
get a collision.

Such value cycles are often introduced by reverse_op; most often,
they're indirect, and then value canonicalization takes care of the
cycle, but if the reverse operation simplifies to the original value,
we used to issue a (plus V (const_int 0)), because at some point
adding a plain value V to a location list as a reverse_op equivalence
caused other problems.

This dummy zero, in turn, caused the value canonicalizer to not fully
realize the equivalence, leading to more complex graphs and,
occasionally, to infinite recursion when comparing such
value-plus-zero expressions recursively.

Simply using V solves the infinite recursion from the PR testcase,
since the extra equivalence and the preexisting value canonicalization
together prevent recursion while the unrecognized equivalence
wouldn't, but it exposed another infinite recursion in
memrefs_conflict_p: get_addr had a cycle breaker in place, to skip RTL
referencing values introduced after the one we're examining, but it
wouldn't break the cycle if the value itself appeared in the
expression being examined.

After removing the dummy zero above, this kind of cycle in the
equivalence graph is no longer introduced by VTA itself, but dummy
zeros are also present in generated code, such as in the 32-bit x86's
pro_epilogue_adjust_stack_si_add epilogue insn generated as part of
the builtin longjmp in _Unwind_RaiseException building libgcc's
unwind-dw2.o.  So, break the recursion cycle for them too.

for  gcc/ChangeLog

PR debug/67355
* var-tracking.c (reverse_op): Don't add dummy zero to reverse
ops that simplify back to the original value.
* alias.c (refs_newer_value_p): Cut off recursion for
expressions containing the original value.

From-SVN: r231599

8 years ago* gcc.dg/graphite/pr42729.c: XFAIL AIX.
David Edelsohn [Sun, 13 Dec 2015 13:10:33 +0000 (13:10 +0000)]
* gcc.dg/graphite/pr42729.c: XFAIL AIX.

From-SVN: r231598

8 years ago[PATCH][PR target/19201] Peephole to improve clearing items in structure for m68k
Kazu Kirata [Sun, 13 Dec 2015 13:06:12 +0000 (06:06 -0700)]
[PATCH][PR target/19201] Peephole to improve clearing items in structure for m68k

[PATCH][PR target/19201] Peephole to improve clearing items in structure for m68k
* config/m68k/m68k.md (load feeding clear byte): New peephole2.

* gcc.target/m68k/pr19201.c: New test.

From-SVN: r231597

8 years ago[PATCH] m68k testsuite TLC
Jeff Law [Sun, 13 Dec 2015 12:51:02 +0000 (05:51 -0700)]
[PATCH] m68k testsuite TLC

* gcc.target/m68k/pr63347.c: Remove #include <stdlib> add -w to
command line options.
* gcc.target/m68k/20090709-1.c: Adjust expected output.

From-SVN: r231596

8 years agoHandle sizes and kinds params of GOACC_paralllel in find_func_clobbers
Tom de Vries [Sun, 13 Dec 2015 12:43:21 +0000 (12:43 +0000)]
Handle sizes and kinds params of GOACC_paralllel in find_func_clobbers

2015-12-13  Tom de Vries  <tom@codesourcery.com>

* tree-ssa-structalias.c (find_func_clobbers): Handle sizes and kinds
parameters of GOACC_paralllel.

From-SVN: r231595

8 years agocgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_secti...
Jan Hubicka [Sun, 13 Dec 2015 02:13:15 +0000 (02:13 +0000)]
cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data.

* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed
flag to lto_get_section_data.
* varpool.c (varpool_node::get_constructor): Likewise.
* lto-section-in.c (lto_get_section_data): Add new flag decompress.
(lto_free_section_data): Likewise.
(lto_get_raw_section_data): New function.
(lto_free_raw_section_data): New function.
(copy_function_or_variable): Copy sections w/o decompressing.
(lto_output_decl_state_refs): Picke compressed bit.
* lto-streamer.h (lto_in_decl_state): New flag compressed.
(lto_out_decl_state): Likewise.
(lto_get_section_data, lto_free_section_data): Update prototypes
(lto_get_raw_section_data, lto_free_raw_section_data): Declare.
(lto_write_raw_data): Declare.
(lto_begin_section): Remove FIXME.
(lto_write_raw_data): New function.
(lto_write_stream): Remove FIXME.
(lto_new_out_decl_state): Set compressed flag.

From-SVN: r231594

8 years agocgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_secti...
Jan Hubicka [Sun, 13 Dec 2015 02:12:15 +0000 (03:12 +0100)]
cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data.

* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed
flag to lto_get_section_data.
* varpool.c (varpool_node::get_constructor): Likewise.
* lto-section-in.c (lto_get_section_data): Add new flag decompress.
(lto_free_section_data): Likewise.
(lto_get_raw_section_data): New function.
(lto_free_raw_section_data): New function.
(copy_function_or_variable): Copy sections w/o decompressing.
(lto_output_decl_state_refs): Picke compressed bit.
* lto-streamer.h (lto_in_decl_state): New flag compressed.
(lto_out_decl_state): Likewise.
(lto_get_section_data, lto_free_section_data): Update prototypes
(lto_get_raw_section_data, lto_free_raw_section_data): Declare.
(lto_write_raw_data): Declare.
(lto_begin_section): Remove FIXME.
(lto_write_raw_data): New function.
(lto_write_stream): Remove FIXME.
(lto_new_out_decl_state): Set compressed flag.

* lto.c (lto_read_in_decl_state): Unpickle compressed bit.

From-SVN: r231593

8 years agopr48549.C: XFAIL AIX.
David Edelsohn [Sun, 13 Dec 2015 01:55:02 +0000 (20:55 -0500)]
pr48549.C: XFAIL AIX.

        * g++.dg/opt/pr48549.C: XFAIL AIX.
        * g++.dg/abi/anon1.C: XFAIL AIX.
        * gcc.dg/graphite/pr42917.c: XFAIL AIX.

From-SVN: r231592