Commit Graph

147701 Commits

Author SHA1 Message Date
Kristina Martsenko dde23f43f9 This patchset improves zero extend costs and code generation.
When zero extending a 32-bit register, we emit a "mov", but currently
report the cost of the "mov" incorrectly.

In terms of speed, we currently say the cost is that of an extend
operation. But the cost of a "mov" is the cost of 1 instruction, so fix
that.

In terms of size, we currently say that the "mov" takes 0 instructions.
Fix it by changing it to 1.

Bootstrapped and tested on aarch64-none-elf.

    gcc/
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.

From-SVN: r238820
2016-07-28 14:29:28 +00:00
Wilco Dijkstra 89ac681e18 This patch improves the readability of the prolog and epilog code by moving some code into separate functions.
This patch improves the readability of the prolog and epilog code by moving
some code into separate functions.  There is no difference in generated code.

gcc/
	* config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
	(aarch64_push_reg): New function to push 1 or 2 registers.
	(aarch64_pop_reg): New function to pop 1 or 2 registers.
	(aarch64_expand_prologue): Use aarch64_push_regs.
	(aarch64_expand_epilogue): Use aarch64_pop_regs.

From-SVN: r238818
2016-07-28 14:21:57 +00:00
Yuri Rumyantsev 513d866d5b re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution test)
gcc/

