gcc.git
8 years agoAdd gcc.dg/pr46032-{2,3}.c test-cases
Tom de Vries [Mon, 30 Nov 2015 17:48:41 +0000 (17:48 +0000)]
Add gcc.dg/pr46032-{2,3}.c test-cases

2015-11-30  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/pr46032-2.c: New test.
* gcc.dg/pr46032-3.c: New test.

From-SVN: r231079

8 years agore PR target/63870 ([Aarch64] [ARM] Errors in use of NEON intrinsics are reported...
Charles Baylis [Mon, 30 Nov 2015 17:11:16 +0000 (17:11 +0000)]
re PR target/63870 ([Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly)

gcc/testsuite/ChangeLog:

2015-11-30  Charles Baylis  <charles.baylis@linaro.org>

PR target/63870
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c (f_vld2_lane_f16): Remove xfails for arm targets.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f32_indices_1.c (f_vld2_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f64_indices_1.c (f_vld2_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_p8_indices_1.c (f_vld2_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s16_indices_1.c (f_vld2_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s32_indices_1.c (f_vld2_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s64_indices_1.c (f_vld2_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s8_indices_1.c (f_vld2_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u16_indices_1.c (f_vld2_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u32_indices_1.c (f_vld2_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u64_indices_1.c (f_vld2_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u8_indices_1.c (f_vld2_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c (f_vld2q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f32_indices_1.c (f_vld2q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f64_indices_1.c (f_vld2q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_p8_indices_1.c (f_vld2q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s16_indices_1.c (f_vld2q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s32_indices_1.c (f_vld2q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s64_indices_1.c (f_vld2q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s8_indices_1.c (f_vld2q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u16_indices_1.c (f_vld2q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u32_indices_1.c (f_vld2q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u64_indices_1.c (f_vld2q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u8_indices_1.c (f_vld2q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c (f_vld3_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f32_indices_1.c (f_vld3_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f64_indices_1.c (f_vld3_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_p8_indices_1.c (f_vld3_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s16_indices_1.c (f_vld3_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s32_indices_1.c (f_vld3_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s64_indices_1.c (f_vld3_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s8_indices_1.c (f_vld3_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u16_indices_1.c (f_vld3_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u32_indices_1.c (f_vld3_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u64_indices_1.c (f_vld3_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u8_indices_1.c (f_vld3_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c (f_vld3q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f32_indices_1.c (f_vld3q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f64_indices_1.c (f_vld3q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_p8_indices_1.c (f_vld3q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s16_indices_1.c (f_vld3q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s32_indices_1.c (f_vld3q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s64_indices_1.c (f_vld3q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s8_indices_1.c (f_vld3q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u16_indices_1.c (f_vld3q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u32_indices_1.c (f_vld3q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u64_indices_1.c (f_vld3q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u8_indices_1.c (f_vld3q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c (f_vld4_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f32_indices_1.c (f_vld4_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f64_indices_1.c (f_vld4_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_p8_indices_1.c (f_vld4_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s16_indices_1.c (f_vld4_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s32_indices_1.c (f_vld4_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s64_indices_1.c (f_vld4_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s8_indices_1.c (f_vld4_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u16_indices_1.c (f_vld4_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u32_indices_1.c (f_vld4_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u64_indices_1.c (f_vld4_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u8_indices_1.c (f_vld4_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c (f_vld4q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f32_indices_1.c (f_vld4q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f64_indices_1.c (f_vld4q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_p8_indices_1.c (f_vld4q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s16_indices_1.c (f_vld4q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s32_indices_1.c (f_vld4q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s64_indices_1.c (f_vld4q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s8_indices_1.c (f_vld4q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u16_indices_1.c (f_vld4q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u32_indices_1.c (f_vld4q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u64_indices_1.c (f_vld4q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u8_indices_1.c (f_vld4q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c (f_vst2_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f32_indices_1.c (f_vst2_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f64_indices_1.c (f_vst2_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_p8_indices_1.c (f_vst2_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s16_indices_1.c (f_vst2_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s32_indices_1.c (f_vst2_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s64_indices_1.c (f_vst2_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s8_indices_1.c (f_vst2_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u16_indices_1.c (f_vst2_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u32_indices_1.c (f_vst2_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u64_indices_1.c (f_vst2_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u8_indices_1.c (f_vst2_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c (f_vst2q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f32_indices_1.c (f_vst2q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f64_indices_1.c (f_vst2q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_p8_indices_1.c (f_vst2q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s16_indices_1.c (f_vst2q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s32_indices_1.c (f_vst2q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s64_indices_1.c (f_vst2q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s8_indices_1.c (f_vst2q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u16_indices_1.c (f_vst2q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u32_indices_1.c (f_vst2q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u64_indices_1.c (f_vst2q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u8_indices_1.c (f_vst2q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c (f_vst3_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f32_indices_1.c (f_vst3_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f64_indices_1.c (f_vst3_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_p8_indices_1.c (f_vst3_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s16_indices_1.c (f_vst3_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s32_indices_1.c (f_vst3_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s64_indices_1.c (f_vst3_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s8_indices_1.c (f_vst3_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u16_indices_1.c (f_vst3_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u32_indices_1.c (f_vst3_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u64_indices_1.c (f_vst3_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u8_indices_1.c (f_vst3_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c (f_vst3q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f32_indices_1.c (f_vst3q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f64_indices_1.c (f_vst3q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_p8_indices_1.c (f_vst3q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s16_indices_1.c (f_vst3q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s32_indices_1.c (f_vst3q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s64_indices_1.c (f_vst3q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s8_indices_1.c (f_vst3q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u16_indices_1.c (f_vst3q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u32_indices_1.c (f_vst3q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u64_indices_1.c (f_vst3q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u8_indices_1.c (f_vst3q_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c (f_vst4_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f32_indices_1.c (f_vst4_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f64_indices_1.c (f_vst4_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_p8_indices_1.c (f_vst4_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s16_indices_1.c (f_vst4_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s32_indices_1.c (f_vst4_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s64_indices_1.c (f_vst4_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s8_indices_1.c (f_vst4_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u16_indices_1.c (f_vst4_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u32_indices_1.c (f_vst4_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u64_indices_1.c (f_vst4_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u8_indices_1.c (f_vst4_lane_u8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c (f_vst4q_lane_f16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f32_indices_1.c (f_vst4q_lane_f32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f64_indices_1.c (f_vst4q_lane_f64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_p8_indices_1.c (f_vst4q_lane_p8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s16_indices_1.c (f_vst4q_lane_s16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s32_indices_1.c (f_vst4q_lane_s32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s64_indices_1.c (f_vst4q_lane_s64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s8_indices_1.c (f_vst4q_lane_s8): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u16_indices_1.c (f_vst4q_lane_u16): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u32_indices_1.c (f_vst4q_lane_u32): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u64_indices_1.c (f_vst4q_lane_u64): Ditto.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u8_indices_1.c (f_vst4q_lane_u8): Ditto.

From-SVN: r231077

8 years agoHandle BUILT_IN_GOMP_PARALLEL in ipa-pta
Tom de Vries [Mon, 30 Nov 2015 16:34:26 +0000 (16:34 +0000)]
Handle BUILT_IN_GOMP_PARALLEL in ipa-pta

2015-11-30  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/46032
* tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
factored out of ...
(find_func_aliases_for_call): ... here.
(find_func_aliases_for_builtin_call, find_func_clobbers): Handle
BUILT_IN_GOMP_PARALLEL.
(ipa_pta_execute): Same.  Handle node->parallelized_function as a local
function.

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

* testsuite/libgomp.c/pr46032.c: New test.

From-SVN: r231076

8 years agore PR tree-optimization/68501 (sqrt builtin is not used anymore)
Jakub Jelinek [Mon, 30 Nov 2015 14:56:08 +0000 (15:56 +0100)]
re PR tree-optimization/68501 (sqrt builtin is not used anymore)

PR tree-optimization/68501
* target.def (builtin_reciprocal): Replace the 3 arguments with
a gcall * one, adjust description.
* targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
with a gcall * one.
* targhooks.c (default_builtin_reciprocal): Likewise.
* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
targetm.builtin_reciprocal even on internal functions, adjust
the arguments and allow replacing an internal function with normal
built-in.
* config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
with a gcall * one.  Handle internal fns too.
* config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
* doc/tm.texi (builtin_reciprocal): Document.

From-SVN: r231075

8 years agore PR tree-optimization/68592 (ICE in vect_get_vec_def_for_operand, at tree-vect...
Richard Biener [Mon, 30 Nov 2015 14:50:48 +0000 (14:50 +0000)]
re PR tree-optimization/68592 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1403 with -fprofile-generate)

2015-11-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68592
* tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
on the pattern def sequence.

* gfortran.dg/pr68592.f: New testcase.

From-SVN: r231074

8 years agonvptx.c (nvptx_name_replacement): Move earlier.
Nathan Sidwell [Mon, 30 Nov 2015 14:44:48 +0000 (14:44 +0000)]
nvptx.c (nvptx_name_replacement): Move earlier.

* config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
(write_one_arg): Reorder parms, add 'sep' param.
(nvptx_write_function_decl): Rename to ...
(write_fn_proto): ... here.  Do name replacement. Emit linaer
comment marker. Deal with both decls and defns. Simplify argument
formatting.
(write_function_decl_and_comment): Delete.
(write_func_decl_from_insn): Rename to ...
(write_fn_proto_from_insn): ... here.  Don't do name replacement.
(nvptx_record_fndecl): Call write_fn_proto.
(nvptx_record_libfunc): Call write_fn_proto_from_insn.
(nvptx_declare_function_name): Adjust for write_fn_proto changes.
(nvotx_output_call_insn): Call write_fn_prot_from_insn.

From-SVN: r231073

8 years agore PR fortran/68534 (No error on mismatch in number of arguments between submodule...
Paul Thomas [Mon, 30 Nov 2015 13:33:27 +0000 (13:33 +0000)]
re PR fortran/68534 (No error on mismatch in number of arguments between submodule and module interface)

2015-11-30  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68534
* decl.c (gfc_match_formal_arglist): Cope with zero formal args
either in interface declaration or in procedure declaration in
submodule.

2015-11-30  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68534
* gfortran.dg/submodule_13.f08: New test.

From-SVN: r231072

8 years agoS/390: Testsuite: Add asm scan patterns for -m31.
Andreas Krebbel [Mon, 30 Nov 2015 13:24:51 +0000 (13:24 +0000)]
S/390: Testsuite: Add asm scan patterns for -m31.

gcc/testsuite/ChangeLog:

2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/load-relative-check.c: Add scan patterns for
-m31.

From-SVN: r231071

8 years agoS/390: Testsuite: Add -mzarch to load-relative-check.c.
Andreas Krebbel [Mon, 30 Nov 2015 12:31:02 +0000 (12:31 +0000)]
S/390: Testsuite: Add -mzarch to load-relative-check.c.

2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/load-relative-check.c: Add -mzarch.

From-SVN: r231070

8 years agoc-ada-spec.c (print_ada_macros): Remove redundant blank line.
Eric Botcazou [Mon, 30 Nov 2015 12:20:06 +0000 (12:20 +0000)]
c-ada-spec.c (print_ada_macros): Remove redundant blank line.

* c-ada-spec.c (print_ada_macros): Remove redundant blank line.
(decl_sloc_common): Delete and move bulk of processing to...
(decl_sloc): ...here.
(pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
(dump_ada_double_name): Remove S parameter and compute the suffix.
(dump_ada_array_type): Add PARENT parameter.  Simplify computation of
element type and deal with an anonymous one.
(dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
(dump_generic_ada_node): Tweak.  Adjust call to dump_ada_array_type
and remove reference to QUAL_UNION_TYPE.
(dump_nested_types): Make 2 passes on the fields and move bulk to...
(dump_nested_type): ...here.  New function extracted from above.
Generate a full declaration for anonymous element type of arrays.
(print_ada_declaration): Really skip anonymous declarations.  Remove
references to QUAL_UNION_TYPE.  Adjust call to dump_ada_array_type.
Clean up processing of declarations of array types and objects.
(print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
Remove obsolete code and tidy up.

From-SVN: r231069

8 years ago* gcc-interface/trans.c (gigi): Fix initialization order.
Eric Botcazou [Mon, 30 Nov 2015 12:06:30 +0000 (12:06 +0000)]
* gcc-interface/trans.c (gigi): Fix initialization order.

From-SVN: r231068

8 years agoosint.adb: Add use type clause for CRTL.size_t.
Eric Botcazou [Mon, 30 Nov 2015 11:59:09 +0000 (11:59 +0000)]
osint.adb: Add use type clause for CRTL.size_t.

* osint.adb: Add use type clause for CRTL.size_t.
(C_String_Length): Return CRTL.size_t instead of Integer.
(To_Path_String_Access): Take CRTL.size_t instead of Integer.
(Get_Libraries_From_Registry): Use CRTL throughout.
(To_Canonical_Dir_Spec): Use CRTL.size_t instead of Integer.
(To_Canonical_File_List): Likewise.
(To_Canonical_File_Spec): Likewise.
(To_Canonical_Path_Spec): Likewise.
(To_Host_Dir_Spec): Likewise.
(To_Host_File_Spec): Likewise.
(Update_Path): Use CRTL throughout.
* s-shasto.adb: Add with clause for System.CRTL.
(Initialize): Rename CRTL.strncpy instead of importing it manually.

From-SVN: r231066

8 years agogigi.h (create_var_decl): Adjust prototype.
Eric Botcazou [Mon, 30 Nov 2015 11:50:53 +0000 (11:50 +0000)]
gigi.h (create_var_decl): Adjust prototype.

* gcc-interface/gigi.h (create_var_decl): Adjust prototype.
(create_subprog_decl): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Rename
static_p into static_flag and add volatile_flag local variable.
Do not locally change the type of a volatile object, except for the
pointed-to type if the object is handled by reference.  Adjust calls
to create_var_decl.
<E_Subprogram_Type>: Likewise for const and noreturn subprograms.
(get_minimal_subprog_decl): Adjust call to create_subprog_decl.
(elaborate_expression_1): Adjust call to create_var_decl.
(gnat_to_gnu_field): Minor tweak.
* gcc-interface/trans.c (gigi): Adjust calls to create_var_decl and
create_subprog_decl.
(build_raise_check): Likewise.
(Subprogram_Body_to_gnu): Likewise.
(create_temporary): Likewise.
(Handled_Sequence_Of_Statements_to_gnu): Likewise.
(Exception_Handler_to_gnu_gcc): Likewise.
(Compilation_Unit_to_gnu): Likewise.
(gnat_to_gnu): Likewise.
* gcc-interface/utils.c (maybe_pad_type): Likewise.
(create_var_decl): Add VOLATILE_FLAG parameter and handle it.
(create_subprog_decl): Add CONST_FLAG and VOLATILE_FLAG parameters and
handle them.

From-SVN: r231065

8 years agogigi.h (is_simple_additive_expression): Declare.
Eric Botcazou [Mon, 30 Nov 2015 11:46:32 +0000 (11:46 +0000)]
gigi.h (is_simple_additive_expression): Declare.

* gcc-interface/gigi.h (is_simple_additive_expression): Declare.
* gcc-interface/trans.c (struct range_check_info_d): Add DISP and
NEG_P fields.
(find_loop_for): Add DISP and NEG_P parameters with default value.
Call is_simple_additive_expression to handle additive expressions.
(Loop_Statement_to_gnu): Deal with displacement in range checks.
(Raise_Error_to_gnu): Likewise.
(gnat_to_gnu): Add call to find_loop_for.
(is_simple_additive_expression): New function extracted from...
(gnat_invariant_expr): ...here.  Call it on the expression.

From-SVN: r231064

8 years ago* gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.
Eric Botcazou [Mon, 30 Nov 2015 11:34:31 +0000 (11:34 +0000)]
* gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.

From-SVN: r231063

8 years agoada-tree.h (TYPE_MAX_ALIGN): New macro.
Eric Botcazou [Mon, 30 Nov 2015 11:25:24 +0000 (11:25 +0000)]
ada-tree.h (TYPE_MAX_ALIGN): New macro.

* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set PACKED to -2.
Remove obsolete code setting the alignment on some atomic types.
When the type has no alignment but needs strict alignment and has a
size clause, compute a maximum alignment and set it on the type.
(adjust_packed): Remove handling of -2 argument.  Deal with TYPE_ALIGN
and TYPE_MAX_ALIGN directly.
(gnat_to_gnu_field): Do not document -2 as argument.
(components_to_record): Likewise.
* gcc-interface/utils.c (finish_record_type): Do not bump alignment of
the record type beyond TYPE_MAX_ALIGN.  Reset the latter on exit.

* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): Move around.
(GNATLIBCFLAGS_FOR_C): Reformat.
(GCC_CFLAGS): Delete.

From-SVN: r231062

8 years ago[AVX-512] Enable QI-mode mask logic patterns on non-AVX-512DQ targets.
Kirill Yukhin [Mon, 30 Nov 2015 10:50:56 +0000 (10:50 +0000)]
[AVX-512] Enable QI-mode mask logic patterns on non-AVX-512DQ targets.

gcc/
* config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
(define_insn "*k<logic><mode>"): Use new iterator.

From-SVN: r231061

8 years agore PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)
Eric Botcazou [Mon, 30 Nov 2015 09:43:55 +0000 (09:43 +0000)]
re PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)

PR target/28115
* config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
(sparc_adjust_cost): Add missing space.

From-SVN: r231059

8 years agore PR c/68162 (Incompatible pointer type using a typedef)
Richard Biener [Mon, 30 Nov 2015 08:24:06 +0000 (08:24 +0000)]
re PR c/68162 (Incompatible pointer type using a typedef)

2015-11-30  Richard Biener  <rguenther@suse.de>

PR c/68162
* dwarf2out.c (gen_type_die_with_usage): Keep variant types
of arrays.

From-SVN: r231058

8 years agotree-if-conv.c (struct ifc_dr): Add new tree base_predicate field.
Venkataramanan Kumar [Mon, 30 Nov 2015 07:59:54 +0000 (07:59 +0000)]
tree-if-conv.c (struct ifc_dr): Add new tree base_predicate field.

2015-11-30  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>

* tree-if-conv.c (struct ifc_dr): Add new tree
base_predicate field.
(hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash
base ref, DR pairs and store base_predicate for write type DRs.
(ifcvt_memrefs_wont_trap): Guard checks with
-ftree-loop-if-convert-stores flag.

From-SVN: r231057

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

From-SVN: r231056

8 years agore PR ada/68564 (Ada fails to bootstrap on sparc64-linux-gnu)
Matthias Klose [Sun, 29 Nov 2015 22:41:00 +0000 (22:41 +0000)]
re PR ada/68564 (Ada fails to bootstrap on sparc64-linux-gnu)

2015-11-29  Matthias Klose  <doko@ubuntu.com>

        PR ada/68564
        * gcc-interface/Makefile.in: Fix powerpc/powerpc64* and
        mipsel/mips64el bitness detection.
        Merge the mipsel/mips64el definitions into one.

From-SVN: r231051

8 years agocgraph.c (cgraph_node::make_local): No name is unique during incremental linking.
Jan Hubicka [Sun, 29 Nov 2015 22:33:23 +0000 (23:33 +0100)]
cgraph.c (cgraph_node::make_local): No name is unique during incremental linking.

* cgraph.c (cgraph_node::make_local): No name is unique during
incremental linking.
* cgraph.h (can_be_discarded_p): Update comment; also common and
WEAK in named sections can be discarded; when doing incremental
link do not rely on resolution being the final one.
* varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p):
When symbol can be discarded, do not rely on resolution info.
* symtab.c (symtab_node::nonzero_address): Take into account that
symbol can be discarded.
* ipa-visibility.c (update_visibility_by_resolution_info): Handle
definition correctly.
(function_and_variable_visibility): Do not set unique_name when
incrementally linking.

From-SVN: r231050

8 years agore PR c/67106 (ICE: verify_type failed: type variant differs by TYPE_PACKED. with...
Jan Hubicka [Sun, 29 Nov 2015 19:50:04 +0000 (20:50 +0100)]
re PR c/67106 (ICE: verify_type failed:  type variant differs by TYPE_PACKED. with -g -fpack-struct)

PR c/67106
* gcc.c-torture/compile/pr67106.c: New testcase.
* c-decl.c: Set TYPE_PACKED in variants.

From-SVN: r231049

8 years agore PR c++/67581 (ICE on transparent union with -g enabled on x86_64-linux-gnu (verify...
Jan Hubicka [Sun, 29 Nov 2015 19:48:45 +0000 (20:48 +0100)]
re PR c++/67581 (ICE on transparent union with -g enabled on x86_64-linux-gnu (verify_type failed))

PR c/67581
* g++.dg/torture/pr67581.C: New testcase.
* c-family/c-common.c (handle_transparent_union_attribute): Update
also type variants.

From-SVN: r231048

8 years agonvptx.md (const_0_operand, [...]): Delete.
Nathan Sidwell [Sun, 29 Nov 2015 18:54:41 +0000 (18:54 +0000)]
nvptx.md (const_0_operand, [...]): Delete.

* config/nvptx/nvptx.md (const_0_operand, global_mem_operand,
const_mem_operand, param_mem_operand, shared_mem_operand): Delete.
(ctrap<mode>): Use const0_operand.

From-SVN: r231047

8 years agoipa-devirt.c (add_type_duplicate): Remove redundant ODR violation dump
Jan Hubicka [Sun, 29 Nov 2015 18:51:28 +0000 (19:51 +0100)]
ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation dump

* ipa-devirt.c (add_type_duplicate): Remove redundant ODR violation
dump

From-SVN: r231046

8 years agore PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)
David Edelsohn [Sun, 29 Nov 2015 18:11:54 +0000 (18:11 +0000)]
re PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)

PR target/28115
* config/rs6000/rs6000.c (rs6000_adjust_cost): Correct
recog_memoized test for insn and check recog_memoized for dep_insn.

From-SVN: r231045

8 years agoDaily bump.
GCC Administrator [Sun, 29 Nov 2015 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231042

8 years agoAdd to correct changelog
Nathan Sidwell [Sat, 28 Nov 2015 23:25:48 +0000 (23:25 +0000)]
Add to correct changelog

From-SVN: r231039

8 years agonvptx.h (FIRST_PARM_OFFSET): Add void cast.
Nathan Sidwell [Sat, 28 Nov 2015 23:24:20 +0000 (23:24 +0000)]
nvptx.h (FIRST_PARM_OFFSET): Add void cast.

* config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast.
(FRAME_POINTER_CFA_OFFSET): Define.
(struct nvptx_args): Use 'tree' type.
(INIT_CUMULATIVE_ARGS): Remove unnecessary do...while.

From-SVN: r231038

8 years agoHandle flinker-output in lto-wrapper
Tom de Vries [Sat, 28 Nov 2015 16:26:01 +0000 (16:26 +0000)]
Handle flinker-output in lto-wrapper

2015-11-28  Tom de Vries  <tom@codesourcery.com>

* lto-wrapper.c (run_gcc): Handle -flinker-output argument.

From-SVN: r231033

8 years agore PR ada/68564 (Ada fails to bootstrap on sparc64-linux-gnu)
Matthias Klose [Sat, 28 Nov 2015 02:39:20 +0000 (02:39 +0000)]
re PR ada/68564 (Ada fails to bootstrap on sparc64-linux-gnu)

2015-11-28  Matthias Klose  <doko@ubuntu.com>

        PR ada/68564
        * gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection.

From-SVN: r231028

8 years agoDaily bump.
GCC Administrator [Sat, 28 Nov 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231027

8 years agore PR libgomp/68579 (FAIL: libgomp.c/target-32.c execution test)
Jakub Jelinek [Fri, 27 Nov 2015 19:33:33 +0000 (20:33 +0100)]
re PR libgomp/68579 (FAIL: libgomp.c/target-32.c execution test)

PR libgomp/68579
* task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
(gomp_create_target_task): Call it before freeing
GOMP_TARGET_TASK_DATA tasks.

From-SVN: r231023

8 years agoCopy-edit the Option Summary in invoke.texi
Jonathan Wakely [Fri, 27 Nov 2015 18:38:48 +0000 (18:38 +0000)]
Copy-edit the Option Summary in invoke.texi

* doc/invoke.texi (Option Summary): Use negative form of
-Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format,
sort alphabetically and re-justify.

From-SVN: r231022

8 years agore PR rtl-optimization/68536 (LRA ICEs with new arm pattern)
Vladimir Makarov [Fri, 27 Nov 2015 18:26:12 +0000 (18:26 +0000)]
re PR rtl-optimization/68536 (LRA ICEs with new arm pattern)

2015-11-27  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/68536
* lra.c (lra_emit_add): Add code for null base.
* lra-constraints.c (curr_insn_transform): Skip operators for
subreg reloads.

From-SVN: r231021

8 years agoPR other/61321 - demangler crash on casts in template parameters
Pedro Alves [Fri, 27 Nov 2015 14:48:21 +0000 (14:48 +0000)]
PR other/61321 - demangler crash on casts in template parameters

The fix for bug 59195:

 [C++ demangler handles conversion operator incorrectly]
 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59195

unfortunately makes the demangler crash due to infinite recursion, in
case of casts in template parameters.

For example, with:

 template<int> struct A {};
 template <typename Y> void function_temp(A<sizeof ((Y)(999))>) {}
 template void function_temp<int>(A<sizeof (int)>);

The 'function_temp<int>' instantiation above mangles to:

  _Z13function_tempIiEv1AIXszcvT_Li999EEE

The demangler parses this as:

typed name
  template
    name 'function_temp'
    template argument list
      builtin type int
  function type
    builtin type void
    argument list
      template                          (*)
        name 'A'
        template argument list
          unary operator
            operator sizeof
            unary operator
              cast
                template parameter 0    (**)
              literal
                builtin type int
                name '999'

And after the fix for 59195, due to:

 static void
 d_print_cast (struct d_print_info *dpi, int options,
       const struct demangle_component *dc)
 {
 ...
   /* For a cast operator, we need the template parameters from
      the enclosing template in scope for processing the type.  */
   if (dpi->current_template != NULL)
     {
       dpt.next = dpi->templates;
       dpi->templates = &dpt;
       dpt.template_decl = dpi->current_template;
     }

when printing the template argument list of A (what should be "<sizeof
(int)>"), the template parameter 0 (that is, "T_", the '**' above) now
refers to the first parameter of the the template argument list of the
'A' template (the '*' above), exactly what we were already trying to
print.  This leads to infinite recursion, and stack exaustion.  The
template parameter 0 should actually refer to the first parameter of
the 'function_temp' template.

Where it reads "for the cast operator" in the comment in d_print_cast
(above), it's really talking about a conversion operator, like:

  struct A { template <typename U> explicit operator U(); };

We don't want to inject the template parameters from the enclosing
template in scope when processing a cast _expression_, only when
handling a conversion operator.

The problem is that DEMANGLE_COMPONENT_CAST is currently ambiguous,
and means _both_ 'conversion operator' and 'cast expression'.

Fix this by adding a new DEMANGLE_COMPONENT_CONVERSION component type,
which does what DEMANGLE_COMPONENT_CAST does today, and making
DEMANGLE_COMPONENT_CAST just simply print its component subtree.

I think we could instead reuse DEMANGLE_COMPONENT_CAST and in
d_print_comp_inner still do:

 @@ -5001,9 +5013,9 @@ d_print_comp_inner (struct d_print_info *dpi, int options,
        d_print_comp (dpi, options, dc->u.s_extended_operator.name);
        return;

     case DEMANGLE_COMPONENT_CAST:
       d_append_string (dpi, "operator ");
 -     d_print_cast (dpi, options, dc);
 +     d_print_conversion (dpi, options, dc);
       return;

leaving the unary cast case below calling d_print_cast, but seems to
me that spliting the component types makes it easier to reason about
the code.

g++'s testsuite actually generates three symbols that crash the
demangler in the same way.  I've added those as tests in the demangler
testsuite as well.

And then this fixes PR other/61233 too, which happens to be a
demangler crash originally reported to GDB, at:
https://sourceware.org/bugzilla/show_bug.cgi?id=16957

Bootstrapped and regtested on x86_64 Fedora 20.

Also ran this through GDB's testsuite.  GDB will require a small
update to use DEMANGLE_COMPONENT_CONVERSION in one place it's using
DEMANGLE_COMPONENT_CAST in its sources.

libiberty/
2015-11-27  Pedro Alves  <palves@redhat.com>

        PR other/61321
        PR other/61233
        * demangle.h (enum demangle_component_type)
        <DEMANGLE_COMPONENT_CONVERSION>: New value.
        * cp-demangle.c (d_demangle_callback, d_make_comp): Handle
        DEMANGLE_COMPONENT_CONVERSION.
        (is_ctor_dtor_or_conversion): Handle DEMANGLE_COMPONENT_CONVERSION
        instead of DEMANGLE_COMPONENT_CAST.
        (d_operator_name): Return a DEMANGLE_COMPONENT_CONVERSION
        component if handling a conversion.
        (d_count_templates_scopes, d_print_comp_inner): Handle
        DEMANGLE_COMPONENT_CONVERSION.
        (d_print_comp_inner): Handle DEMANGLE_COMPONENT_CONVERSION instead
        of DEMANGLE_COMPONENT_CAST.
        (d_print_cast): Rename as ...
        (d_print_conversion): ... this.  Adjust comments.
        (d_print_cast): Rewrite - simply print the left subcomponent.
        * cp-demint.c (cplus_demangle_fill_component): Handle
        DEMANGLE_COMPONENT_CONVERSION.

        * testsuite/demangle-expected: Add tests.

From-SVN: r231020

8 years agoFix FAIL: gcc.c-torture/execute/20050124-1.c -O2 (internal compiler error)
Kyrylo Tkachov [Fri, 27 Nov 2015 14:39:34 +0000 (14:39 +0000)]
Fix FAIL: gcc.c-torture/execute/20050124-1.c   -O2  (internal compiler error)

Revert
2015-11-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
multiple_sets.
(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
are not modified by the final modified insns in the basic blocks.

From-SVN: r231019

8 years agonvptx-protos.h (nvptx_addr_space_from_address): Don't declare.
Nathan Sidwell [Fri, 27 Nov 2015 14:22:26 +0000 (14:22 +0000)]
nvptx-protos.h (nvptx_addr_space_from_address): Don't declare.

* config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
Don't declare.
* config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New.
(nvptx_maybe_convert_symbolic_operand): Simplify.
(nvptx_addr_space_from_address): Delete.
(nvptx_print_operand): Adjust 'A' case.

From-SVN: r231016

8 years agore PR tree-optimization/68559 (Excessive peeling for gaps)
Richard Biener [Fri, 27 Nov 2015 14:17:28 +0000 (14:17 +0000)]
re PR tree-optimization/68559 (Excessive peeling for gaps)

2015-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68559
* tree-vect-data-refs.c (vect_analyze_group_access_1): Move
peeling for gap checks ...
* tree-vect-stmts.c (vectorizable_load): ... here and relax
for SLP.
* tree-vect-loop.c (vect_analyze_loop_2): Re-set
LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP.

* gcc.dg/vect/slp-perm-4.c: Adjust again.
* gcc.dg/vect/pr45752.c: Likewise.

From-SVN: r231015

8 years agonvptx-protos.h (nvptx_record_needed_decl): Don't declaree.
Nathan Sidwell [Fri, 27 Nov 2015 13:57:09 +0000 (13:57 +0000)]
nvptx-protos.h (nvptx_record_needed_decl): Don't declaree.

* config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't
declaree.
* config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier.
(nvptx_record_fndecl): Don't return value, remove force
argyment. Require fndecl.
(nvptx_record_libfunc): New.
(nvptx_record_needed_decl): Deteermine how to record decl here.
(nvptx_maybe_record_fnsym): New.
(nvptx_expand_call): Don't record libfuncs here,
(nvptx_maybe_convert_symbolic_operand): Use
nvptx_maye_record_fnsym.
(nvptx_assemble_integer): Reimplement with single switch.
(nvptx_output_call_insn): Register libfuncs here.
(nvptx_file_end): Adjust  nvptx_record_fndecl call.
* config/nvptx/nvptx.md (expand_movdi): Don't call
nvptx_record_needed_decl.

From-SVN: r231013

8 years agore PR rtl-optimization/68250 (wrong code at -O2 and -O3 on x86_64-linux-gnu (in 64...
Jakub Jelinek [Fri, 27 Nov 2015 12:12:35 +0000 (13:12 +0100)]
re PR rtl-optimization/68250 (wrong code at -O2 and -O3 on x86_64-linux-gnu (in 64-bit mode))

PR rtl-optimization/68250
* gcc.c-torture/execute/pr68250.c: New test.

From-SVN: r231009

8 years ago* gcc.dg/pr63568.c: Convert to GIMPLE.
Marek Polacek [Fri, 27 Nov 2015 11:38:46 +0000 (11:38 +0000)]
* gcc.dg/pr63568.c: Convert to GIMPLE.

From-SVN: r231007

8 years agore PR tree-optimization/68553 (gcc.dg/vect/pr68445.c FAILs)
Richard Biener [Fri, 27 Nov 2015 11:17:51 +0000 (11:17 +0000)]
re PR tree-optimization/68553 (gcc.dg/vect/pr68445.c FAILs)

2015-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68553
* tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR
generation for 1:1 permutations.
(vect_transform_slp_perm_load): Detect 1:1 permutations.

From-SVN: r231006

8 years agoBe more careful about barriers when speculating conditional stores.
Bernd Schmidt [Fri, 27 Nov 2015 10:05:36 +0000 (10:05 +0000)]
Be more careful about barriers when speculating conditional stores.

* gimple.h (nonbarrier_call_p): Declare.
* gimple.c (nonbarrier_call_p): New function.
* tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children):
Also increment call phase for ASMs with vdef and potential barrier
calls.

From-SVN: r231005

8 years ago[RTL-ifcvt] Reject insns that are multiple_sets
Kyrylo Tkachov [Fri, 27 Nov 2015 09:52:09 +0000 (09:52 +0000)]
[RTL-ifcvt] Reject insns that are multiple_sets

* ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
multiple_sets.
(noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
are not modified by the final modified insns in the basic blocks.

From-SVN: r231004

8 years ago[RTL-ifcvt] PR rtl-optimization/68506: Fix emitting order of insns in IF-THEN-JOIN...
Kyrylo Tkachov [Fri, 27 Nov 2015 09:49:38 +0000 (09:49 +0000)]
[RTL-ifcvt] PR rtl-optimization/68506: Fix emitting order of insns in IF-THEN-JOIN case

PR rtl-optimization/68506
* ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block
first if emit_a exists or then_bb modifies 'b'.  Reindent if-else
blocks.

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

From-SVN: r231003

8 years agoFix memory leak in cilk
Martin Liska [Fri, 27 Nov 2015 09:36:20 +0000 (10:36 +0100)]
Fix memory leak in cilk

PR c++/68312
* c-array-notation.c (fix_builtin_array_notation_fn):
Use release_vec_vec instead of vec::release.
(build_array_notation_expr): Likewise.
(fix_conditional_array_notations_1): Likewise.
(fix_array_notation_expr): Likewise.
(fix_array_notation_call_expr): Likewise.
PR c++/68312
* cp-array-notation.c (expand_sec_reduce_builtin):
Likewise.
(create_array_refs): Replace argument with const reference.
(expand_an_in_modify_expr): Likewise.
(cp_expand_cond_array_notations): Likewise.
(expand_unary_array_notation_exprs): Likewise.
PR c++/68312
* array-notation-common.c (cilkplus_extract_an_triplets):
Release vector of vectors.
* cilk.c (gimplify_cilk_spawn): Free allocated memory.
PR c++/68312
* vec.h (release_vec_vec): New function.

From-SVN: r231001

8 years agore PR tree-optimization/68552 (ICE in in expand_expr_real_2 with -O2 -ftree-vectorize)
Jakub Jelinek [Fri, 27 Nov 2015 09:01:20 +0000 (10:01 +0100)]
re PR tree-optimization/68552 (ICE in in expand_expr_real_2 with -O2 -ftree-vectorize)

PR tree-optimization/68552
* optabs.c (expand_vec_perm_1): Move vec_shr handling from here...
(expand_vec_perm): ... here.  Do it regardless of vec_perm_const_optab
or whether v0 == v1.

From-SVN: r231000

8 years agore PR c/63326 (whether a #pragma is a statement depends on the type of pragma)
Jakub Jelinek [Fri, 27 Nov 2015 08:59:55 +0000 (09:59 +0100)]
re PR c/63326 (whether a #pragma is a statement depends on the type of pragma)

PR c/63326
* c-parser.c (c_parser_compound_statement_nostart): If
last_label is true, use pragma_stmt instead of pragma_compound
as second c_parser_pragma argument.
(c_parser_omp_ordered, c_parser_omp_target_update,
c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
false as second argument to c_parser_skip_to_pragma_eol after
diagnosing standalone directives used in pragma_stmt context.

* parser.c (cp_parser_statement): Clear in_compound after labels.

* gcc.dg/gomp/barrier-2.c (f2): Expect another error after label.
* c-c++-common/gomp/pr63326.c: New test.

* testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
in between case label and OpenMP standalone directives.
* testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.

From-SVN: r230999

8 years agoReplace spaces with tabs and remove trailing whitespaces
Martin Liska [Fri, 27 Nov 2015 08:43:56 +0000 (09:43 +0100)]
Replace spaces with tabs and remove trailing whitespaces

* tree-ssa-uninit.c: Fix whitespaces in the source file.
The change is just automatical.

From-SVN: r230998

8 years agoFix memory leak in tree-chkp.c
Martin Liska [Fri, 27 Nov 2015 08:39:00 +0000 (09:39 +0100)]
Fix memory leak in tree-chkp.c

* tree-chkp.c (chkp_make_static_bounds): Release buffer
used for string.

From-SVN: r230997

8 years agoFix parser memory leak in cilk_simd_fn_info
Martin Liska [Fri, 27 Nov 2015 08:37:44 +0000 (09:37 +0100)]
Fix parser memory leak in cilk_simd_fn_info

* parser.c (cp_parser_late_parsing_cilk_simd_fn_info):
Release tokens.

From-SVN: r230996

8 years agoFix memory leak in loop_vec_info
Martin Liska [Fri, 27 Nov 2015 08:37:23 +0000 (09:37 +0100)]
Fix memory leak in loop_vec_info

* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
Do not release memory for comp_alias_ddrs.
* tree-vect-loop.c (destroy_loop_vec_info): Release
the memory for all loop_vec_info.

From-SVN: r230995

8 years agoFix memory leaks in IPA devirt
Martin Liska [Fri, 27 Nov 2015 08:36:52 +0000 (09:36 +0100)]
Fix memory leaks in IPA devirt

* ipa-devirt.c (ipa_devirt): Use auto_vec instead
of a local-scope vec.
(struct final_warning_record): Use auto_vec instead
of vec.

From-SVN: r230994

8 years agore PR tree-optimization/68553 (gcc.dg/vect/pr68445.c FAILs)
Richard Biener [Fri, 27 Nov 2015 08:31:44 +0000 (08:31 +0000)]
re PR tree-optimization/68553 (gcc.dg/vect/pr68445.c FAILs)

2015-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68553
* tree-vect-slp.c (vect_get_mask_element): Remove.
(vect_transform_slp_perm_load): Implement in a simpler way.

* gcc.dg/vect/pr45752.c: Adjust.
* gcc.dg/vect/slp-perm-4.c: Likewise.

From-SVN: r230993

8 years agoDaily bump.
GCC Administrator [Fri, 27 Nov 2015 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r230990

8 years agoCorrectly handle ARM targets.
Martin Sebor [Thu, 26 Nov 2015 23:31:32 +0000 (23:31 +0000)]
Correctly handle ARM targets.

* g++.dg/init/new45.C (cookie_size): New constant set to a value
appropriate for the target.
(operator new[]): Use it.

From-SVN: r230987

8 years ago[PR67753] adjust for padding when bypassing memory in assign_parm_setup_block
Alexandre Oliva [Thu, 26 Nov 2015 21:57:40 +0000 (21:57 +0000)]
[PR67753] adjust for padding when bypassing memory in assign_parm_setup_block

Storing a register in memory as a full word and then accessing the
same memory address under a smaller-than-word mode amounts to
right-shifting of the register word on big endian machines.  So, if
BLOCK_REG_PADDING chooses upward padding for BYTES_BIG_ENDIAN, and
we're copying from the entry_parm REG directly to a pseudo, bypassing
any stack slot, perform the shifting explicitly.

This fixes the miscompile of function_return_val_10 in
gcc.target/aarch64/aapcs64/func-ret-4.c for target aarch64_be-elf
introduced in the first patch for 67753.

for  gcc/ChangeLog

PR rtl-optimization/67753
PR rtl-optimization/64164
* function.c (assign_parm_setup_block): Right-shift
upward-padded big-endian args when bypassing the stack slot.

From-SVN: r230985

8 years agoMIPS/GCC/doc: Reorder `-mcompact-branches='
Maciej W. Rozycki [Thu, 26 Nov 2015 20:50:54 +0000 (20:50 +0000)]
MIPS/GCC/doc: Reorder `-mcompact-branches='

Move the `-mcompact-branches=' option out of the middle of a block of
floating-point options.  The option is not related to FP in any way.
Place it immediately below other branch instruction selection options.

* doc/invoke.texi (Option Summary) <MIPS Options>: Reorder
`-mcompact-branches='.
(MIPS Options): Likewise.

From-SVN: r230984

8 years agoFix whitespacing.
Mike Stump [Thu, 26 Nov 2015 20:48:29 +0000 (20:48 +0000)]
Fix whitespacing.

From-SVN: r230983

8 years ago* Makefile.in (build/genmatch.o): Depend on internal-fn.def.
Jakub Jelinek [Thu, 26 Nov 2015 20:00:33 +0000 (21:00 +0100)]
* Makefile.in (build/genmatch.o): Depend on internal-fn.def.

From-SVN: r230982

8 years agore PR c++/67238 ([C++11][C++14]cc1plus crash for nested decltype expression in parame...
Paolo Carlini [Thu, 26 Nov 2015 18:43:47 +0000 (18:43 +0000)]
re PR c++/67238 ([C++11][C++14]cc1plus crash for nested decltype expression in parameter pack in trailing return type when '-g' enabled)

2015-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67238
* g++.dg/cpp0x/pr67238.C: New.

From-SVN: r230981

8 years agopr67876.C: Remove duplicate content.
Martin Sebor [Thu, 26 Nov 2015 18:01:02 +0000 (18:01 +0000)]
pr67876.C: Remove duplicate content.

gcc/testsuite/
* g++.dg/pr67876.C: Remove duplicate content.

From-SVN: r230980

8 years agocp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location to start of loop...
Andreas Arnez [Thu, 26 Nov 2015 17:52:01 +0000 (17:52 +0000)]
cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location to start of loop body instead of start of loop.

gcc/cp/ChangeLog:

2015-11-26  Andreas Arnez  <arnez@linux.vnet.ibm.com>

* cp-gimplify.c (genericize_cp_loop): Change LOOP_EXPR's location
to start of loop body instead of start of loop.

gcc/testsuite/ChangeLog:

2015-11-26  Andreas Arnez  <arnez@linux.vnet.ibm.com>

* g++.dg/guality/pr67192.C: New test.

From-SVN: r230979

8 years agoinstall.texi (Prerequisites): Increase ISL requirement to 0.14 or 0.15.
David Edelsohn [Thu, 26 Nov 2015 16:57:23 +0000 (16:57 +0000)]
install.texi (Prerequisites): Increase ISL requirement to 0.14 or 0.15.

        * doc/install.texi (Prerequisites): Increase ISL requirement to
        0.14 or 0.15.

From-SVN: r230978

8 years agoEnsure another pretty-printer test uses C++98 mode
Jonathan Wakely [Thu, 26 Nov 2015 16:25:55 +0000 (16:25 +0000)]
Ensure another pretty-printer test uses C++98 mode

* testsuite/libstdc++-prettyprinters/debug.cc: Add -std=gnu++98 to
dg-options and avoid use of uniform-init.

From-SVN: r230977

8 years agolibitm: Use multiplicative hashing in the multi-lock TM method.
Torvald Riegel [Thu, 26 Nov 2015 16:10:54 +0000 (16:10 +0000)]
libitm: Use multiplicative hashing in the multi-lock TM method.

* method-ml.cc (ml_mg): Use multiplicative instead of simple hashing.
(ml_wt_dispatch::pre_write): Adapt.
(ml_wt_dispatch::pre_load): Likewise.

From-SVN: r230975

8 years agoEnsure pretty-printer test uses C++98 mode
Jonathan Wakely [Thu, 26 Nov 2015 15:42:47 +0000 (15:42 +0000)]
Ensure pretty-printer test uses C++98 mode

* testsuite/libstdc++-prettyprinters/simple.cc: Add -std=gnu++98 to
dg-options and avoid use of uniform-init.

From-SVN: r230973

8 years ago[AArch64] Add NEON intrinsics vqrdmlah_lane and vqrdmlsh_lane.
Matthew Wahab [Thu, 26 Nov 2015 15:19:57 +0000 (15:19 +0000)]
[AArch64] Add NEON intrinsics vqrdmlah_lane and vqrdmlsh_lane.

        gcc/
* gcc/config/aarch64/arm_neon.h
(vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New.
(vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New.
(vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
(vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New.
(vqrdmlah_lane_s16, vqrdmlah_lane_s32): New.
(vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New.
(vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New.
(vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New.
(vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New.
(vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New.
(vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New.
(vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New.

        gcc/testsuite
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlXh_lane.inc: New file,
support code for vqrdml{as}h_lane tests.
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlah_lane.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlsh_lane.c: New.

From-SVN: r230972

8 years ago[AArch64] Add NEON intrinsics vqrdmlah and vqrdmlsh.
Matthew Wahab [Thu, 26 Nov 2015 15:13:02 +0000 (15:13 +0000)]
[AArch64] Add NEON intrinsics vqrdmlah and vqrdmlsh.

        gcc/
* gcc/config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
(vqrdmlahq_s16, vqrdmlahq_s32): New.
(vqrdmlsh_s16, vqrdmlsh_s32): New.
(vqrdmlshq_s16, vqrdmlshq_s32): New.

        gcc/testsuite
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlXh.inc: New file,
support code for vqrdml{as}h tests.
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlah.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vqrdmlsh.c: New.

From-SVN: r230971

8 years ago[AArch64][dejagnu] Dejagnu support for ARMv8.1 Adv.SIMD.
Matthew Wahab [Thu, 26 Nov 2015 15:06:04 +0000 (15:06 +0000)]
[AArch64][dejagnu] Dejagnu support for ARMv8.1 Adv.SIMD.

        gcc/testsuite
* lib/target-supports.exp (add_options_for_arm_v8_1a_neon): New.
(check_effective_target_arm_arch_FUNC_ok)
(add_options_for_arm_arch_FUNC)
(check_effective_target_arm_arch_FUNC_multilib): Add "armv8.1-a"
to the list to be generated.
(check_effective_target_arm_v8_1a_neon_ok_nocache): New.
(check_effective_target_arm_v8_1a_neon_ok): New.
(check_effective_target_arm_v8_1a_neon_hw): New.

From-SVN: r230970

8 years ago[AArch64] Add ACLE feature macro for ARMv8.1 Adv.SIMD instructions.
Matthew Wahab [Thu, 26 Nov 2015 14:59:10 +0000 (14:59 +0000)]
[AArch64] Add ACLE feature macro for ARMv8.1 Adv.SIMD instructions.

* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
ARM_FEATURE_QRDMX.

From-SVN: r230969

8 years agoDWARF: fix loc. descr. generation for DW_AT_static_link
Pierre-Marie de Rodat [Thu, 26 Nov 2015 14:56:24 +0000 (14:56 +0000)]
DWARF: fix loc. descr. generation for DW_AT_static_link

gcc/ChangeLog:

PR debug/53927
* tree-nested.c (finalize_nesting_tree_1): Append a field to
hold the frame base address.
* dwarf2out.c (gen_subprogram_die): Generate for
DW_AT_static_link a location description that computes the value
of this field.

From-SVN: r230968

8 years agoRevert "Improve verification of loop->latch in verify_loop_structure"
Tom de Vries [Thu, 26 Nov 2015 14:35:27 +0000 (14:35 +0000)]
Revert "Improve verification of loop->latch in verify_loop_structure"

2015-11-26  Tom de Vries  <tom@codesourcery.com>

revert:
2015-11-25  Tom de Vries  <tom@codesourcery.com>

* cfgloop.c (find_single_latch): New function, factored out of ...
(flow_loops_find): ... here.
(verify_loop_structure): Improve verification of loop->latch.
* cfgloop.h (find_single_latch): Declare.
* omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.

From-SVN: r230967

8 years agoaarch64-simd-builtins.def: Add missing changes from r230962.
Matthew Wahab [Thu, 26 Nov 2015 14:17:04 +0000 (14:17 +0000)]
aarch64-simd-builtins.def: Add missing changes from r230962.

* config/aarch64/aarch64-simd-builtins.def:
Add missing changes from r230962.

From-SVN: r230966

8 years agonvptx.c (write_func_decl_from_insn): Replace callee arg with name.
Nathan Sidwell [Thu, 26 Nov 2015 14:13:28 +0000 (14:13 +0000)]
nvptx.c (write_func_decl_from_insn): Replace callee arg with name.

* config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee
arg with name.  Don't deal with split regs.  Tweak formatting.
(nvptx_expand_call): Adjust write_func_decl_from_insn call.
(nvptx_output_call_insn): Don't deal with split regs here.

testsuite/
* gcc.target/nvptx/proto-1.c: Adjust expected asm.

From-SVN: r230965

8 years agore PR tree-optimization/68555 (gcc.dg/vect/bb-slp-10.c FAILs)
Richard Biener [Thu, 26 Nov 2015 14:01:26 +0000 (14:01 +0000)]
re PR tree-optimization/68555 (gcc.dg/vect/bb-slp-10.c FAILs)

2015-11-26  Richard Biener  <rguenther@suse.de>

PR testsuite/68555
* gcc.dg/vect/bb-slp-10.c: Adjust pattern, use target selector
and not XFAIL.

From-SVN: r230963

8 years ago[AArch64] Add builtins for ARMv8.1 Adv.SIMD instructions.
Matthew Wahab [Thu, 26 Nov 2015 13:57:42 +0000 (13:57 +0000)]
[AArch64] Add builtins for ARMv8.1 Adv.SIMD instructions.

* config/aarch64/aarch64-simd-builtins.def
(sqrdmlah, sqrdmlsh): New.
(sqrdmlah_lane, sqrdmlsh_lane): New.
(sqrdmlah_laneq, sqrdmlsh_laneq): New.

From-SVN: r230962

8 years agore PR tree-optimization/68554 (gcc.dg/vect/bb-slp-subgroups-2.c FAILs)
Richard Biener [Thu, 26 Nov 2015 13:51:40 +0000 (13:51 +0000)]
re PR tree-optimization/68554 (gcc.dg/vect/bb-slp-subgroups-2.c FAILs)

2015-11-26  Richard Biener  <rguenther@suse.de>

PR testsuite/68554
* gcc.dg/vect/bb-slp-subgroups-2.c: Require vect_perm.

From-SVN: r230961

8 years ago[AArch64] Add sqrdmah, sqrdmsh instructions.
Matthew Wahab [Thu, 26 Nov 2015 13:50:47 +0000 (13:50 +0000)]
[AArch64] Add sqrdmah, sqrdmsh instructions.

* config/aarch64/aarch64-simd.md
(aarch64_sqmovun<mode>): Fix some white-space.
(aarch64_<sur>qmovun<mode>): Likewise.
(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New.
(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New.
(aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New.
* config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New.
(UNSPEC_SQRDMLSH): New.
(SQRDMLH_AS): New.
(rdma_as): New.

From-SVN: r230959

8 years ago* g++.dg/tree-ssa/pr61034.C: Scan tree dumps also for alpha*-*-*.
Uros Bizjak [Thu, 26 Nov 2015 13:50:19 +0000 (14:50 +0100)]
* g++.dg/tree-ssa/pr61034.C: Scan tree dumps also for alpha*-*-*.

From-SVN: r230958

8 years agore PR tree-optimization/66721 (gcc.target/i386/pr61403.c FAILs)
Richard Biener [Thu, 26 Nov 2015 13:46:59 +0000 (13:46 +0000)]
re PR tree-optimization/66721 (gcc.target/i386/pr61403.c FAILs)

2015-11-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66721
* tree-vect-loop.c (vect_analyze_loop_2): Compute scalar
iteration cost earlier.  Re-do analysis without SLP when
vectorization using SLP fails and without has a chance to succeed.

From-SVN: r230956

8 years agogenmatch.c (dt_simplify::gen_1): For generic wrap all multi-result-use captures in...
Richard Biener [Thu, 26 Nov 2015 13:45:45 +0000 (13:45 +0000)]
genmatch.c (dt_simplify::gen_1): For generic wrap all multi-result-use captures in a SAVE_EXPR.

2015-11-26  Richard Biener  <rguenther@suse.de>

* genmatch.c (dt_simplify::gen_1): For generic wrap all
multi-result-use captures in a SAVE_EXPR.

From-SVN: r230955

8 years agoFix typo
David Edelsohn [Thu, 26 Nov 2015 13:44:36 +0000 (08:44 -0500)]
Fix typo

From-SVN: r230954

8 years ago[AArch64] Add support for ARMv8.1 Adv.SIMD instructions.
Matthew Wahab [Thu, 26 Nov 2015 13:39:20 +0000 (13:39 +0000)]
[AArch64] Add support for ARMv8.1 Adv.SIMD instructions.

* config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
(TARGET_SIMD_RDMA): New.

From-SVN: r230953

8 years ago* configure: Regenerate.
David Edelsohn [Thu, 26 Nov 2015 13:27:21 +0000 (13:27 +0000)]
* configure: Regenerate.

From-SVN: r230950

8 years ago* configure: Regenerate.
David Edelsohn [Thu, 26 Nov 2015 13:24:19 +0000 (13:24 +0000)]
* configure: Regenerate.

From-SVN: r230949

8 years ago* libtool.m4 (export_symbols_cmds) [AIX]: Add global TLS "L" symbols.
David Edelsohn [Thu, 26 Nov 2015 13:20:59 +0000 (13:20 +0000)]
* libtool.m4 (export_symbols_cmds) [AIX]: Add global TLS "L" symbols.

From-SVN: r230948

8 years agore PR c++/67249 ([concepts] ICE parsing f(pair<auto, concept>))
Paolo Carlini [Thu, 26 Nov 2015 13:14:45 +0000 (13:14 +0000)]
re PR c++/67249 ([concepts] ICE parsing f(pair<auto, concept>))

2015-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67249
* g++.dg/concepts/pr67249.C: New.

From-SVN: r230947

8 years ago[combine] Only restrict pure simplification in mult-extend subst case, allow other...
Kyrylo Tkachov [Thu, 26 Nov 2015 13:07:29 +0000 (13:07 +0000)]
[combine] Only restrict pure simplification in mult-extend subst case, allow other substitutions

* combine.c (subst): Do not return clobber of zero in widening mult
case.  Just return x unchanged if it is a no-op substitution.

From-SVN: r230946

8 years agore PR testsuite/66799 (gcc.dg/vect/pr20122.c FAILs)
Richard Biener [Thu, 26 Nov 2015 12:15:43 +0000 (12:15 +0000)]
re PR testsuite/66799 (gcc.dg/vect/pr20122.c FAILs)

2015-11-26  Richard Biener  <rguenther@suse.de>

PR testsuite/66799
* gcc.dg/vect/pr20122.c (main): Do not align Kernel, do not
vectorize init loop and adjust expected outcome.

From-SVN: r230943

8 years agore PR c++/68527 (ICE with -fdump-ada-spec on invalid C++ 11 code)
Eric Botcazou [Thu, 26 Nov 2015 12:04:50 +0000 (12:04 +0000)]
re PR c++/68527 (ICE with -fdump-ada-spec on invalid C++ 11 code)

PR c++/68527
* c-ada-spec.c (dump_nested_types): Add guard for error_mark_node.
(print_ada_struct_decl): Likewise.

From-SVN: r230942

8 years agore PR testsuite/67203 (FAIL: g++.dg/tree-ssa/pr61034.C -std=gnu++11 scan-tree-dump...
Richard Biener [Thu, 26 Nov 2015 11:53:13 +0000 (11:53 +0000)]
re PR testsuite/67203 (FAIL: g++.dg/tree-ssa/pr61034.C  -std=gnu++11  scan-tree-dump-times fre2 "free" 10)

2015-11-26  Richard Biener  <rguenther@suse.de>

PR testsuite/67203
* g++.dg/tree-ssa/pr61034.C: Make expected optimization result
dependent on PUSH_ARGS_REVERSED.  Drop optimization level and
also monitor final optimization result.

From-SVN: r230940

8 years agore PR rtl-optimization/68249 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
Jakub Jelinek [Thu, 26 Nov 2015 11:52:11 +0000 (12:52 +0100)]
re PR rtl-optimization/68249 (wrong code at -O2 and -O3 on x86_64-linux-gnu)

PR rtl-optimization/68249
PR rtl-optimization/68321
* gcc.c-torture/execute/pr68249.c: New test.
* gcc.c-torture/execute/pr68321.c: New test.

From-SVN: r230939

8 years agore PR target/68416 ([MPX] GCC emits a lot of redundant bndmov instructions)
Ilya Enkovich [Thu, 26 Nov 2015 11:49:20 +0000 (11:49 +0000)]
re PR target/68416 ([MPX] GCC emits a lot of redundant bndmov instructions)

gcc/

2015-11-26  Vladimir Makarov  <vmakarov@redhat.com>

PR target/68416
* config/i386/i386.h (enum reg_class): Add
bounds registers to ALL_REGS.

gcc/testsuite/

2015-11-26  Ilya Enkovich  <enkovich.gnu@gmail.com>

PR target/68416
* gcc.target/i386/mpx/pr68416.c: New test.

From-SVN: r230938

8 years agoBack out latest change.
Eric Botcazou [Thu, 26 Nov 2015 11:17:20 +0000 (11:17 +0000)]
Back out latest change.

From-SVN: r230935

8 years agore PR c++/67313 (ICE: in vague_linkage_p, at cp/decl2.c:1878 with -fno-weak and varia...
Paolo Carlini [Thu, 26 Nov 2015 10:37:33 +0000 (10:37 +0000)]
re PR c++/67313 (ICE: in vague_linkage_p, at cp/decl2.c:1878 with -fno-weak and variadic template)

2015-11-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67313
* g++.dg/cpp0x/no-weak1.C: New.

From-SVN: r230934

8 years agore PR tree-optimization/68128 (A huge regression in Parboil v2.5 OpenMP CUTCP test...
Jakub Jelinek [Thu, 26 Nov 2015 10:18:50 +0000 (11:18 +0100)]
re PR tree-optimization/68128 (A huge regression in Parboil v2.5 OpenMP CUTCP test (2.5 times lower performance))

PR tree-optimization/68128
* tree.h (OMP_CLAUSE_SHARED_READONLY): Define.
* gimplify.c: Include gimple-walk.h.
(enum gimplify_omp_var_data): Add GOVD_WRITTEN.
(omp_notice_variable): Set flags to n->value if n already
exists in target region, but we need to jump to do_outer.
(omp_shared_to_firstprivate_optimizable_decl_p,
omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New
functions.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY
on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
not modified in the body.  Call omp_mark_stores for outer
contexts on OMP_CLAUSE_SHARED clauses if they could be written
in the body or on OMP_CLAUSE_LASTPRIVATE.
(gimplify_adjust_omp_clauses): Add body argument, call
omp_find_stores_{stmt,op} on the body through walk_gimple_seq.
Set OMP_CLAUSE_SHARED_READONLY
on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is
not modified in the body.  Call omp_mark_stores for outer
contexts on OMP_CLAUSE_SHARED clauses if they could be written
in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR
without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION.
(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task,
gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update,
gimplify_expr): Adjust gimplify_adjust_omp_clauses callers.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on
non-local vars or local vars referenced from nested routines.
* omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY
attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE.  Even for
TREE_READONLY, don't call use_pointer_for_field with non-NULL
second argument until we are sure we are keeping OMP_CLAUSE_SHARED.

* gcc.dg/gomp/pr68128-1.c: New test.
* gcc.dg/gomp/pr68128-2.c: New test.

From-SVN: r230932