Commit Graph

150166 Commits

Author SHA1 Message Date
Jakub Jelinek
f051536680 re PR target/78451 (FAIL: gcc.target/i386/sse-22a.c: error: inlining failed in call to always_inline '_mm512_setzero_ps')
PR target/78451
	* config/i386/avx512bwintrin.h (_mm512_setzero_qi,
	_mm512_setzero_hi): Removed.
	(_mm512_maskz_mov_epi16, _mm512_maskz_loadu_epi16,
	_mm512_maskz_mov_epi8, _mm512_maskz_loadu_epi8,
	_mm512_maskz_broadcastb_epi8, _mm512_maskz_set1_epi8,
	_mm512_maskz_broadcastw_epi16, _mm512_maskz_set1_epi16,
	_mm512_mulhrs_epi16, _mm512_maskz_mulhrs_epi16, _mm512_mulhi_epi16,
	_mm512_maskz_mulhi_epi16, _mm512_mulhi_epu16,
	_mm512_maskz_mulhi_epu16, _mm512_maskz_mullo_epi16,
	_mm512_cvtepi8_epi16, _mm512_maskz_cvtepi8_epi16, _mm512_cvtepu8_epi16,
	_mm512_maskz_cvtepu8_epi16, _mm512_permutexvar_epi16,
	_mm512_maskz_permutexvar_epi16, _mm512_avg_epu8, _mm512_maskz_avg_epu8,
	_mm512_maskz_add_epi8, _mm512_maskz_sub_epi8, _mm512_avg_epu16,
	_mm512_maskz_avg_epu16, _mm512_subs_epi8, _mm512_maskz_subs_epi8,
	_mm512_subs_epu8, _mm512_maskz_subs_epu8, _mm512_adds_epi8,
	_mm512_maskz_adds_epi8, _mm512_adds_epu8, _mm512_maskz_adds_epu8,
	_mm512_maskz_sub_epi16, _mm512_subs_epi16, _mm512_maskz_subs_epi16,
	_mm512_subs_epu16, _mm512_maskz_subs_epu16, _mm512_maskz_add_epi16,
	_mm512_adds_epi16, _mm512_maskz_adds_epi16, _mm512_adds_epu16,
	_mm512_maskz_adds_epu16, _mm512_srl_epi16, _mm512_maskz_srl_epi16,
	_mm512_packs_epi16, _mm512_sll_epi16, _mm512_maskz_sll_epi16,
	_mm512_maddubs_epi16, _mm512_maskz_maddubs_epi16, _mm512_unpackhi_epi8,
	_mm512_maskz_unpackhi_epi8, _mm512_unpackhi_epi16,
	_mm512_maskz_unpackhi_epi16, _mm512_unpacklo_epi8,
	_mm512_maskz_unpacklo_epi8, _mm512_unpacklo_epi16,
	_mm512_maskz_unpacklo_epi16, _mm512_shuffle_epi8,
	_mm512_maskz_shuffle_epi8, _mm512_min_epu16, _mm512_maskz_min_epu16,
	_mm512_min_epi16, _mm512_maskz_min_epi16, _mm512_max_epu8,
	_mm512_maskz_max_epu8, _mm512_max_epi8, _mm512_maskz_max_epi8,
	_mm512_min_epu8, _mm512_maskz_min_epu8, _mm512_min_epi8,
	_mm512_maskz_min_epi8, _mm512_max_epi16, _mm512_maskz_max_epi16,
	_mm512_max_epu16, _mm512_maskz_max_epu16, _mm512_sra_epi16,
	_mm512_maskz_sra_epi16, _mm512_srav_epi16, _mm512_maskz_srav_epi16,
	_mm512_srlv_epi16, _mm512_maskz_srlv_epi16, _mm512_sllv_epi16,
	_mm512_maskz_sllv_epi16, _mm512_maskz_packs_epi16, _mm512_packus_epi16,
	_mm512_maskz_packus_epi16, _mm512_abs_epi8, _mm512_maskz_abs_epi8,
	_mm512_abs_epi16, _mm512_maskz_abs_epi16, _mm512_dbsad_epu8,
	_mm512_maskz_dbsad_epu8, _mm512_srli_epi16, _mm512_maskz_srli_epi16,
	_mm512_slli_epi16, _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16,
	_mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16,
	_mm512_maskz_shufflelo_epi16, _mm512_srai_epi16,
	_mm512_maskz_srai_epi16, _mm512_packs_epi32,
	_mm512_maskz_packs_epi32, _mm512_packus_epi32,
	_mm512_maskz_packus_epi32): Use _mm512_setzero_si512 instead of
	_mm512_setzero_qi or _mm512_setzero_hi.
	(_mm512_maskz_alignr_epi8, _mm512_dbsad_epu8,
	_mm512_maskz_dbsad_epu8): Formatting fixes.
	(_mm512_srli_epi16, _mm512_maskz_srli_epi16, _mm512_slli_epi16,
	_mm512_maskz_slli_epi16, _mm512_shufflehi_epi16,
	_mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16,
	_mm512_maskz_shufflelo_epi16, _mm512_srai_epi16,
	_mm512_maskz_srai_epi16): Use _mm512_setzero_si512 instead of
	_mm512_setzero_qi or _mm512_setzero_hi.

From-SVN: r242723
2016-11-22 21:36:35 +01:00
Nathan Sidwell
cacd29beae array-notation-common.c (cilkplus_extract_an_trplets): Fix indentation and formatting.
* array-notation-common.c (cilkplus_extract_an_trplets): Fix
	indentation and formatting.

