Commit Graph

146090 Commits

Author SHA1 Message Date
Christophe Lyon
9d6e7c214f vreinterpret.c: Fix typo in comment.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Fix typo in comment.

From-SVN: r236382
2016-05-18 14:46:23 +02:00
Christophe Lyon
b4dbe40e40 Fix ChangeLog date.
From-SVN: r236381
2016-05-18 14:41:50 +02:00
Christophe Lyon
887687b02e noplt_3.c: Scan for "br\t".
* gcc.target/aarch64/noplt_3.c: Scan for "br\t".
	* gcc.target/aarch64/tail_indirect_call_1.c: Scan for "br\t",
	"blr\t" and switch to scan-assembler-times.

From-SVN: r236377
2016-05-18 14:33:36 +02:00
Richard Biener
524c2492c5 tree-ssa-loop-im.c (determine_max_movement): Properly add condition cost to PHI cost instead of total_cost.
2016-05-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-im.c (determine_max_movement): Properly add
	condition cost to PHI cost instead of total_cost.

From-SVN: r236376
2016-05-18 12:32:46 +00:00
Martin Liska
cf087b415c Set DECL_PT_UID for merged variables in IPA ICF (PR70856).
PR fortran/70856
	* ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
	merged variables.

From-SVN: r236375
2016-05-18 11:48:50 +00:00
Richard Biener
5f84f6b37a lto-streamer.h (LTO_major_version): Bump to 6.
2016-05-18  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_major_version): Bump to 6.

From-SVN: r236374
2016-05-18 11:21:33 +00:00
Segher Boessenkool
fb42ed990f function: Factor out make_*logue_seq
Make new functions make_split_prologue_seq, make_prologue_seq, and
make_epilogue_seq.


	* function.c (make_split_prologue_seq, make_prologue_seq,
	make_epilogue_seq): New functions, factored out from...
	(thread_prologue_and_epilogue_insns): Here.

From-SVN: r236373
2016-05-18 13:07:20 +02:00
Segher Boessenkool
63d0f6ab56 function: Do the CLEANUP_EXPENSIVE after shrink-wrapping, not before
We should do CLEANUP_EXPENSIVE after shrink-wrapping, because shrink-
wrapping creates constructs that CLEANUP_EXPENSIVE can optimise, and
nothing runs CLEANUP_EXPENSIVE later.


	* function.c (rest_of_handle_thread_prologue_and_epilogue): Call
	cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
	of before.  Add a comment.

From-SVN: r236372
2016-05-18 12:58:57 +02:00
Bin Cheng
a1e71b0180 tree-ssa-loop-ivopts.c (get_computation_cost_at): Check inv expression pointer, not pointer to the pointer.
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Check inv
	expression pointer, not pointer to the pointer.

From-SVN: r236371
2016-05-18 10:41:28 +00:00
Jiong Wang
83a5c91041 [testsuite] Guard float64_t with __aarch64__
gcc/testsuite/
        * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: Guard float64_t
        with __aarch64__.
        * gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c: Guard variable
        declarations under __aarch64__ and __ARM_FEATURE_FMA.