2016-07-28  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/71734
	* tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
	attribute instead of REF_LOOP and use it.
	(ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
	set it for Loops having non-zero safelen attribute.
	(ref_indep_loop_p): Pass zero as initial value for safelen.

gcc/testsuite/

2016-07-28  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/71734
        * g++.dg/vect/pr70729-nest.cc: New test.

From-SVN: r238817
2016-07-28 14:19:18 +00:00
Ilya Enkovich 69cd47a17f re PR middle-end/72657 ([CHKP] internal compiler error: in ix86_expand_builtin)
gcc/

	PR middle-end/72657
	PR target/72683
	* tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
	call using chkp_gimple_call_builtin_p.
	(chkp_copy_bounds_for_assign): Likewise.

From-SVN: r238816
2016-07-28 12:58:37 +00:00
Renlin Li 7c428aa29d [PATCH] Revert Revert r238497 because of PR 71961.
This patch reverts the change for PR 71902 since it causes 178.gagel
miscompile in spec2000 as reported in PR 71961 which was observed in
x86_64, aarch64, powerpc64.

gcc/fortran/ChangeLog:

2016-07-28  Renlin Li  <renlin.li@arm.com>

	Revert
	2016-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* dependency.c (gfc_check_dependency): Use dep_ref.  Handle case
	if identical is true and two array element references differ.
	(gfc_dep_resovler):  Move most of the code to dep_ref.
	(dep_ref):  New function.
	* frontend-passes.c (realloc_string_callback):  Name temporary
	variable "realloc_string".

gcc/testsuite/ChangeLog:

2016-07-28  Renlin Li  <renlin.li@arm.com>

	Revert
	2016-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* gfortran.dg/dependency_47.f90:  New test.

From-SVN: r238815
2016-07-28 11:21:53 +00:00
Trevor Saunders b505225ba4 merge adjust_cost and adjust_cost_2 target hooks
gcc/ChangeLog:

2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config/alpha/alpha.c (alpha_adjust_cost): Adjust.
	* config/arm/arm-protos.h (struct tune_params): Likewise.
	* config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
	(cortex_a9_sched_adjust_cost): Likewise.
	(fa726te_sched_adjust_cost): Likewise.
	(arm_adjust_cost): Likewise.
	* config/bfin/bfin.c (bfin_adjust_cost): Likewise.
	* config/c6x/c6x.c (c6x_adjust_cost): Likewise.
	* config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
	* config/i386/i386.c (ix86_adjust_cost): Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mep/mep.c (mep_adjust_cost): Likewise.
	* config/microblaze/microblaze.c (microblaze_adjust_cost):
	* Likewise.
	* config/mips/mips.c (mips_adjust_cost): Likewise.
	* config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
	* Likewise.
	* config/pa/pa.c (pa_adjust_cost): Likewise.
	* config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
	(rs6000_debug_adjust_cost): Likewise.
	* config/sh/sh.c (sh_adjust_cost): Likewise.
	* config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
	(hypersparc_adjust_cost): Likewise.
	(sparc_adjust_cost): Likewise.
	* config/spu/spu.c (spu_sched_adjust_cost): Likewise.
	* config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
	* config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
	* Likewise.
	* config/visium/visium.c (visium_adjust_cost): Likewise.
	* doc/tm.texi: Regenerate.
	* haifa-sched.c (dep_cost_1): Adjust.
	* target.def: Merge adjust_cost and adjust_cost_2.

From-SVN: r238814
2016-07-28 11:01:49 +00:00
Trevor Saunders 30a7199a19 haifa-sched.c: make twins a auto_vec<rtx_insn *>
gcc/ChangeLog:

2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* haifa-sched.c (add_to_speculative_block): Make twins a vector.

From-SVN: r238813
2016-07-28 11:01:39 +00:00
Trevor Saunders 246af050e7 make pattern_regs a vec
gcc/ChangeLog:

2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* store-motion.c (struct st_expr): Make pattern_regs a vector.
	(extract_mentioned_regs): Append to a vector instead of
	returning a rtx_expr_list.
	(st_expr_entry): Adjust.
	(free_st_expr_entry): Likewise.
	(store_ops_ok): Likewise.
	(store_killed_in_insn): Likewise.
	(find_moveable_store): Likewise.

From-SVN: r238812
2016-07-28 11:01:34 +00:00
Martin Liska 1225d6b113 Introduce no_profile_instrument_function attribute
PR gcov-profile/68025
	* tree-profile.c (tree_profiling): Respect
	no_profile_instrument_function attribute.
	* doc/extend.texi: Document no_profile_instrument_function
	attribute.
	PR gcov-profile/68025
	* c-common.c (handle_no_profile_instrument_function_attribute):
	PR gcov-profile/68025
	* gcc.dg/no_profile_instrument_function-attr-1.c: New test.

From-SVN: r238811
2016-07-28 08:45:29 +00:00
Martin Liska 9bd6a6aebf Add missing file.
From-SVN: r238810
2016-07-28 08:31:54 +00:00
Martin Liska ce84ada358 Add mark_spam.py script
* mark_spam.py: New file.

From-SVN: r238809
2016-07-28 08:31:36 +00:00
Martin Liska e5f5bf35d7 Do not allow make_compound_operation for vector mode
* g++.dg/vect/pr70944.cc: New test.
	PR rtl-optimization/70944
	* combine.c (make_compound_operation):
	Do not allow make_compound_operation for vector mode

From-SVN: r238808
2016-07-28 08:26:51 +00:00
GCC Administrator 5cb6b47352 Daily bump.
From-SVN: r238806
2016-07-28 00:16:16 +00:00
Kugan Vivekanandarajah d671006dcd re PR tree-optimization/71994 (ICE: verify_gimple failed)
gcc/testsuite/ChangeLog:

2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/71994
	* gcc.dg/torture/pr71994.c: New test.

From-SVN: r238803
2016-07-27 23:02:44 +00:00
Kugan Vivekanandarajah 4536610dd4 re PR tree-optimization/71994 (ICE: verify_gimple failed)
gcc/testsuite/ChangeLog:

2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/71994
	* gcc.dg/torture/pr71994.c: New test.

gcc/ChangeLog:

2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/71994
	* tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
	 before calling get_ops.

From-SVN: r238802
2016-07-27 22:45:46 +00:00
Bernd Edlinger ec1e2a4097 defaults.h (LOG2_BITS_PER_UNIT): Move from here...
2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
        * tree.h (LOG2_BITS_PER_UNIT): ...to here.
        (BITS_PER_UNIT_LOG): Remove.
        (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
        * expr.c (expand_assignment): Likewise. 
        * stor-layout.c (initialize_sizetypes): Likewise.

c-family:
2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-common.c (check_user_alignment): Use LOG2_BITS_PER_UNIT instead of
        BITS_PER_UNIT_LOG.

From-SVN: r238800
2016-07-27 20:35:35 +00:00
Michael Meissner 98060bbea8 vector.md (vec_extract<mode>): Change the calling signature of rs6000_expand_vector_extract so that the...
2016-07-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vector.md (vec_extract<mode>): Change the calling
	signature of rs6000_expand_vector_extract so that the element
	number is a RTX instead of a constant integer.
	* config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
	(altivec_expand_vec_ext_builtin): Likewise.
	* config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
	* config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
	MFVSRLD instruction.

From-SVN: r238799
2016-07-27 20:31:57 +00:00
Jonathan Wakely 427f68c6c2 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
From-SVN: r238793
2016-07-27 18:32:45 +01:00
David Malcolm a01fc54920 Move make_location from tree.h/c to input.h/c
For some reason I added make_location and some related functions to
tree.h/c, rather than to input.h/c.  Move them there, so we can use them
without requiring tree, and add some selftest coverage.

gcc/ChangeLog:
	* input.c (get_pure_location): Move here from tree.c.
	(make_location): Likewise.  Add header comment.
	(selftest::test_accessing_ordinary_linemaps): Verify
	pure_location_p, make_location, get_location_from_adhoc_loc and
	get_range_from_loc.
	* input.h (get_pure_location): Move declaration here from tree.h.
	(get_finish): Likewise for inline function.
	(make_location): Likewise for declaration.
	* tree.c (get_pure_location): Move to input.c.
	(make_location): Likewise.
	* tree.h (get_pure_location): Move declaration to tree.h.
	(get_finish): Likewise for inline function.
	(make_location): Likewise for declaration.

libcpp/ChangeLog:
	* include/line-map.h (source_location): Fix line numbers in
	comment.

From-SVN: r238792
2016-07-27 17:21:20 +00:00
Segher Boessenkool 182f2f648a Add missing PR marker to Changelog for 71216 fix
From-SVN: r238790
2016-07-27 18:16:12 +02:00
Prathamesh Kulkarni 8c6961cab0 re PR middle-end/71078 (x/abs(x) -> sign(1.0,x))
2016-07-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR middle-end/71078
	* match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.

testsuite/
	* gcc.dg/tree-ssa/pr71078-1.c: New test-case.
	* gcc.dg/tree-ssa/pr71078-2.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-3.c: Likewise.

From-SVN: r238787
2016-07-27 15:09:10 +00:00
David Malcolm 81a12b7606 Use static_assert for STATIC_ASSERT for C++11 onwards
C++11 has a
  static_assert (COND, MESSAGE)
which gives more readable error messages for STATIC_ASSERT than our
current implementation.

This patch makes us use it if __cplusplus >= 201103L

There's also a provisional static_assert (COND) in C++1z, but presumably
we should wait until that one is fully standardized before using it.

gcc/ChangeLog:
	* system.h (STATIC_ASSERT): Use static_assert if building
	with C++11 onwards.

From-SVN: r238786
2016-07-27 14:49:06 +00:00
Jason Merrill 270430ff3e PR c++/71747 - ICE with self-referential partial spec
* pt.c (get_partial_spec_bindings): Replace tparms and spec_args
	parameters with spec_tmpl.  Call push_tinst_level.
	(most_specialized_partial_spec): Adjust.
	(more_specialized_partial_spec): Adjust.

From-SVN: r238785
2016-07-27 10:31:30 -04:00
Richard Biener 8de22ea0b1 costmodel-pr68961.c: Remove.
2016-07-27  Richard Biener  <rguenther@suse.de>

	* gcc.dg/vect/costmodel/x86_64/costmodel-pr68961.c: Remove.

From-SVN: r238784
2016-07-27 11:11:22 +00:00
Richard Biener dd583351ac re PR tree-optimization/72517 (436.cactusADM: More than 40% regression in O3 and Ofast on AMD bdver4 m/c.)
2016-07-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/72517
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
	Revert change to not compute read-read dependences.

From-SVN: r238783
2016-07-27 11:10:25 +00:00
Richard Biener 5693aed094 predict.c (set_even_probabilities): Make nedges unsigned.
2016-07-27  Richard Biener  <rguenther@suse.de>

	* predict.c (set_even_probabilities): Make nedges unsigned.

From-SVN: r238782
2016-07-27 10:33:02 +00:00
Martin Liska 5d9da222b9 predict.c: merge multi-edges
* gcc.dg/predict-13.c: New test.
	* gcc.dg/predict-14.c: New test.
	* predict.c (set_even_probabilities): Handle unlikely edges.
	(combine_predictions_for_bb): Likewise.

From-SVN: r238781
2016-07-27 08:46:12 +00:00
Senthil Kumar Selvaraj af9e275f45 Use __{U,}INTPTR_TYPE__ to avoid including stdint.h
gcc/testsuite/

	* gcc.dg/torture/pr69352.c: Use  __INTPTR_TYPE__ instead of 
	including stdint.h.
	* gcc.dg/torture/pr71866.c: Use __UINTPTR_TYPE__ isntead of
	including stdint.h.

From-SVN: r238780
2016-07-27 05:22:08 +00:00
Michael Meissner 71abba1e35 re PR target/71869 (__builtin_isgreater raises an invalid exception on PPC64 using __float128 inputs.)
[gcc]
2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/71869
	* config/rs6000/rs6000.c (rs6000_generate_compare): Rework
	__float128 support when we don't have hardware support, so that
	the IEEE built-in functions like isgreater, first call __unordkf3
	to make sure neither operand is a NaN, and if both operands are
	ordered, do the normal comparison.

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

	PR target/71869
	* gcc.target/powerpc/float128-cmp.c: New test to make sure that
	IEEE built-in functions handle quiet and signalling NaNs
	correctly.

From-SVN: r238779
2016-07-27 04:45:59 +00:00
GCC Administrator 2f65c3b337 Daily bump.
From-SVN: r238778
2016-07-27 00:16:13 +00:00
Steven G. Kargl 9cd74e8fa8 re PR fortran/71862 (ICE in gfc_add_component_ref, at fortran/class.c:241)
2016-07-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/71862
	* class.c: Remove assert.  Iterate over component only if non-null.

2016-07-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/71862
	* gfortran.dg/pr71862.f90: New test.

From-SVN: r238774
2016-07-26 22:42:49 +00:00
Martin Sebor 0d48446ff3 pr71675.c: Replace the unsupported c11 target selector with dg-options.
gcc/testsuite/ChangeLog:
	* gcc.dg/atomic/pr71675.c: Replace the unsupported c11 target
	selector with dg-options.

From-SVN: r238766
2016-07-26 14:48:20 -06:00
Nathan Sidwell 9e63c3aab1 Missed changelog entries for commit 238252. Sorry,
2016-07-12  Nathan Sidwell  <nathan@acm.org>

	* config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
	when -mno-pic-data-is-text-relative is in effect, by default.
	* doc/invoke.texi (mpic-data-is-text-relative): Document new
	behavior and clarify.

2016-07-12  Nathan Sidwell  <nathan@acm.org>

	* gcc.target/arm/data-rel-1.c: New.
	* gcc.target/arm/data-rel-2.c: New.
	* gcc.target/arm/data-rel-3.c: New.

From-SVN: r238763
2016-07-26 17:07:26 +00:00
Patrick Palka e04de66743 Minor changes in tree-vrp.c
gcc/ChangeLog:

	* tree-vrp.c (dump_asserts_for): Print loc->expr instead of
	name.
	(extract_code_and_val_from_cond_with_ops): Verify that name is
	either cond_op0 or cond_op1.

From-SVN: r238762
2016-07-26 15:21:29 +00:00
Patrick Palka 524cf1e47a Teach VRP to register assertions along default switch labels (PR18046)
gcc/ChangeLog:

	PR tree-optimization/18046
	* genmodes.c (emit_mode_size_inline): Emit an assert that
	verifies that mode is a valid array index.
	(emit_mode_nuinits_inline): Likewise.
	(emit_mode_inner_inline): Likewise.
	(emit_mode_unit_size_inline): Likewise.
	(emit_mode_unit_precision_inline): Likewise.
	* tree-vrp.c: Include params.h.
	(find_switch_asserts): Register edge assertions for the default
	label which correspond to the anti-ranges of each case label.
	* params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
	* doc/invoke.texi: Document it.

gcc/testsuite/ChangeLog:

	PR tree-optimization/18046
	* gcc.dg/tree-ssa/ssa-dom-thread-6.c: Bump FSM count to 5.
	* gcc.dg/tree-ssa/vrp103.c: New test.
	* gcc.dg/tree-ssa/vrp104.c: New test.

From-SVN: r238761
2016-07-26 15:19:58 +00:00
William Schmidt 100665d8d7 Move ChangeLog entry to the right place
From-SVN: r238760
2016-07-26 14:25:20 +00:00
Bill Schmidt ed26375bcb pr63354.c: Require lp64 since -mprofile-kernel is not legal with -m32.
2016-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/pr63354.c: Require lp64 since
	-mprofile-kernel is not legal with -m32.

From-SVN: r238759
2016-07-26 14:24:16 +00:00
Bill Schmidt 6e281ce309 gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead and unnecessary call to gimple_bb.
2016-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
	and unnecessary call to gimple_bb.

From-SVN: r238758
2016-07-26 14:13:52 +00:00
Richard Biener 0b64ca40f3 re PR rtl-optimization/71984 (wrong code with -O -mavx512cd)
2016-07-26  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/71984
	* simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
	for VOIDmode.

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

From-SVN: r238757
2016-07-26 14:11:21 +00:00
Richard Biener ab2b55c109 re PR tree-optimization/72517 (436.cactusADM: More than 40% regression in O3 and Ofast on AMD bdver4 m/c.)
2016-07-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/72517
	* expmed.c (extract_bit_field_1): Constrain the vector mode
	with element size matching the extraction mode size when
	choosing a better vector mode to do the extraction from.

From-SVN: r238756
2016-07-26 14:07:05 +00:00
Robert Suchanek 9b7937cf8a Add support to run auto-vectorization tests for multiple effective targets.
gcc/testsuite/

	* g++.dg/vect/vect.exp: Add and set new global EFFECTIVE_TARGETS. Call
	g++-dg-runtest via et-dg-runtest.
	* gcc.dg/graphite/graphite.exp: Likewise, but for dg-runtest.
	* gcc.dg/vect/vect.exp: Likewise.
	* gfortran.dg/graphite/graphite.exp: Likewise, but for
	gfortran-dg-runtest.
	* gfortran.dg/vect/vect.exp: Likewise.
	* lib/target-supports.exp (check_mpaired_single_hw_available): New.
	(check_mips_loongson_hw_available): Likewise.
	(check_effective_target_mpaired_single_runtime): Likewise.
	(check_effective_target_mips_loongson_runtime): Likewise.
	(add_options_for_mpaired_single): Likewise.
	(check_effective_target_vect_int): Add global et_index.
	Check and save the supported feature for a target selected by
	the et_index target.  Break long lines where appropriate.  Call
	et-is-effective-target for MIPS with an argument instead of
	check_effective_target_* where appropriate.
	(check_effective_target_vect_intfloat_cvt): Likewise.
	(check_effective_target_vect_uintfloat_cvt): Likewise.
	(check_effective_target_vect_floatint_cvt): Likewise.
	(check_effective_target_vect_floatuint_cvt): Likewise.
	(check_effective_target_vect_simd_clones): Likewise.
	(check_effective_target_vect_shift): ewise.
	(check_effective_target_whole_vector_shift): Likewise.
	(check_effective_target_vect_bswap): Likewise.
	(check_effective_target_vect_shift_char): Likewise.
	(check_effective_target_vect_long): Likewise.
	(check_effective_target_vect_float): Likewise.
	(check_effective_target_vect_double): Likewise.
	(check_effective_target_vect_long_long): Likewise.
	(check_effective_target_vect_no_int_max): Likewise.
	(check_effective_target_vect_no_int_add): Likewise.
	(check_effective_target_vect_no_bitwise): Likewise.
	(check_effective_target_vect_widen_shift): Likewise.
	(check_effective_target_vect_no_align): Likewise.
	(check_effective_target_vect_hw_misalign): Likewise.
	(check_effective_target_vect_element_align): Likewise.
	(check_effective_target_vect_condition): Likewise.
	(check_effective_target_vect_cond_mixed): Likewise.
	(check_effective_target_vect_char_mult): Likewise.
	(check_effective_target_vect_short_mult): Likewise.
	(check_effective_target_vect_int_mult): Likewise.
	(check_effective_target_vect_extract_even_odd): Likewise.
	(check_effective_target_vect_interleave): Likewise.
	(check_effective_target_vect_stridedN): Likewise.
	(check_effective_target_vect_multiple_sizes): Likewise.
	(check_effective_target_vect64): Likewise.
	(check_effective_target_vect_call_copysignf): Likewise.
	(check_effective_target_vect_call_sqrtf): Likewise.
	(check_effective_target_vect_call_btrunc): Likewise.
	(check_effective_target_vect_call_btruncf): Likewise.
	(check_effective_target_vect_call_ceil): Likewise.
	(check_effective_target_vect_call_ceilf): Likewise.
	(check_effective_target_vect_call_floor): Likewise.
	(check_effective_target_vect_call_floorf): Likewise.
	(check_effective_target_vect_call_lceil): Likewise.
	(check_effective_target_vect_call_lfloor): Likewise.
	(check_effective_target_vect_call_nearbyint): Likewise.
	(check_effective_target_vect_call_nearbyintf): Likewise.
	(check_effective_target_vect_call_round): Likewise.
	(check_effective_target_vect_call_roundf): Likewise.
	(check_effective_target_vect_perm): Likewise, but also append *_saved
	to the existing global name to properly cache the result.
	(check_effective_target_vect_perm_byte): Likewise.
	(check_effective_target_vect_perm_short): Likewise.
	(check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise.
	(check_effective_target_vect_widen_sum_hi_to_si): Likewise.
	(check_effective_target_vect_widen_sum_qi_to_hi): Likewise.
	(check_effective_target_vect_widen_sum_qi_to_si): Likewise.
	(check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
	(check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
	(check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
	(check_effective_target_vect_widen_mult_si_to_di_pattern): Likewise.
	(check_effective_target_vect_sdot_qi): Likewise.
	(check_effective_target_vect_udot_qi): Likewise.
	(check_effective_target_vect_sdot_hi): Likewise.
	(check_effective_target_vect_udot_hi): Likewise.
	(check_effective_target_vect_usad_char): Likewise.
	(check_effective_target_vect_pack_trunc): Likewise.
	(check_effective_target_vect_unpack): Likewise.
	(check_effective_target_vect_aligned_arrays): Likewise.
	(check_effective_target_vect_natural_alignment): Likewise.
	(check_effective_target_vector_alignment_reachable): Likewise.
	(check_effective_target_vector_alignment_reachable_for_64bit): Likewise.
	(is-effective-target): Initialize et_index if undefined.
	(et-dg-runtest): New.
	(et-is-effective-target): Likewise.
	(check_vect_support_and_set_flags): Add supported MIPS targets to
	EFFECTIVE_TARGETS list.  Return the number of supported targets.

From-SVN: r238755
2016-07-26 13:20:03 +00:00
Richard Biener 8f63caf682 re PR middle-end/70920 (if ((intptr_t)ptr == 0) doesn't get simplified to if (ptr == 0))
2016-07-26  Richard Biener  <rguenther@suse.de>
	    Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>

	PR middle-end/70920
	* match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
	pattern.

testsuite/
	* gcc.dg/pr70920-1.c: New test-case.
	* gcc.dg/pr70902-2.c: Likewise.
	* gcc.dg/pr70920-3.c: Likewise.
	* gcc.dg/pr70920-4.c: Likewise
	* gcc.dg/tree-ssa/ssa-dom-branch-1.c: Change scan-tree-dump-times to
	2 instead of 3.

Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>

From-SVN: r238754
2016-07-26 13:10:33 +00:00
Richard Biener c4f820552a update_version_svn: Ignore the GCC 4.9 branch.
2016-07-26  Richard Biener  <rguenther@suse.de>

	* update_version_svn: Ignore the GCC 4.9 branch.

From-SVN: r238753
2016-07-26 12:30:18 +00:00
Richard Biener 7055b2bbf1 crontab: Remove entry for the GCC 4.9 branch.
2016-07-26  Richard Biener  <rguenther@suse.de>

	* crontab: Remove entry for the GCC 4.9 branch.

From-SVN: r238752
2016-07-26 12:27:16 +00:00
Trevor Saunders b46e8e6aa4 add [cd]tors to scc_info
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-ssa-structalias.c (struct scc_info): Change types of
	members to auto_sbitmap and auto_vec.
	(scc_info::scc_info): New constructor.
	(scc_info::~scc_info): New destructor.
	(init_scc_info): Remove.
	(free_scc_info): Remove.
	(find_indirect_cycles): Adjust.
	(perform_var_substitution): Likewise.
	(free_var_substitution_info): Likewise.

From-SVN: r238751
2016-07-26 10:44:31 +00:00
Trevor Saunders 61801db927 add a constructor to elim_graph
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-outof-ssa.c (struct elim_graph): Change type of members
	to auto_vec and auto_sbitmap.
	(elim_graph::elim_graph): New constructor.
	(delete_elim_graph): Remove.
	(expand_phi_nodes): Adjust.

From-SVN: r238750
2016-07-26 10:44:25 +00:00
Trevor Saunders c8b1ebd997 remove elim_graph typedef
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-outof-ssa.c (struct elim_graph): Remove typedef.
	(new_elim_graph): Adjust.
	(clear_elim_graph): Likewise.
	(delete_elim_graph): Likewise.
	(elim_graph_size): Likewise.
	(elim_graph_add_node): Likewise.
	(elim_graph_add_edge): Likewise.
	(elim_graph_remove_succ_edge): Likewise.
	(eliminate_name): Likewise.
	(eliminate_build): Likewise.
	(elim_forward): Likewise.
	(elim_unvisited_predecessor): Likewise.
	(elim_backward): Likewise.
	(elim_create): Likewise.
	(eliminate_phi): Likewise.
	(expand_phi_nodes): Likewise.

From-SVN: r238749
2016-07-26 10:44:15 +00:00
Trevor Saunders 7ba9e72de9 use auto_sbitmap in various places
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* bt-load.c (compute_out): Use auto_sbitmap class.
	(link_btr_uses): Likewise.
	* cfganal.c (mark_dfs_back_edges): Likewise.
	(post_order_compute): Likewise.
	(inverted_post_order_compute): Likewise.
	(pre_and_rev_post_order_compute_fn): Likewise.
	(single_pred_before_succ_order): Likewise.
	* cfgexpand.c (pass_expand::execute): Likewise.
	* cfgloop.c (verify_loop_structure): Likewise.
	* cfgloopmanip.c (fix_bb_placements): Likewise.
	(remove_path): Likewise.
	(update_dominators_in_loop): Likewise.
	* cfgrtl.c (break_superblocks): Likewise.
	* ddg.c (check_sccs): Likewise.
	(create_ddg_all_sccs): Likewise.
	* df-core.c (df_worklist_dataflow): Likewise.
	* dse.c (dse_step3): Likewise.
	* except.c (eh_region_outermost): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* gcse.c (prune_expressions): Likewise.
	(prune_insertions_deletions): Likewise.
	* gimple-ssa-backprop.c (backprop::~backprop): Likewise.
	* graph.c (draw_cfg_nodes_no_loops): Likewise.
	* ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
	* lcm.c (compute_earliest): Likewise.
	(compute_farthest): Likewise.
	* loop-unroll.c (unroll_loop_constant_iterations): Likewise.
	(unroll_loop_runtime_iterations): Likewise.
	(unroll_loop_stupid): Likewise.
	* lower-subreg.c (decompose_multiword_subregs): Likewise.
	* lra-lives.c: Likewise.
	* lra.c (lra): Likewise.
	* modulo-sched.c (schedule_reg_moves): Likewise.
	(optimize_sc): Likewise.
	(get_sched_window): Likewise.
	(sms_schedule_by_order): Likewise.
	(check_nodes_order): Likewise.
	(order_nodes_of_sccs): Likewise.
	(order_nodes_in_scc): Likewise.
	* recog.c (split_all_insns): Likewise.
	* regcprop.c (pass_cprop_hardreg::execute): Likewise.
	* reload1.c (reload): Likewise.
	* sched-rgn.c (haifa_find_rgns): Likewise.
	(split_edges): Likewise.
	(compute_trg_info): Likewise.
	* sel-sched.c (init_seqno): Likewise.
	* store-motion.c (remove_reachable_equiv_notes): Likewise.
	* tree-into-ssa.c (update_ssa): Likewise.
	* tree-ssa-live.c (live_worklist): Likewise.
	* tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
	* Likewise.
	(try_peel_loop): Likewise.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
	* Likewise.
	* tree-ssa-pre.c (compute_antic): Likewise.
	* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
	* tree-stdarg.c (reachable_at_most_once): Likewise.
	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
	* var-tracking.c (vt_find_locations): Likewise.

From-SVN: r238748
2016-07-26 10:44:08 +00:00
Trevor Saunders 62e2078514 add auto_sbitmap class
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* sbitmap.h (auto_sbitmap): New class.

From-SVN: r238747
2016-07-26 10:43:58 +00:00
Alan Modra 3ef7d2236b [RS6000] push_secondary_reload ICE
PR target/72103
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
	sri->t_icode.

From-SVN: r238744
2016-07-26 19:57:34 +09:30