From-SVN: r242721
2016-11-22 20:12:46 +00:00
Nathan Sidwell
730c9e75a3 gcc-ar.c (main): Fix indentation.
gcc/
	* gcc-ar.c (main): Fix indentation.
	* gcov-io.c (gcov_write_summary): Remove extraneous {...}
	* ggc-page.c (move_ptes_to_front): Fix formatting.
	* hsa-dump.c (dump_has_cfun): Fix indentation.
	* sel-sched-ir.h: Remove trailing blank lines.

	gcc/c-family/
	* array-notation-common.c (cilkplus_extrat_an_triplets): Fix
	indentation.

From-SVN: r242719
2016-11-22 18:44:08 +00:00
Ian Lance Taylor
9d1e3afb54 runtime: rewrite panic/defer code from C to Go
The actual stack unwind code is still in C, but the rest of the code,
    notably all the memory allocation, is now in Go.  The names are changed
    to the names used in the Go 1.7 runtime, but the code is necessarily
    somewhat different.
    
    The __go_makefunc_can_recover function is dropped, as the uses of it
    were removed in https://golang.org/cl/198770044.
    
    Reviewed-on: https://go-review.googlesource.com/33414

From-SVN: r242715
2016-11-22 17:58:04 +00:00
Jakub Jelinek
6c7509bc07 OpenMP loop cloning for SIMT execution
2016-11-22  Jakub Jelinek  <jakub@redhat.com>
            Alexander Monakov  <amonakov@ispras.ru>

	* internal-fn.c (expand_GOMP_USE_SIMT): New function.
	* tree.c (omp_clause_num_ops): OMP_CLAUSE__SIMT_ has 0 operands.
	(omp_clause_code_name): Add _simt_ name.
	(walk_tree_1): Handle OMP_CLAUSE__SIMT_.
	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SIMT_.
	* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__SIMT_.
	(scan_omp_simd): New function.
	(scan_omp_1_stmt): Use it in target regions if needed.
	(omp_max_vf): Don't max with omp_max_simt_vf.
	(lower_rec_simd_input_clauses): Use omp_max_simt_vf if
	OMP_CLAUSE__SIMT_ is present.
	(lower_rec_input_clauses): Compute maybe_simt from presence of
	OMP_CLAUSE__SIMT_.
	(lower_lastprivate_clauses): Likewise.
	(expand_omp_simd): Likewise.
	(execute_omp_device_lower): Lower IFN_GOMP_USE_SIMT.
	* internal-fn.def (GOMP_USE_SIMT): New internal function.
	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__SIMT_.

Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>

From-SVN: r242714
2016-11-22 20:56:43 +03:00
Joseph Myers
ad4a77a11c * es.po, fr.po: Update.
From-SVN: r242711
2016-11-22 17:07:47 +00:00
Alexander Monakov
9669b00bfb OpenMP offloading to NVPTX: middle-end changes
* internal-fn.c (expand_GOMP_SIMT_LANE): New.
	(expand_GOMP_SIMT_VF): New.
	(expand_GOMP_SIMT_LAST_LANE): New.
	(expand_GOMP_SIMT_ORDERED_PRED): New.
	(expand_GOMP_SIMT_VOTE_ANY): New.
	(expand_GOMP_SIMT_XCHG_BFLY): New.
	(expand_GOMP_SIMT_XCHG_IDX): New.
	* internal-fn.def (GOMP_SIMT_LANE): New.
	(GOMP_SIMT_VF): New.
	(GOMP_SIMT_LAST_LANE): New.
	(GOMP_SIMT_ORDERED_PRED): New.
	(GOMP_SIMT_VOTE_ANY): New.
	(GOMP_SIMT_XCHG_BFLY): New.
	(GOMP_SIMT_XCHG_IDX): New.
	* omp-low.c (omp_maybe_offloaded_ctx): New, outlined from...
	(create_omp_child_function): ...here.  Set "omp target entrypoint"
	or "omp declare target" attribute based on is_gimple_omp_offloaded.
	(omp_max_simt_vf): New.  Use it...
	(omp_max_vf): ...here.
	(lower_rec_input_clauses): Add reduction lowering for SIMT execution.
	(lower_lastprivate_clauses): Likewise, for "lastprivate" lowering.
	(lower_omp_ordered): Likewise, for "ordered" lowering.
	(expand_omp_simd): Add SIMT transforms.
	(pass_data_lower_omp): Add PROP_gimple_lomp_dev.
	(execute_omp_device_lower): New.
	(pass_data_omp_device_lower): New.
	(pass_omp_device_lower): New pass.
	(make_pass_omp_device_lower): New.
	* passes.def (pass_omp_device_lower): Position new pass.
	* tree-pass.h (PROP_gimple_lomp_dev): Define.
	(make_pass_omp_device_lower): Declare.

From-SVN: r242710
2016-11-22 19:57:29 +03:00
Jakub Jelinek
9435cd52b3 re PR target/78451 (FAIL: gcc.target/i386/sse-22a.c: error: inlining failed in call to always_inline '_mm512_setzero_ps')
PR target/78451
	* gcc.target/i386/sse-22.c: Add avx5124fmaps,avx5124vnniw to
	GCC target pragma before including immintrin.h.