From-SVN: r236370
2016-05-18 09:43:04 +00:00
Jakub Jelinek
8ee9116515 sse.md (pbroadcast_evex_isa): New mode attr.
* config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
	(avx2_pbroadcast<mode>): Add another alternative with v instead
	of x constraints in it, using <pbroadcast_evex_isa> isa.
	(avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.

	* gcc.target/i386/avx512bw-vpbroadcast-1.c: New test.
	* gcc.target/i386/avx512bw-vpbroadcast-2.c: New test.
	* gcc.target/i386/avx512bw-vpbroadcast-3.c: New test.
	* gcc.target/i386/avx512vl-vpbroadcast-1.c: New test.
	* gcc.target/i386/avx512vl-vpbroadcast-2.c: New test.
	* gcc.target/i386/avx512vl-vpbroadcast-3.c: New test.

From-SVN: r236369
2016-05-18 11:24:59 +02:00
Jakub Jelinek
cf4d516a50 sse.md (<ssse3_avx2>_palignr<mode>): Use constraint x instead of v in second alternative, add avx512bw alternative.
* config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
	constraint x instead of v in second alternative, add avx512bw
	alternative.

	* gcc.target/i386/avx512vl-vpalignr-3.c: New test.
	* gcc.target/i386/avx512bw-vpalignr-3.c: New test.

From-SVN: r236368
2016-05-18 11:24:15 +02:00
Jakub Jelinek
a4f164221f sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use constraint x instead of v in second alternative, add avx512bw alternative.
* config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
	constraint x instead of v in second alternative, add avx512bw
	alternative.

	* gcc.target/i386/avx512vl-vpshufb-3.c: New test.
	* gcc.target/i386/avx512bw-vpshufb-3.c: New test.

From-SVN: r236367
2016-05-18 11:23:39 +02:00
Jakub Jelinek
7b37ce10ce sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use constraint x instead of v in second alternative, add avx512bw alternative.
* config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
	constraint x instead of v in second alternative, add avx512bw
	alternative.

	* gcc.target/i386/avx512vl-vpmulhrsw-3.c: New test.
	* gcc.target/i386/avx512bw-vpmulhrsw-3.c: New test.

From-SVN: r236366
2016-05-18 11:23:03 +02:00
Jakub Jelinek
fb7cbdebfc sse.md (avx2_pmaddubsw256, [...]): Add avx512bw alternative.
* config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
	avx512bw alternative.

	* gcc.target/i386/avx512bw-vpmaddubsw-3.c: New test.

From-SVN: r236365
2016-05-18 11:22:28 +02:00
Kirill Yukhin
5ae46837e1 i386. Extend static buffers. Fix SF mode operand constraint to `Yv' in storehpd pattern.
gcc/
        * gcc/config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
	array to 128 chars.
	(define_insn "*andnottf3"): Ditto.
	(define_insn "*<code><mode>3"/any_logic): Ditto.
	(define_insn "*<code>tf3"/any_logic): Ditto.
	(define_insn "sse2_storehpd"): Use Yv constraint for scalar
	operand to block AVX-512VL insn variant emit when it is not enabled.

From-SVN: r236364
2016-05-18 09:16:09 +00:00
Kirill Yukhin
1889406050 AVX-512. Use `Yv' for SF mode operand in vec_concat pattern.
gcc/
	* config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
	constraint fot SF mode.

From-SVN: r236363
2016-05-18 09:11:10 +00:00
Petr Murzin
fef31922aa Fix patterns to enable sse-14.c to compile with -masm=intel.
gcc/
        * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
	modifiers.
	(define_insn "rsqrt14<mode>"): Ditto.
	(define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
	(define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
	(define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
	(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
	(define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
	Ditto.
	(define_insn "*avx512f_gatherdi<mode>"): Ditto.
	(define_insn "*avx512f_scatterdi<mode>"): Ditto.
	* config/i386/i386.c (ix86_print_operand): Expand check for size
	override codes for Intel syntax.

Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>

From-SVN: r236362
2016-05-18 09:06:11 +00:00
Richard Biener
c9326aef96 re PR tree-optimization/71168 (ICE in find_uses_to_rename_use (tree-ssa-loop-manip.c:379))
2016-05-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71168
	* tree-loop-distribution.c (distribute_loop): Move *destroy_p
	initialization earlier.

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

From-SVN: r236361
2016-05-18 08:10:20 +00:00
James Greenhalgh
628d13d999 [Patch AArch64] Simplify reduc_plus_scal_v2[sd]f sequence
gcc/

	* config/aarch64/aarch64-simd.md
	(aarch64_reduc_plus_internal<mode>): Rename to...
	(reduc_plus_scal): ...This, and remove previous implementation.

From-SVN: r236360
2016-05-18 08:00:33 +00:00
Kugan Vivekanandarajah
f38748638a Adding the testcase which was not addaed as part of r236356.
gcc/testsuite/ChangeLog:

2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/63586
	* gcc.dg/tree-ssa/pr63586-2.c: New test.
	* gcc.dg/tree-ssa/pr63586.c: New test.

From-SVN: r236359
2016-05-18 07:50:05 +00:00
Richard Biener
9d87bfce00 passes.def: Put late dse and cd_dce in canonical order.
2016-05-18  Richard Biener  <rguenther@suse.de>

	* passes.def: Put late dse and cd_dce in canonical order.

From-SVN: r236358
2016-05-18 07:41:09 +00:00
Jan Hubicka
ec6a1e3532 ipa-inline-transform.c (preserve_function_body_p): Look for first non-thunk clone.
* ipa-inline-transform.c (preserve_function_body_p): Look for
	first non-thunk clone.
	(save_function_body): Save into first non-thunk.
	* lto-cgraph.c (lto_output_edge): When streaming thunk do not look
	up call stmt id.
	(lto_output_node): Inline thunks don't need body in every
	partition.
	* lto-streamer-in.c: Do not fixup thunk clones.
	* cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
	thunks.
	* tree-inline.c (copy_bb): Be prepared for target node to be new after
	folding suceeds.

From-SVN: r236357
2016-05-18 07:12:46 +00:00
Kugan Vivekanandarajah
df8b0a1119 re PR tree-optimization/63586 (x+x+x+x -> 4*x in gimple)
gcc/testsuite/ChangeLog:

2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/63586
	* gcc.dg/tree-ssa/pr63586-2.c: New test.
	* gcc.dg/tree-ssa/pr63586.c: New test.
	* gcc.dg/tree-ssa/reassoc-14.c: Adjust multiplication count.

gcc/ChangeLog:

2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/63586
	* tree-ssa-reassoc.c (transform_add_to_multiply): New.
	(reassociate_bb): Call transform_add_to_multiply.

From-SVN: r236356
2016-05-18 00:58:45 +00:00
Kugan Vivekanandarajah
9b856a0188 aarch64.c (all_extensions): Removed unused static variable.
gcc/ChangeLog:

2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/aarch64/aarch64.c (all_extensions): Removed unused static variable.

From-SVN: r236355
2016-05-18 00:46:58 +00:00
GCC Administrator
4c184bca38 Daily bump.
From-SVN: r236354
2016-05-18 00:16:19 +00:00
Joseph Myers
5506c15675 * da.po: Update.
From-SVN: r236349
2016-05-18 01:13:34 +01:00
Joseph Myers
97b1eafcd0 * da.po, sv.po: Update.
From-SVN: r236347
2016-05-18 01:10:15 +01:00
Nathan Sidwell
2efd67ed19 20030222-1.c: Skip on ptx.
* gcc.c-torture/execute/20030222-1.c: Skip on ptx.
	* gcc.dg/pr68671.c: Fix ptx xfail-if.
	* gcc.dg/torture/pr54261-1.c: Allocate atomic var statically.
	* gcc.dg/torture/type-generic-1.c: Enable UNSAFE for ptx.

From-SVN: r236346
2016-05-17 21:28:11 +00:00
Nathan Sidwell
1988b2c22a nvptx.c (nvptx_function_arg_boundary): New.
* config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
	(TARGET_FUNCTION_ARG_BOUNDARY): Override.

	testsuite/
	* gcc.target/nvptx/abi-vararg-3.c: New.

From-SVN: r236345
2016-05-17 21:16:49 +00:00
Mikhail Maltsev
ad1d92ab9f Fold bit_not through ASR and rotate
gcc/

	PR tree-optimization/54579
	PR middle-end/55299
	* match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.

gcc/testsuite

	PR tree-optimization/54579
	PR middle-end/55299
	* gcc.dg/fold-notrotate-1.c: New test.
	* gcc.dg/fold-notshift-1.c: New test.
	* gcc.dg/fold-notshift-2.c: New test.

From-SVN: r236344
2016-05-17 20:50:22 +00:00
Marek Polacek
47768df837 re PR ipa/71146 (error: __builtin_unreachable or __builtin_trap call with arguments)
PR ipa/71146
	* tree-inline.c (expand_call_inline): Call
	maybe_remove_unused_call_args.

	* g++.dg/ipa/pr71146.C: New test.

From-SVN: r236343
2016-05-17 20:00:41 +00:00
David Malcolm
6b5423a512 jit: gcc diagnostics are jit errors
libgccjit performs numerous checks at the API boundary, but
if these succeed, it ignores errors and other diagnostics emitted
within the core of gcc, and treats the compile of a gcc_jit_context
as having succeeded.

This patch ensures that if any diagnostics are emitted, they
are visible from the libgccjit API, and that the the context is
flagged as having failed.

For now any kind of diagnostic is treated as a jit error,
so warnings and notes also count as errors.

gcc/jit/ChangeLog:
	* dummy-frontend.c: Include diagnostic.h.
	(jit_begin_diagnostic): New function.
	(jit_end_diagnostic): New function.
	(jit_langhook_init): Register jit_begin_diagnostic
	and jit_end_diagnostic with the global_dc.
	* jit-playback.c: Include diagnostic.h.
	(gcc::jit::playback::context::add_diagnostic): New method.
	* jit-playback.h (struct diagnostic_context): Add forward
	declaration.
	(gcc::jit::playback::context::add_diagnostic): New method.

gcc/testsuite/ChangeLog:
	* jit.dg/test-error-array-bounds.c: New test case.

From-SVN: r236342
2016-05-17 19:28:47 +00:00
David Malcolm
f51703a8f8 jit: document gcc_jit_context_new_call_through_ptr
gcc/jit/ChangeLog:
	* docs/topics/expressions.rst (Function calls): Document
	gcc_jit_context_new_call_through_ptr.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r236341
2016-05-17 19:17:19 +00:00
Jim Wilson
18ea359aaf Fix minor doc bugs, signalling typo, major version changes rare.
gcc/
	* doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
	* doc/invoke.texi (-mnan=2008): Change signalling to signaling.
	* doc/md.texi (fmin@var{m}3): Likewise.

From-SVN: r236340
2016-05-17 11:50:22 -07:00
Marc Glisse
c7986356a1 x & C -> x if we know that x & ~C == 0
2016-05-17  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd (X & C): New transformation.

gcc/testsuite/
	* gcc.dg/tree-ssa/and-1.c: New testcase.

From-SVN: r236338
2016-05-17 17:57:27 +00:00
Marc Glisse
d982c5b7b7 ~X & Y to X ^ Y in some cases
2016-05-17  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd (~X & Y): New transformation.

gcc/testsuite/
	* gcc.dg/tree-ssa/pr69270.c: Adjust.
	* gcc.dg/tree-ssa/andnot-1.c: New testcase.

From-SVN: r236337
2016-05-17 17:54:28 +00:00
Marc Glisse
0139ba9332 VRP: range info of new variables
2016-05-17  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* tree-vrp.c (simplify_truth_ops_using_ranges): Set range
	information for new SSA_NAME.
	(simplify_conversion_using_ranges): Get range through get_range_info
	instead of get_value_range.

gcc/testsuite/
	* gcc.dg/tree-ssa/pr69270.c: Adjust.
	* gcc.dg/tree-ssa/vrp99.c: New testcase.

From-SVN: r236336
2016-05-17 17:50:55 +00:00
Jiong Wang
6f2c662329 [AArch64, 4/4] Reimplement vmvn* intrinscis, remove inline assembly
gcc/
	* config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
	Remove inline assembly.
	(vmvn_s16): Likewise.
	(vmvn_s32): Likewise.
	(vmvn_u8): Likewise.
	(vmvn_u16): Likewise.
	(vmvn_u32): Likewise.
	(vmvnq_s8): Likewise.
	(vmvnq_s16): Likewise.
	(vmvnq_s32): Likewise.
	(vmvnq_u8): Likewise.
	(vmvnq_u16): Likewise.
	(vmvnq_u32): Likewise.
	(vmvn_p8): Likewise.
	(vmvnq_p16): Likewise.

From-SVN: r236334
2016-05-17 16:41:18 +00:00
Jiong Wang
daab456213 [AArch64, 3/4] Reimplement multiply by element to get rid of inline assembly
gcc/
	* config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
	Use builtin.
	(vmul_n_s16): Likewise.
	(vmul_n_s32): Likewise.
	(vmul_n_u16): Likewise.
	(vmul_n_u32): Likewise.
	(vmulq_n_f32): Likewise.
	(vmulq_n_f64): Likewise.
	(vmulq_n_s16): Likewise.
	(vmulq_n_s32): Likewise.
	(vmulq_n_u16): Likewise.
	(vmulq_n_u32): Likewise.

gcc/testsuite/
	* gcc.target/aarch64/simd/vmul_elem_1.c: Use intrinsics.

From-SVN: r236333
2016-05-17 16:39:39 +00:00
Jiong Wang
2233003338 [AArch64, 2/4] Extend vector mutiply by element to all supported modes
gcc/
	* config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend to
	all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".

gcc/testsuite/
	* gcc.target/aarch64/simd/vmul_elem_1.c: New.

From-SVN: r236332
2016-05-17 16:37:19 +00:00
Jiong Wang
98b3a5f289 [AArch64, 1/4] Add the missing support of vfms_n_f32, vfmsq_n_f32, vfmsq_n_f64
gcc/
	* config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
	to *aarch64_fma4_elt_from_dup<mode>.
	(*aarch64_fnma4_elt_to_128df): Rename to
	*aarch64_fnma4_elt_from_dup<mode>.
	* config/aarch64/arm_neon.h (vfma_n_f64): New.
	(vfms_n_f32): Likewise.
	(vfms_n_f64): Likewise.
	(vfmsq_n_f32): Likewise.
	(vfmsq_n_f64): Likewise.

gcc/testsuite/
	* gcc.target/aarch64/fmla_intrinsic_1.c: Allow ".d[index]" besides
	".2d[index]" when scan the assembly.
	* gcc.target/aarch64/fmls_intrinsic_1.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: New entry for
	float64x1.
	* gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c: New.

From-SVN: r236331
2016-05-17 16:34:46 +00:00
Gerald Pfeifer
92237f4398 * wide-int.h: Change fixed_wide_int_storage from class to struct.
From-SVN: r236324
2016-05-17 14:56:45 +00:00
Richard Biener
b71b7a8ed8 re PR tree-optimization/71132 (gcc ICE at -O3 on valid code on x86_64-linux-gnu with “seg fault”)
2016-05-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71132
	* tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
	Only add control dependences for blocks in the loop.
	(build_rdg): Adjust.
	(generate_code_for_partition): Return whether loop should
	be destroyed and delay that.
	(distribute_loop): Likewise.
	(pass_loop_distribution::execute): Record loops to be destroyed
	and perform delayed destroying of loops.

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

From-SVN: r236320
2016-05-17 12:53:30 +00:00
Christophe Lyon
3c51ad4678 think1.C: Fix dg-do and dg-skip order.
* g++.dg/inherit/think1.C: Fix dg-do and dg-skip order.

From-SVN: r236319
2016-05-17 14:22:33 +02:00
Kyrylo Tkachov
d20faa6624 [AArch64] PR target/70809: Delete aarch64_vmls<mode> pattern
PR target/70809
	* config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.

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

From-SVN: r236318
2016-05-17 12:15:05 +00:00
James Greenhalgh
978357b05d [Patch AArch64] Delete ASM_OUTPUT_DEF and fallback to default .set directive
gcc/

	* config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.

From-SVN: r236317
2016-05-17 11:10:10 +00:00
Kyrylo Tkachov
b75cc5a487 [AArch64][tests] Skip cpu-diagnostics tests when overriding -mcpu
* gcc.target/aarch64/cpu-diagnostics-1.c: Skip if -mcpu is overriden.
	* gcc.target/aarch64/cpu-diagnostics-2.c: Likewise.
	* gcc.target/aarch64/cpu-diagnostics-3.c: Likewise.
	* gcc.target/aarch64/cpu-diagnostics-4.c: Likewise.

From-SVN: r236316
2016-05-17 10:22:07 +00:00
Ilya Enkovich
b28eb19500 re PR target/71114 (Several test suite failures on x86_64-apple-darwin* after revision r236090)
gcc/

	PR target/71114
	* config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
	insertion point for instructions generated by validize_mem.

gcc/testsuite/

	PR target/71114
	* gcc.target/i386/pr70799-1.c: Fix scan for Darwin.

From-SVN: r236315
2016-05-17 09:28:15 +00:00
Jakub Jelinek
69af4eecb8 re PR sanitizer/71160 (libasan: Backport support for malloc within dlsym)
PR sanitizer/71160
	* asan/asan_malloc_linux.cc: Cherry pick upstream r254395
	and r269633.

From-SVN: r236314
2016-05-17 11:17:54 +02:00