1. 30 Nov, 2015 20 commits
    • re PR target/63870 ([Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly) · 34ea150c
      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
      Charles Baylis committed
    • Handle BUILT_IN_GOMP_PARALLEL in ipa-pta · e0ca27c5
      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
      Tom de Vries committed
    • re PR tree-optimization/68501 (sqrt builtin is not used anymore) · 7b90c63a
      	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
      Jakub Jelinek committed
    • re PR tree-optimization/68592 (ICE in vect_get_vec_def_for_operand, at… · 7a5a0dec
      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
      Richard Biener committed
    • nvptx.c (nvptx_name_replacement): Move earlier. · b699adcc
      	* 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
      Nathan Sidwell committed
    • re PR fortran/68534 (No error on mismatch in number of arguments between… · 0ef5fbc1
      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
      Paul Thomas committed
    • S/390: Testsuite: Add asm scan patterns for -m31. · 02718b32
      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
      Andreas Krebbel committed
    • S/390: Testsuite: Add -mzarch to load-relative-check.c. · 804101ae
      2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/load-relative-check.c: Add -mzarch.
      
      From-SVN: r231070
      Andreas Krebbel committed
    • c-ada-spec.c (print_ada_macros): Remove redundant blank line. · f07862c7
      	* 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
      Eric Botcazou committed
    • * gcc-interface/trans.c (gigi): Fix initialization order. · c8a23c29
      From-SVN: r231068
      Eric Botcazou committed
    • osint.adb: Add use type clause for CRTL.size_t. · 4f852a1a
      	* 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
      Eric Botcazou committed
    • gigi.h (create_var_decl): Adjust prototype. · 2056c5ed
      	* 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
      Eric Botcazou committed
    • gigi.h (is_simple_additive_expression): Declare. · 933a7325
      	* 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
      Eric Botcazou committed
    • ada-tree.h (TYPE_MAX_ALIGN): New macro. · 14ecca2e
      	* 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
      Eric Botcazou committed
    • [AVX-512] Enable QI-mode mask logic patterns on non-AVX-512DQ targets. · 6501d5fe
      gcc/
      	* config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
      	(define_insn "*k<logic><mode>"): Use new iterator.
      
      From-SVN: r231061
      Kirill Yukhin committed
    • re PR target/28115 (possible bug in recog_memoized usage in rs6000.c??) · eadb344f
      	PR target/28115
      	* config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
      	(sparc_adjust_cost): Add missing space.
      
      From-SVN: r231059
      Eric Botcazou committed
    • re PR c/68162 (Incompatible pointer type using a typedef) · cee532f0
      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
      Richard Biener committed
    • tree-if-conv.c (struct ifc_dr): Add new tree base_predicate field. · 6b8320bc
      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
      Venkataramanan Kumar committed
    • Daily bump. · efb72c29
      From-SVN: r231056
      GCC Administrator committed
  2. 29 Nov, 2015 8 commits
  3. 28 Nov, 2015 5 commits
  4. 27 Nov, 2015 7 commits
    • re PR libgomp/68579 (FAIL: libgomp.c/target-32.c execution test) · 8e4e4719
      	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
      Jakub Jelinek committed
    • Copy-edit the Option Summary in invoke.texi · 2c2176f5
      	* 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
      Jonathan Wakely committed
    • re PR rtl-optimization/68536 (LRA ICEs with new arm pattern) · 0b87be09
      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
      Vladimir Makarov committed
    • PR other/61321 - demangler crash on casts in template parameters · 921da198
      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
      Pedro Alves committed
    • Fix FAIL: gcc.c-torture/execute/20050124-1.c -O2 (internal compiler error) · 23e4d0b3
      	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
      Kyrylo Tkachov committed
    • nvptx-protos.h (nvptx_addr_space_from_address): Don't declare. · 7b8edc29
      	* 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
      Nathan Sidwell committed
    • re PR tree-optimization/68559 (Excessive peeling for gaps) · 72c0f643
      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
      Richard Biener committed