From-SVN: r242708
2016-11-22 17:54:13 +01:00
Jakub Jelinek
a25a788762 re PR target/78451 (FAIL: gcc.target/i386/sse-22a.c: error: inlining failed in call to always_inline '_mm512_setzero_ps')
PR target/78451
	* config/i386/avx512vlintrin.h (_mm_setzero_di): Removed.
	(_mm_maskz_mov_epi64): Use _mm_setzero_si128 instead of
	_mm_setzero_di.
	(_mm_maskz_load_epi64): Likewise.
	(_mm_setzero_hi): Removed.
	(_mm_maskz_loadu_epi64): Use _mm_setzero_si128 instead of
	_mm_setzero_di.
	(_mm_abs_epi64, _mm_maskz_abs_epi64, _mm_maskz_srl_epi64,
	_mm_maskz_unpackhi_epi64, _mm_maskz_unpacklo_epi64,
	_mm_maskz_compress_epi64, _mm_srav_epi64, _mm_maskz_srav_epi64,
	_mm_maskz_sllv_epi64, _mm_maskz_srlv_epi64, _mm_rolv_epi64,
	_mm_maskz_rolv_epi64, _mm_rorv_epi64, _mm_maskz_rorv_epi64,
	_mm_min_epi64, _mm_max_epi64, _mm_max_epu64, _mm_min_epu64,
	_mm_lzcnt_epi64, _mm_maskz_lzcnt_epi64, _mm_conflict_epi64,
	_mm_maskz_conflict_epi64, _mm_sra_epi64, _mm_maskz_sra_epi64,
	_mm_maskz_sll_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64,
	_mm_ror_epi64, _mm_maskz_ror_epi64, _mm_alignr_epi64,
	_mm_maskz_alignr_epi64, _mm_srai_epi64, _mm_maskz_slli_epi64):
	Likewise.
	(_mm_cvtepi32_epi8, _mm256_cvtepi32_epi8, _mm_cvtsepi32_epi8,
	_mm256_cvtsepi32_epi8, _mm_cvtusepi32_epi8, _mm256_cvtusepi32_epi8,
	_mm_cvtepi32_epi16, _mm256_cvtepi32_epi16, _mm_cvtsepi32_epi16,
	_mm256_cvtsepi32_epi16, _mm_cvtusepi32_epi16, _mm256_cvtusepi32_epi16,
	_mm_cvtepi64_epi8, _mm256_cvtepi64_epi8, _mm_cvtsepi64_epi8,
	_mm256_cvtsepi64_epi8, _mm_cvtusepi64_epi8, _mm256_cvtusepi64_epi8,
	_mm_cvtepi64_epi16, _mm256_cvtepi64_epi16, _mm_cvtsepi64_epi16,
	_mm256_cvtsepi64_epi16, _mm_cvtusepi64_epi16, _mm256_cvtusepi64_epi16,
	_mm_cvtepi64_epi32, _mm256_cvtepi64_epi32, _mm_cvtsepi64_epi32,
	_mm256_cvtsepi64_epi32, _mm_cvtusepi64_epi32, _mm256_cvtusepi64_epi32,
	_mm_maskz_set1_epi32, _mm_maskz_set1_epi64): Formatting fixes.
	(_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128
	instead of _mm_setzero_hi.
	(_mm256_permutex_pd, _mm256_maskz_permutex_epi64, _mm256_insertf32x4,
	_mm256_maskz_insertf32x4, _mm256_inserti32x4, _mm256_maskz_inserti32x4,
	_mm256_extractf32x4_ps, _mm256_maskz_extractf32x4_ps,
	_mm256_shuffle_i32x4, _mm256_maskz_shuffle_i32x4, _mm256_shuffle_f64x2,
	_mm256_maskz_shuffle_f64x2, _mm256_shuffle_f32x4,
	_mm256_maskz_shuffle_f32x4, _mm256_maskz_shuffle_pd,
	_mm_maskz_shuffle_pd, _mm256_maskz_shuffle_ps, _mm_maskz_shuffle_ps,
	_mm256_maskz_srli_epi32, _mm_maskz_srli_epi32, _mm_maskz_srli_epi64,
	_mm256_mask_slli_epi32, _mm256_maskz_slli_epi32, _mm256_mask_slli_epi64,
	_mm256_maskz_slli_epi64, _mm256_roundscale_ps,
	_mm256_maskz_roundscale_ps, _mm256_roundscale_pd,
	_mm256_maskz_roundscale_pd, _mm_roundscale_ps, _mm_maskz_roundscale_ps,
	_mm_roundscale_pd, _mm_maskz_roundscale_pd, _mm256_getmant_ps,
	_mm256_maskz_getmant_ps, _mm_getmant_ps, _mm_maskz_getmant_ps,
	_mm256_getmant_pd, _mm256_maskz_getmant_pd, _mm_getmant_pd,
	_mm_maskz_getmant_pd, _mm256_maskz_shuffle_epi32,
	_mm_maskz_shuffle_epi32, _mm256_rol_epi32, _mm256_maskz_rol_epi32,
	_mm_rol_epi32, _mm_maskz_rol_epi32, _mm256_ror_epi32,
	_mm256_maskz_ror_epi32, _mm_ror_epi32, _mm_maskz_ror_epi32,
	_mm_maskz_alignr_epi32, _mm_maskz_alignr_epi64,
	_mm256_maskz_srai_epi32, _mm_maskz_srai_epi32, _mm_srai_epi64,
	_mm_maskz_srai_epi64, _mm256_maskz_permutex_pd,
	_mm256_maskz_permute_pd, _mm256_maskz_permute_ps, _mm_maskz_permute_pd,
	_mm_maskz_permute_ps, _mm256_permutexvar_ps): Formatting fixes.
	(_mm_maskz_slli_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64,
	_mm_ror_epi64, _mm_maskz_ror_epi64): Use _mm_setzero_si128 instead of
	_mm_setzero_di.
	(_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128
	instead of _mm_setzero_hi.
	* config/i386/avx512dqintrin.h (_mm512_broadcast_f64x2,
	_mm512_broadcast_i64x2, _mm512_broadcast_f32x2, _mm512_broadcast_i32x2,
	_mm512_broadcast_f32x8, _mm512_broadcast_i32x8): Formatting fixes.
	(_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use
	_mm_setzero_si128 instead of _mm_setzero_di.
	(_mm512_cvtt_roundpd_epi64, _mm512_mask_cvtt_roundpd_epi64,
	_mm512_maskz_cvtt_roundpd_epi64, _mm512_cvtt_roundpd_epu64,
	_mm512_mask_cvtt_roundpd_epu64, _mm512_maskz_cvtt_roundpd_epu64,
	_mm512_cvtt_roundps_epi64, _mm512_mask_cvtt_roundps_epi64,
	_mm512_maskz_cvtt_roundps_epi64, _mm512_cvtt_roundps_epu64,
	_mm512_mask_cvtt_roundps_epu64, _mm512_maskz_cvtt_roundps_epu64,
	_mm512_cvt_roundpd_epi64, _mm512_mask_cvt_roundpd_epi64,
	_mm512_maskz_cvt_roundpd_epi64, _mm512_cvt_roundpd_epu64,
	_mm512_mask_cvt_roundpd_epu64, _mm512_maskz_cvt_roundpd_epu64,
	_mm512_cvt_roundps_epi64, _mm512_mask_cvt_roundps_epi64,
	_mm512_maskz_cvt_roundps_epi64, _mm512_cvt_roundps_epu64,
	_mm512_mask_cvt_roundps_epu64, _mm512_maskz_cvt_roundps_epu64,
	_mm512_cvt_roundepi64_ps, _mm512_mask_cvt_roundepi64_ps,
	_mm512_maskz_cvt_roundepi64_ps, _mm512_cvt_roundepu64_ps,
	_mm512_mask_cvt_roundepu64_ps, _mm512_maskz_cvt_roundepu64_ps,
	_mm512_cvt_roundepi64_pd, _mm512_mask_cvt_roundepi64_pd,
	_mm512_maskz_cvt_roundepi64_pd, _mm512_cvt_roundepu64_pd,
	_mm512_mask_cvt_roundepu64_pd, _mm512_maskz_cvt_roundepu64_pd,
	_mm512_reduce_pd, _mm512_maskz_reduce_pd, _mm512_reduce_ps,
	_mm512_maskz_reduce_ps, _mm512_extractf32x8_ps,
	_mm512_maskz_extractf32x8_ps, _mm512_extractf64x2_pd,
	_mm512_maskz_extractf64x2_pd, _mm512_extracti32x8_epi32,
	_mm512_maskz_extracti32x8_epi32, _mm512_range_pd,
	_mm512_maskz_range_pd, _mm512_range_ps, _mm512_maskz_range_ps,
	_mm512_range_round_pd, _mm512_maskz_range_round_pd,
	_mm512_range_round_ps, _mm512_maskz_range_round_ps,
	_mm512_maskz_insertf64x2, _mm512_insertf32x8,
	_mm512_maskz_insertf32x8): Formatting fixes.
	(_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use
	_mm_setzero_si128 instead of _mm_setzero_di.
	* config/i386/avx512vldqintrin.h (_mm_cvttpd_epi64,
	_mm_cvttpd_epu64, _mm_cvtpd_epi64, _mm_cvtpd_epu64,
	_mm_cvttps_epi64, _mm_maskz_cvttps_epi64, _mm_cvttps_epu64,
	_mm_maskz_cvttps_epu64, _mm_maskz_mullo_epi64, _mm_cvtps_epi64,
	_mm_maskz_cvtps_epi64, _mm_cvtps_epu64, _mm_maskz_cvtps_epu64,
	_mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64): Use
	_mm_setzero_si128 instead of _mm_setzero_di.
	(_mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64):
	Likewise in macros.
	* config/i386/avx512vlbwintrin.h (_mm_maskz_mov_epi8,
	_mm_maskz_loadu_epi16, _mm_maskz_mov_epi16, _mm_maskz_loadu_epi8,
	_mm_permutexvar_epi16, _mm_maskz_maddubs_epi16): Use
	_mm_setzero_si128 instead of _mm_setzero_hi.
	(_mm_maskz_min_epu16, _mm_maskz_max_epu8, _mm_maskz_max_epi8,
	_mm_maskz_min_epu8, _mm_maskz_min_epi8, _mm_maskz_max_epi16,
	_mm_maskz_max_epu16, _mm_maskz_min_epi16): Use _mm_setzero_si128
	instead of _mm_setzero_di.
	(_mm_dbsad_epu8, _mm_maskz_shufflehi_epi16,
	_mm_maskz_shufflelo_epi16): Use _mm_setzero_si128 instead of
	_mm_setzero_hi.
	(_mm_maskz_shufflehi_epi16, _mm_maskz_shufflelo_epi16,
	_mm_maskz_slli_epi16): Use _mm_setzero_si128 instead of
	_mm_setzero_hi.
	(_mm_maskz_alignr_epi8): Use _mm_setzero_si128 instead of
	_mm_setzero_di.
	(_mm_maskz_mulhi_epi16, _mm_maskz_mulhi_epu16, _mm_maskz_mulhrs_epi16,
	_mm_maskz_mullo_epi16, _mm_srav_epi16, _mm_srlv_epi16,
	_mm_sllv_epi16): Use _mm_setzero_si128 instead of _mm_setzero_hi.

From-SVN: r242707
2016-11-22 17:53:35 +01:00
Carl Love
a0af8668dc rs6000-c.c: Add built-in support for vector compare equal and vector compare not equal.
gcc/ChangeLog:

2016-11-21  Carl Love  <cel@us.ibm.com>

        * config/rs6000/rs6000-c.c: Add built-in support for vector compare
        equal and vector compare not equal.  The vector compares take two
        arguments of type vector bool char, vector bool short, vector bool int,
        vector bool long long with the same return type.
        * doc/extend.texi: Update built-in documentation file for the new
        powerpc built-ins.

gcc/testsuite/ChangeLog:

2016-11-21  Carl Love  <cel@us.ibm.com>

        * gcc.target/powerpc/builtins-3.c: New file to test the new
        built-ins for vector compare equal and vector compare not equal.

From-SVN: r242706
2016-11-22 16:49:02 +00:00
Uros Bizjak
b2b0acbe2b Makefile.in ($(lang_checks_parallelized)): Fix detection of -j argument.
gcc/ChangeLog

	* Makefile.in ($(lang_checks_parallelized)): Fix detection
	of -j argument.

gcc/ada/ChangeLog

	* gcc-interface/Make-lang.in (check-acats): Fix detection
	of -j argument.

libstdc++-v3/ChangeLog

	* testsuite/Makefile.am
	(check-DEJAGNU $(check_DEJAGNU_normal_targets)): Fix detection
	of -j argument.
	* testsuite/Makefile.in: Regenereate.

From-SVN: r242705
2016-11-22 17:33:43 +01:00
Jonathan Wakely
dba814afda PR78465 Remove runtime tests for <atomic> macros
PR libstdc++/78465
	* testsuite/29_atomics/headers/atomic/macros.cc: Replace runtime tests
	with preprocessor conditions.

From-SVN: r242704
2016-11-22 16:31:19 +00:00
Janus Weil
5d382ed61b re PR fortran/78443 ([OOP] Incorrect behavior with non_overridable keyword)
2016-11-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/78443
	* class.c (add_proc_comp): Add a vtype component for non-overridable
	procedures that are overriding.

2016-11-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/78443
	* gfortran.dg/typebound_proc_35.f90: New test case.

From-SVN: r242703
2016-11-22 17:06:46 +01:00
Georg-Johann Lay
4fa33072bf pr30778.c (memset): Use size_t for 3rd parameter in declaration.
gcc/testsuite/
	* gcc.c-torture/execute/pr30778.c (memset): Use size_t for 3rd
	parameter in declaration.

From-SVN: r242702
2016-11-22 15:28:46 +00:00
Georg-Johann Lay
0e721ce73e loop-split.c: Require int32plus.
gcc/testsuite/
	* gcc.dg/loop-split.c: Require int32plus.
	* gcc.dg/stack-layout-dynamic-1.c: Require ptr32plus.

From-SVN: r242701
2016-11-22 15:06:47 +00:00
Bernd Edlinger
88c888f113 pr53447-5.c: Fix test expectations for neon-fpu.
2016-11-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.target/arm/pr53447-5.c: Fix test expectations for neon-fpu.

From-SVN: r242700
2016-11-22 14:57:28 +00:00
Georg-Johann Lay
9d494aac8e builtin-shuffle-1.c (V): Use 4 * int in vector.
gcc/testsuite/
	* c-c++-common/builtin-shuffle-1.c (V): Use 4 * int in vector.

From-SVN: r242697
2016-11-22 14:07:45 +00:00
Thomas Preud'homme
3e0201f014 Add multilib support for embedded bare-metal targets
2016-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config.gcc: Allow new rmprofile value for configure option
    --with-multilib-list.
    * config/arm/t-rmprofile: New file.
    * doc/install.texi (--with-multilib-list): Document new rmprofile value
    for ARM.

From-SVN: r242696
2016-11-22 14:01:57 +00:00
Kyrylo Tkachov
c69fb8161a [ARM] PR target/78439: Update movdi constraints for Cortex-A8 tuning to handle LDRD/STRD
PR target/78439
	* config/arm/vfp.md (*movdi_vfp_cortexa8): Use 'q' constraints for the
	register operand in alternatives 4,5,6.

	* gcc.c-torture/compile/pr78439.c: New test.

From-SVN: r242695
2016-11-22 12:12:05 +00:00
Thomas Preud'homme
4ac52f1614 re PR target/77904 ([ARM Cortex-M0] Frame pointer thrashes registers if assembly statements with "sp" clobber are used)
2016-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR target/77904
    * config/arm/arm.c (thumb1_compute_save_reg_mask): Mark frame pointer
    in save register mask if it is needed.

    gcc/testsuite/
    PR target/77904
    * gcc.target/arm/pr77904.c: New test.

From-SVN: r242693
2016-11-22 10:44:29 +00:00
Toma Tabacu
e4fe8c9f6b MIPS: Add the isa_rev>=2 option to interrupt_handler-bug-1.c.
gcc/testsuite/

	* gcc.target/mips/interrupt_handler-bug-1.c (dg-options): Add
	isa_rev>=2.

From-SVN: r242692
2016-11-22 10:38:51 +00:00
Jakub Jelinek
46a6139530 re PR tree-optimization/78436 (incorrect write to larger-than-type bitfield (signed char x:9))
PR tree-optimization/78436
	* gimple-ssa-store-merging.c (zero_char_buf): Removed.
	(shift_bytes_in_array, shift_bytes_in_array_right,
	merged_store_group::apply_stores): Formatting fixes.
	(clear_bit_region): Likewise.  Use memset.
	(encode_tree_to_bitpos): Formatting fixes.  Fix comment typos - EPXR
	instead of EXPR and inerted instead of inserted.  Use memset instead
	of zero_char_buf.  For !BYTES_BIG_ENDIAN decrease byte_size by 1
	if shift_amnt is 0.

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

From-SVN: r242691
2016-11-22 11:15:43 +01:00
Jakub Jelinek
76a7314dc9 re PR middle-end/78416 (wrong code for division by (u128)~INT64_MAX at -O0)
PR middle-end/78416
	* expmed.c (expand_divmod): Use wide_int for computation of
	op1_is_pow2.  Don't set it if op1 is 0.  Formatting fixes.
	Use size <= HOST_BITS_PER_WIDE_INT instead of
	HOST_BITS_PER_WIDE_INT >= size.

	* gcc.dg/torture/pr78416.c: New test.

From-SVN: r242690
2016-11-22 11:14:21 +01:00
Jakub Jelinek
9b28cb6f0a re PR middle-end/78445 (ICE in maybe_gen_insn, at optabs.c:7014)
PR tree-optimization/78445
	* tree-if-conv.c (tree_if_conversion): If any_pred_load_store or
	any_complicated_phi, version loop even if flag_tree_loop_if_convert is
	1.  Formatting fix.

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

From-SVN: r242689
2016-11-22 11:13:01 +01:00
Szabolcs Nagy
ee8195d985 [PR libgfortran/78449] XFAIL ieee_8.f90 on aarch64 and arm
ARM and AArch64 may not support trapping so runtime and
compile time check can differ.

gcc/testsuite/
	PR libgfortran/78449 
	* gfortran.dg/ieee/ieee_8.f90 (aarch64*gnu, arm*gnu*): Mark xfail.

From-SVN: r242688
2016-11-22 10:06:05 +00:00
Martin Liska
fedf271872 Add sem_item::m_hash_set (PR ipa/78309)
PR ipa/78309
	* ipa-icf.c (void sem_item::set_hash): Update m_hash_set.
	(sem_function::get_hash): Use the new field.
	(sem_function::parse): Remove an argument from ctor.
	(sem_variable::parse): Likewise.
	(sem_variable::get_hash): Use the new field.
	(sem_item_optimizer::read_section): Use new ctor and set hash.
	* ipa-icf.h: _hash is removed from sem_item::sem_item,
	sem_variable::sem_variable, sem_function::sem_function.

From-SVN: r242687
2016-11-22 09:18:37 +00:00
GCC Administrator
876f73136c Daily bump.
From-SVN: r242686
2016-11-22 00:16:22 +00:00
Jeff Law
3ca23cdbf8 re PR target/68538 (ICE in gen_reg_rtx, at emit-rtl.c:1027 when cross-compiling for cris-linux-gnu target)
PR target/68538
	* config/cris/cris.md: Don't call copy_to_mode_reg unless
	can_create_pseudo_p is true.

        PR target/68538
	* gcc.c-torture/compile/pr68538.c: New test.

From-SVN: r242682
2016-11-21 16:24:13 -07:00
Segher Boessenkool
d8fc036893 rs6000: rl[wd]imi without shift/rotate (PR68803)
We didn't have patterns yet for rl[wd]imi insns that do a rotate by 0.
This fixes it.


	PR target/68803
	* config/rs6000/rs6000.md (*rotlsi3_insert_5, *rotldi3_insert_6,
	*rotldi3_insert_7): New define_insns.

From-SVN: r242681
2016-11-21 23:29:34 +01:00
Michael Meissner
d85e598a59 rs6000.md (movdi_internal32): Change constraints so that DImode can be allocated to FP/vector registers in...
[gcc]
2016-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (movdi_internal32): Change constraints
	so that DImode can be allocated to FP/vector registers in more
	cases, and we can avoid direct move operations.  If the register
	needs reloading, prefer GPRs over FP/vector registers.  In the
	case of FPR vs. Altivec registers, prefer FPR registers unless we
	have the ISA 3.0 reg+offset scalar instructions.
	(movdi_internal64): Likewise.

[gcc/testsuite]
2016-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/ppc-round2.c: Allow XSCVDPSXWS and XSCVDPUXWS
	to be generated instead of FCTIWUZ or FCTIWZ.

From-SVN: r242679
2016-11-21 20:35:21 +00:00
Jakub Jelinek
699e8cb7b4 re PR middle-end/67335 (ICE in compiling omp simd function with unused argument)
PR middle-end/67335
	* omp-simd-clone.c (simd_clone_adjust_argument_types): Use NULL prefix
	for tmp simd array if DECL_NAME (parm) is NULL.

	* g++.dg/vect/simd-clone-7.cc: New test.

From-SVN: r242678
2016-11-21 20:17:36 +01:00
Jakub Jelinek
afb3458277 re PR c++/71973 (c++ handles built-in functions inconsistently)
PR c++/71973
	* g++.dg/torture/pr53321.C (size_t): Use __SIZE_TYPE__ instead of
	long unsigned int.
	* g++.dg/torture/pr63512.C (::strlen): Use __SIZE_TYPE__ instead of
	unsigned long.

From-SVN: r242677
2016-11-21 19:55:11 +01:00
Jeff Law
83ad4fac5a re PR target/25128 ([m68k] Suboptimal comparisons against 65536)
PR target/25128
	* config/m68k/predicates.md (swap_peephole_relational_operator): New
	predicate.
	* config/m68k/m68k.md (relational tests against 65535/65536): New
	peephole2.

	PR target/25128
	* gcc.target/m68k/pr25128.c: New test.

From-SVN: r242676
2016-11-21 11:19:12 -07:00
Kyrylo Tkachov
207a08cdd1 Remove dead FIXME
* tree-ssa-loop-prefetch.c: Delete FIXME after the includes.

From-SVN: r242675
2016-11-21 17:22:45 +00:00
Martin Sebor
89990732da Enable -fprintf-return-value by default. Tested on powerpc64le and x86.
gcc/c-family/ChangeLog:

	* c.opt (-fprintf-return-value): Enable by default.

gcc/ChangeLog:

	* doc/invoke.texi (-fprintf-return-value): Document that option
	is enabled by default.

From-SVN: r242674
2016-11-21 10:15:54 -07:00
Georg-Johann Lay
9636feef4d avr-c.c (avr_register_target_pragmas): Use C++ for-loop declaration of loop variable.
gcc/
	* config/avr/avr-c.c (avr_register_target_pragmas): Use C++
	for-loop declaration of loop variable.
	(avr_register_target_pragmas, avr_cpu_cpp_builtins): Same.
	* config/avr/avr.c (avr_popcount_each_byte)
	(avr_init_expanders, avr_regs_to_save, sequent_regs_live)
	(get_sequence_length, avr_prologue_setup_frame, avr_map_metric)
	(avr_expand_epilogue, avr_function_arg_advance)
	(avr_out_compare, avr_out_plus_1, avr_out_bitop, avr_out_fract)
	(avr_rotate_bytes, _reg_unused_after, avr_assemble_integer)
	(avr_adjust_reg_alloc_order, output_reload_in_const)
	(avr_conditional_register_usage, avr_find_unused_d_reg)
	(avr_map_decompose, avr_fold_builtin): Same.

From-SVN: r242672
2016-11-21 16:59:51 +00:00
Rainer Orth
3115f94f7f Don't define libstdc++-internal macros in Solaris 10+ <math.h>
libstdc++-v3:
	* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Update comments.
	(__CORRECT_ISO_CPP11_MATH_H_PROTO): Rename to ...
	(__CORRECT_ISO_CPP11_MATH_H_PROTO_FP): ... this.
	Add test for C++11 <math.h> integral overloads.
	* configure: Regenerate.
	* config.h.in: Regenerate.

	* include/c_global/cmath [__cplusplus >= 201103L]: Reflect
	__CORRECT_ISO_CPP11_MATH_H_PROTO to
	__CORRECT_ISO_CPP11_MATH_H_PROTO_FP rename.
	* include/c_global/cmath [_GLIBCXX_USE_C99_MATH &&
	!_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC && __cplusplus >= 201103L]
	(std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO_INT.
	(std::isfinite): Likewise.
	(std::isinf): Likewise.
	(std::isnan): Likewise.
	(std::isnormal): Likewise.
	(std::signbit): Likewise.
	(std::isgreater): Likewise.
	(std::isgreaterequal): Likewise.
	(std::isless): Likewise.
	(std::islessequal): Likewise.
	(std::islessgreater): Likewise.
	(std::isunordered): Likewise.
	[__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]
	(std::acosh): Likewise.
	(std::asinh): Likewise.
	(std::atanh): Likewise.
	(std::cbrt): Likewise.
	(std::copysign): Likewise.
	(std::erf): Likewise.
	(std::erfc): Likewise.
	(std::exp2): Likewise.
	(std::expm1): Likewise.
	(std::fdim): Likewise.
	(std::fma): Likewise.
	(std::fmax): Likewise.
	(std::fmin): Likewise.
	(std::hypot): Likewise.
	(std::ilogb): Likewise.
	(std::lgamma): Likewise.
	(std::llrint): Likewise.
	(std::llround): Likewise.
	(std::log1p): Likewise.
	(std::log2): Likewise.
	(std::logb): Likewise.
	(std::lrint): Likewise.
	(std::lround): Likewise.
	(std::nearbyint): Likewise.
	(std::nextafter): Likewise.
	(std::nexttoward): Likewise.
	(std::remainder): Likewise.
	(std::remquo): Likewise.
	(std::rint): Likewise.
	(std::round): Likewise.
	(std::scalbln): Likewise.
	(std::scalbn): Likewise.
	(std::tgamma): Likewise.
	(std::trunc): Likewise.
	* include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1 && __cplusplus >=
	201103L]: Reflect __CORRECT_ISO_CPP11_MATH_H_PROTO to
	__CORRECT_ISO_CPP11_MATH_H_PROTO_FP rename.

	fixincludes:
	* inclhack.def (solaris_math_12): New fix.
	(hpux11_fabsf): Replace bypass by *-hp-hpux11* mach selector.
	* fixincl.x: Regenerate.
	* tests/base/math.h [SOLARIS_MATH_12_CHECK]: New test.

From-SVN: r242671
2016-11-21 16:09:47 +00:00
Georg-Johann Lay
6fce001398 avr.c (avr_popcount): Remove static function.
gcc/
	* config/avr/avr.c (avr_popcount): Remove static function.
	(avr_popcount_each_byte, avr_out_bitop): Use popcount_hwi instead.

From-SVN: r242670
2016-11-21 16:04:15 +00:00
Richard Earnshaw
c30752be91 [arm] Remove unimplemented option -macps-float
* arm.opt (mapcs-float): Delete option
	* arm.c (arm_option_override): Remove hunk relating to
	TARGET_APCS_FLOAT.
	* doc/invoke.texi (arm options): Remove documentation for -mapcs-float.

From-SVN: r242669
2016-11-21 15:59:13 +00:00
Richard Sandiford
9713daa015 Handle sibcalls with aggregate returns
We treated this g as a sibling call to f:

      int f (int);
      int g (void) { return f (1); }

but not this one:

      struct s { int i; };
      struct s f (int);
      struct s g (void) { return f (1); }

We treated them both as sibcalls on x86 before the first patch for PR36326,
so I suppose this is a regression of sorts from 4.3.

The patch allows function returns to be local aggregate variables as well
as gimple registers.

gcc/
	* tree-tailcall.c (process_assignment): Simplify the check for
	a valid copy, allowing the source to be a local variable as
	well as an SSA name.
	(find_tail_calls): Allow copies between local variables to follow
	the call.  Allow the result to be stored in any local variable,
	even if it's an aggregate.
	(eliminate_tail_call): Check whether the result is an SSA name
	before updating its SSA_NAME_DEF_STMT.

gcc/testsuite/
	* gcc.dg/tree-ssa/tailcall-7.c: New test.

From-SVN: r242668
2016-11-21 15:52:09 +00:00
David Malcolm
67b5d0b2fe substring_loc info needs default track-macro-expansion (PR preprocessor/78324)
gcc/ChangeLog:
	PR preprocessor/78324
	* input.c (get_substring_ranges_for_loc): Fail gracefully if
	-ftrack-macro-expansion has a value other than 2.

gcc/testsuite/ChangeLog:
	PR preprocessor/78324
	* gcc.dg/plugin/diagnostic-test-string-literals-1.c
	(test_multitoken_macro): New function.
	* gcc.dg/plugin/diagnostic-test-string-literals-3.c: New test
	case.
	* gcc.dg/plugin/diagnostic-test-string-literals-4.c: New test
	case.
	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the new test
	cases.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c (test_sprintf_note):
	Move to...
	* gcc.dg/tree-ssa/builtin-sprintf-warn-4.c: ...here.  Drop
	-ftrack-macro-expansion=0.
	(test_sprintf_note): Remove "P" macro.  Add
	dg-begin/end-multiline-output directives.
	(LINE, buffer, ptr): Copy from builtin-sprintf-warn-1.c.

From-SVN: r242667
2016-11-21 15:50:38 +00:00
Georg-Johann Lay
dd586f9814 target-supports.exp (check_effective_target_tiny): Return 1 for AVR_TINY.
gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_tiny) [avr]:
	Return 1 for AVR_TINY.

From-SVN: r242666
2016-11-21 15:38:02 +00:00
Segher Boessenkool
e51482c9c8 Testcase for PR71785
gcc/testsuite/
	PR rtl-optimization/71785
	* gcc.target/powerpc/pr71785.c: New file.

From-SVN: r242665
2016-11-21 16:15:21 +01:00
Bin Cheng
e0e7aa34ab re PR tree-optimization/78114 (gfortran.dg/vect/fast-math-mgrid-resid.f FAILs)
gcc/testsuite
	PR testsuite/78114
	* gfortran.dg/vect/fast-math-mgrid-resid.f: Add additional
	options.  Refine test by checking predictive commining PHI
	nodes in vectorized loop wrto vector factor.

From-SVN: r242664
2016-11-21 14:58:19 +00:00
Segher Boessenkool
1c7926f64c shrink-wrap: Fix problem with DF checking (PR78400)
With my previous patch the compiler ICEs if you use --enable-checking=df.
This patch fixes it, by calling df_update_entry_exit_and_calls instead of
df_update_entry_block_defs and df_update_exit_block_uses.


	PR rtl-optimization/78400
	* shrink-wrap.c (try_shrink_wrapping_separate): Call
	df_update_entry_exit_and_calls instead of df_update_entry_block_defs
	and df_update_exit_block_uses.

From-SVN: r242663
2016-11-21 15:44:21 +01:00
Bernd Edlinger
48330c9355 re PR c++/71973 (c++ handles built-in functions inconsistently)
gcc:
2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* doc/invoke.texi (-Wno-builtin-declaration-mismatch): Document the
	new default-enabled warning..
	* builtin-types.def (BT_CONST_TM_PTR): New primitive type.
	(BT_PTR_CONST_STRING): Updated.
	(BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR): Removed.
	(BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR): New function type.
	* builtins.def (DEF_TM_BUILTIN): Disable BOTH_P for TM builtins.
	(strftime): Update builtin function.
	* tree-core.h (TI_CONST_TM_PTR_TYPE): New enum value.
	* tree.h (const_tm_ptr_type_node): New type node.
	* tree.c (free_lang_data, build_common_tree_nodes): Initialize
	const_tm_ptr_type_node.

c-family:
2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* c.opt (-Wbuiltin-declaration-mismatch): New warning.
	* c-common.c (c_common_nodes_and_builtins): Initialize
	const_tm_ptr_type_node.

c:
2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* c-decl.c (diagnose_mismatched_decls): Use
	OPT_Wbuiltin_declaration_mismatch here too.

cp:
2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* decl.c (duplicate_decls): Warn when a built-in function is redefined.
	Don't overload builtin functions with C++ functions.
	Handle const_tm_ptr_type_node like file_ptr_node.
	Copy the TREE_NOTHROW flag unmodified to the old decl.

lto:
2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* lto-lang.c (lto_init): Assert const_tm_ptr_type_node is sane.

testsuite:
2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* g++.dg/pr71973-1.C: New test.
	* g++.dg/pr71973-2.C: New test.
	* g++.dg/pr71973-3.C: New test.
	* g++.dg/lto/pr68811_0.C: Add -w to first lto-options.
	* g++.dg/lookup/extern-c-redecl4.C: Adjust test expectations.
	* g++.old-deja/g++.mike/p700.C: Add -Wno-builtin-declaration-mismatch
	to dg-options.
	* g++.old-deja/g++.other/realloc.C: Likewise.
	* g++.old-deja/g++.other/builtins10.C: Adjust test expectations.

From-SVN: r242662
2016-11-21 14:17:05 +00:00
Bill Schmidt
eeeaf7199a re PR tree-optimization/78413 (ICE in single_pred_edge, at basic-block.h:361)
[gcc]

2016-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/78413
	* tree-if-conv.c (versionable_outer_loop_p): Require that both
	inner and outer loop latches have single predecessors.

[gcc/testsuite]

2016-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/78413
	* gcc.dg/tree-ssa/pr78413.c: New test.

From-SVN: r242661
2016-11-21 14:10:11 +00:00
Georg-Johann Lay
e0706cfb33 re PR target/78093 ([avr] New variable attribute "absdata" and option "-mabsdata" to enable LDS / STS on Reduced Tiny)
PR target/78093
	* config/avr/avr.c (avr_decl_maybe_lds_p): New static function.
	(avr_encode_section_info) [TARGET_ABSDATA && AVR_TINY]: Use it.

From-SVN: r242660
2016-11-21 12:23:14 +00:00
Thomas Preud'homme
e420e419f4 empty_fiq_handler.c: Skip if -mthumb is passed in and target is Thumb-only.
2016-11-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.target/arm/empty_fiq_handler.c: Skip if -mthumb is passed in and
    target is Thumb-only.

From-SVN: r242658
2016-11-21 11:00:22 +00:00
Trevor Saunders
bacca1274c make dead_or_set_{,regno_}p take rtx_insn *
gcc/ChangeLog:

2016-11-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* rtl.h: Adjust prototype.
	* rtlanal.c (dead_or_set_p): Change argument type to rtx_insn *.
	(dead_or_set_regno_p): Likewise.

From-SVN: r242657
2016-11-21 06:16:18 +00:00