Commit Graph

142726 Commits

Author SHA1 Message Date
Ryan Burn
a0c0e716fa re PR c++/68434 ([concepts] function tsubst sets TYPE_CANONICAL before setting a type's PLACEHOLDER_TYPE_CONSTRAINTS)
PR c++/68434

	* pt.c (tsubst): Set PLACEHOLDER_TYPE_CONSTRAINTS before
	calling canonical_type_parameter.

From-SVN: r230909
2015-11-25 17:13:23 -05:00
Jason Merrill
75729cff1e lambda.c (maybe_add_lambda_conv_op): Only set no_sanitize_undefined if SANITIZE_NULL.
* lambda.c (maybe_add_lambda_conv_op): Only set
	no_sanitize_undefined if SANITIZE_NULL.

From-SVN: r230908
2015-11-25 16:34:00 -05:00
Tom de Vries
b5f34b425a Add pass_oacc_kernels pass group in passes.def
2015-11-25  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (pass_expand_omp_ssa::clone): New function.
	* passes.def: Add pass_oacc_kernels pass group.
	* tree-ssa-loop-ch.c (pass_ch::clone): New function.

	* g++.dg/tree-ssa/copyprop-1.C: Update after adding new dce1.
	* gcc.dg/pr23911.c: Same.
	* gcc.dg/tree-ssa/20030709-2.c: Same.
	* gcc.dg/tree-ssa/20030731-2.c: Same.
	* gcc.dg/tree-ssa/20040729-1.c: Same.
	* gcc.dg/tree-ssa/cfgcleanup-1.c: Same.
	* gcc.dg/tree-ssa/loop-36.c: Same.
	* gcc.dg/tree-ssa/pr21086.c: Same.
	* gcc.dg/tree-ssa/ssa-dce-1.c: Same.
	* gcc.dg/tree-ssa/ssa-dce-2.c: Same.
	* gcc.dg/vect/pr26359.c: Same.
	* c-c++-common/restrict-2.c: Update after adding new lim1.
	* c-c++-common/restrict-4.c: Same.
	* g++.dg/tree-ssa/pr33615.C: Same.
	* g++.dg/tree-ssa/restrict1.C: Same.
	* gcc.dg/tm/pub-safety-1.c: Same.
	* gcc.dg/tm/reg-promotion.c: Same.
	* gcc.dg/tree-ssa/20050314-1.c: Same.
	* gcc.dg/tree-ssa/loop-32.c: Same.
	* gcc.dg/tree-ssa/loop-33.c: Same.
	* gcc.dg/tree-ssa/loop-34.c: Same.
	* gcc.dg/tree-ssa/loop-35.c: Same.
	* gcc.dg/tree-ssa/loop-7.c: Same.
	* gcc.dg/tree-ssa/pr23109.c: Same.
	* gcc.dg/tree-ssa/restrict-3.c: Same.
	* gcc.dg/tree-ssa/restrict-5.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-1.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-10.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-11.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-12.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-2.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-3.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-6.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-7.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-8.c: Same.
	* gcc.dg/tree-ssa/ssa-lim-9.c: Same.
	* gcc.dg/tree-ssa/structopt-1.c: Same.
	* gfortran.dg/pr32921.f: Same.
	* g++.dg/tree-ssa/pr19637.C: Update after adding new dom1.
	* g++.dg/tree-ssa/pr61009.C: Same.
	* g++.dg/tree-ssa/ssa-dom.C: Same.
	* gcc.dg/pr20115-1.c: Same.
	* gcc.dg/tree-prof/20050826-2.c: Same.
	* gcc.dg/tree-prof/cmpsf-1.c: Same.
	* gcc.dg/tree-ssa/20030821-1.c: Same.
	* gcc.dg/tree-ssa/20030922-2.c: Same.
	* gcc.dg/tree-ssa/20031022-1.c: Same.
	* gcc.dg/tree-ssa/20040615-1.c: Same.
	* gcc.dg/tree-ssa/20040624-1.c: Same.
	* gcc.dg/tree-ssa/pr21417.c: Same.
	* gcc.dg/tree-ssa/pr61607.c: Same.
	* gcc.dg/tree-ssa/slsr-27.c: Same.
	* gcc.dg/tree-ssa/slsr-28.c: Same.
	* gcc.dg/tree-ssa/slsr-29.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-branch-1.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-cse-3.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-1.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-2a.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-2b.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-2c.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-2d.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-2e.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-2f.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-5.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-6.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Same.
	* gcc.dg/tree-ssa/ssa-thread-12.c: Same.
	* gcc.dg/tree-ssa/vrp47.c: Same.
	* gcc.dg/tree-ssa/copy-headers.c: Update after adding ch1.
	* gcc.dg/tree-ssa/foldconst-2.c: Same.
	* gcc.dg/tree-ssa/loop-40.c: Same.
	* gcc.dg/gomp/notify-new-function-3.c: Update after adding ompexpssa1.

From-SVN: r230907
2015-11-25 21:26:37 +00:00
Tom de Vries
896522eec5 Add pass_oacc_kernels
2015-11-25  Tom de Vries  <tom@codesourcery.com>

	* tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2):
	Declare.
	* tree-ssa-loop.c (gate_oacc_kernels): New static function.
	(pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data.
	(class pass_oacc_kernels, class pass_oacc_kernels2): New pass.
	(make_pass_oacc_kernels, make_pass_oacc_kernels2): New function.

From-SVN: r230906
2015-11-25 21:26:24 +00:00
Paolo Carlini
faadf84ceb constexpr-array13.C: Fix.
2015-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp0x/constexpr-array13.C: Fix.

From-SVN: r230903
2015-11-25 20:46:25 +00:00
Jan Hubicka
ed7dc894d7 timevar.def (TV_IPA_LTO_DECOMPRESS, [...]): New.
* timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS,
	TV_IPA_LTO_OUTPUT): New.
	* lto-compress.c: Include timevar.h
	(lto_end_compression, lto_end_uncompression): Add timers.
	* langhooks.c: Include timevar.h
	(lhd_append_data): Add timer.

From-SVN: r230902
2015-11-25 20:00:47 +00:00
David Edelsohn
72ad6d3339 * gfortran.dg/nint_p7.f90: New testcase.
From-SVN: r230898
2015-11-25 14:39:19 -05:00
Jason Merrill
5546e16045 re PR sanitizer/67941 (calls on function pointer from a captureless lambda cause ubsan warning)
PR c++/67941
	* lambda.c (maybe_add_lambda_conv_op): Mark _FUN as
	no_sanitize_undefined.

From-SVN: r230897
2015-11-25 13:58:11 -05:00
Jason Merrill
917124c302 cp-ubsan.c (cp_ubsan_instrument_vptr_p): Use do_ubsan_in_current_function.
* cp-ubsan.c (cp_ubsan_instrument_vptr_p): Use
	do_ubsan_in_current_function.

From-SVN: r230896
2015-11-25 13:58:06 -05:00
Jan Hubicka
c217bac5d4 varasm.c (default_elf_asm_output_limited_string, [...]): Replace fprintf by putc.
* varasm.c (default_elf_asm_output_limited_string,
	default_elf_asm_output_ascii): Replace fprintf by putc.

From-SVN: r230895
2015-11-25 18:12:51 +00:00
Vladimir Makarov
6c051d60a9 re PR rtl-optimization/67954 (internal compiler error: in patch_jump_insn, at cfgrtl.c:1303)
2015-11-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/67954
	* lra-constraints.c (curr_insn_transform): Add check on scratch
	pseudo when change class to NO_REGS.  Add an assert.

From-SVN: r230894
2015-11-25 17:58:35 +00:00
Nathan Sidwell
df1bddedd4 nvptx.md (load_arg_reg<mode>): Arg number constraint is 'n'.
* config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
	constraint is 'n'.
	* config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg
	number.
	(nvptx_write_function_decl): Number args from 0.
	(nvptx_declare_function_name): Likewise.
	(nvptx_function_incoming_arg): Likewise.
	(nvptx_output_call_insn): Correct formatting.

From-SVN: r230889
2015-11-25 17:33:30 +00:00
David Sherwood
ccb57bb090 optabs.def: Add new optabs fmax_optab/fmin_optab.
2015-11-25  David Sherwood  <david.sherwood@arm.com>

        * optabs.def: Add new optabs fmax_optab/fmin_optab.
        * internal-fn.def: Add new fmax/fmin internal functions.
        * doc/md.texi: Add fmin and fmax patterns.

From-SVN: r230888
2015-11-25 17:12:28 +00:00
Markus Trippelsdorf
c2127564ef re PR c++/68087 (ICE with constexpr in array with negative index)
/cp
2015-11-25  Markus Trippelsdorf  <markus@trippelsdorf.de>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/68087
	* constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
	tree_to_shwi to avoid ICEs.

/testsuite
2015-11-25  Markus Trippelsdorf  <markus@trippelsdorf.de>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/68087
	* g++.dg/cpp0x/constexpr-array13.C: New.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r230886
2015-11-25 16:40:16 +00:00
Arnaud Charlet
8e2d104ba2 [multiple changes]
2015-11-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatlink.adb (Gnatlink): Do not reinstate -fsjlj for the linker
	from the switches saved in the ALI file but from the exception
	settings.

2015-11-25  Arnaud Charlet  <charlet@adacore.com>

	* lib-xref-spark_specific.adb
	(Add_SPARK_Scope): Take entry families into account.
	* a-exetim.ads, a-exetim-default.ads, a-exetim-mingw.ads (Clock,
	Clock_For_Interrupts): preconditions added.
	* a-extiin.ads (Clock): preconditions added.
	* par-ch3.adb (P_Declarative_Items): In case of misplaced
	aspect specifications, ensure that flag Done is properly set to
	continue parsing.

From-SVN: r230879
2015-11-25 16:30:09 +01:00
Arnaud Charlet
7b52257cfa [multiple changes]
2015-11-25  Arnaud Charlet  <charlet@adacore.com>

	* exp_util.adb (Remove_Side_Effects): Minimize extra temporaries
	and use of 'Reference when needed.

2015-11-25  Doug Rupp  <rupp@adacore.com>

	* sigtramp-vxworks-target.inc (__x86_64__): Restore context for the
	sake of uniformity.
	* init.c (__gnat_inum_to_ivec): Add some casting to avoid
	warnings when sizeof(long) != sizeof(int)

2015-11-25  Yannick Moy  <moy@adacore.com>

	* lib-xref-spark_specific.adb (SPARK_Entities): Add entries for
	consideration.
	(Add_SPARK_Scope): Take tasks into account.
	(Detect_And_Add_SPARK_Scope): Take tasks into account.
	(Enclosing_Subprogram_Or_Library_Package): Take tasks into account.

From-SVN: r230878
2015-11-25 16:16:44 +01:00
Arnaud Charlet
e9c12b91f4 [multiple changes]
2015-11-25  Bob Duff  <duff@adacore.com>

	* sem_elab.adb (Check_Internal_Call_Continue): Code clean ups.

2015-11-25  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.ads (Has_Compatible_Alignment): Add Layout_Done
	parameter.
	* sem_util.adb (Has_Compatible_Alignment): Likewise.
	(Has_Compatible_Alignment_Internal): Likewise.	Do not set the
	result to Unknown for packed types if Layout_Done is true.
	* checks.adb (Apply_Address_Clause_Check): Adjust call and
	pass False to Has_Compatible_Alignment.
	* sem_ch13.adb (Validate_Address_Clauses): Likewise but pass True.

From-SVN: r230877
2015-11-25 16:14:27 +01:00
Arnaud Charlet
3429710e69 [multiple changes]
2015-11-25  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: When <target>-gnat is called with switch -P
	and a GPR tool is invoked, invoke the GPR tool with switch
	--target=<target>.

2015-11-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* opt.adb, bcheck.adb: Minor reformatting.

From-SVN: r230876
2015-11-25 16:10:52 +01:00
Arnaud Charlet
ccaca7e9f0 [multiple changes]
2015-11-25  Jerome Lambourg  <lambourg@adacore.com>

	* init.c: Enable the signal trampoline on x86_64-vx7
	* sigtramp-vxworks-target.inc: Implement the signal trampoline
	for x86_64
	* tracebak.c: Remove the hook to use the generic
	unwinder on x86_64-vx7.

2015-11-25  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: When "gnat name -P" is called, invoke gprname
	directly if available.

From-SVN: r230875
2015-11-25 16:09:38 +01:00
Tristan Gingold
d75a7b1f32 init.c (__gnat_is_stack_guard): Do not use mach calls for IOS simulator.
2015-11-25  Tristan Gingold  <gingold@adacore.com>

	* init.c (__gnat_is_stack_guard): Do not use mach calls for
	IOS simulator.

From-SVN: r230874
2015-11-25 16:07:12 +01:00
Steven G. Kargl
55250ed79f re PR fortran/68227 (ICE on using variable limit in forall header (gfc_do_allocate))
2015-11-25  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/68227
    * trans-stmt.c (gfc_do_allocate): Convert gcc_assert argument into 
    into part of conditional statement.

From-SVN: r230873
2015-11-25 15:04:33 +00:00
Ilmir Usmanov
aa81272c9f re PR fortran/63858 (fixed form OpenACC directive ICE with -fopenacc -fopenmp)
PR fortran/63858

	gcc/fortran/
	* scanner.c (skip_oacc_attribute): Remove continue_flag parameter.
	Rename as ...
	(skip_free_oacc_sentinel): ... this.
	(skip_omp_attribute): Remove continue_flag parameter. Rename as ...
	(skip_free_omp_sentinel): ... this.
	(skip_free_comments): Update to call skip_free_oacc_sentinel and
	skip_free_omp_sentinel.
	(skip_fixed_omp_sentinel): New function.
	(skip_fixed_oacc_sentinel): New function.
	(skip_fixed_comments): Fix mix of OpenACC and OpenMP sentinels in
	continuation.

	gcc/testsuite/
	* goacc/omp-fixed.f: New test.
	* goacc/omp.f95: Add check for mis-matched omp and acc continuations.


Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>

From-SVN: r230872
2015-11-25 06:37:36 -08:00
Jason Merrill
af11fcfdcf re PR c++/68385 (ICE building libstdc++ on arm-none-eabi)
PR c++/68385

	* tree.c (integer_zerop, integer_onep, integer_each_onep)
	(integer_all_onesp, integer_minus_onep, integer_pow2p)
	(integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
	(real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.

From-SVN: r230871
2015-11-25 09:35:24 -05:00
Richard Biener
7dd663f547 re PR middle-end/68528 ([5 Only] Wrong constant folding)
2015-11-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/68528
	* fold-const.c (fold_binary_loc): Do not call negate_expr_p
	on stripped operands.

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

From-SVN: r230870
2015-11-25 14:21:25 +00:00
Nathan Sidwell
5ab662d507 nvptx.c (walk_args_for_params): Delete.
* config/nvptx/nvptx.c (walk_args_for_params): Delete.
	(nvptx_declare_function_name): Move assignments next to register
	declarations, and process params here.

From-SVN: r230869
2015-11-25 14:03:44 +00:00
Jonathan Wakely
75837d7b13 Improve tests for valid values of iostream bitmask types
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Explicitly
	check minimum and maximum values, and size of underlying type.
	* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r230868
2015-11-25 13:49:06 +00:00
David Edelsohn
7f085cafa4 rs6000.c (rs6000_declare_alias): Rename and globalize both the symbol and the "dot" symbol for function descriptors.
* config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
both the symbol and the "dot" symbol for function descriptors.  Fix
inversion for rename of symbols with dollar sign.

From-SVN: r230867
2015-11-25 07:52:50 -05:00
Tom de Vries
b81b8bcadb Improve verification of loop->latch in verify_loop_structure
2015-11-25  Tom de Vries  <tom@codesourcery.com>

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

From-SVN: r230866
2015-11-25 11:28:49 +00:00
Rainer Orth
e5ef217c3e Port libvtv to Solaris
libstdc++-v3:
	* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) <solaris2*>: Use
	-Wl,-R in VTV_CXXLINKFLAGS.
	* configure: Regenerate.

	* testsuite/18_support/bad_exception/23591_thread-1.c: Use
	-fvtable-verify=none on Solaris 12+.

	libgcc:
	* Makefile.in (VTV_CFLAGS): New variable.
	(vtv_start$(objext), vtv_end$(objext), vtv_end$(objext))
	(vtv_start_preinit$(objext), vtv_end_preinit$(objext)): Use it.
	* config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
	Add vtv_start.o, vtv_end.o, vtv_start_preinit.o, vtv_end_preinit.o
	to extra_parts if $enable_vtable_verify = yes.

	libvtv:
	* configure.tgt (*-*-solaris2.[1-9]*): Declare supported.
	* configure.ac: Call AC_USE_SYSTEM_EXTENSIONS.
	<*-*-solaris2*>: Check for init priority support.
	Check for getexecname, __fortify_fail, _obstack_begin.
	(VTV_NO_OBSTACK): New conditional.
	* configure: Regenerate.
	* Makefile.am [VTV_NO_OBSTACK] (obstack.c): Use new condition.
	Create empty config.h
	* Makefile.in: Regenerate.

	* vtv_rts.cc [HAVE_GETEXECNAME] (program_invocation_name): New
	variable.
	(read_section_offset_and_length) [HAVE_GETEXECNAME]: Set it.
	(dl_iterate_phdr_callback) [HAVE_GETEXECNAME]: Set it.

	(__fortify_fail): Wrap in HAVE___FORTIFY_FAIL
	[!HAVE___FORTIFY_FAIL]: Provide non-Cygwin implementation.

	(read_section_offset_and_length): Assert sh_size >= VTV_PAGE_SIZE.
	(iterate_modules): Fix typo.
	Use VTV_PAGE_SIZE.
	(dl_iterate_phdr_callback): Fix typo.
	Use VTV_PAGE_SIZE.
	(__VLTChangePermission): Fix typos.

	include:
	* vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
	__sparc__]: Define.

	gcc:
	* config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
	(STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
	(STARTFILE_SPEC): Use %(startfile_vtv).
	(ENDFILE_SPEC): Use %(endfile_vtv).
	(SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
	ENDFILE_VTV_SPEC.

	* gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.

From-SVN: r230865
2015-11-25 10:30:25 +00:00
Bernd Schmidt
70927cae31 Remove broken ifcvt code for speculating memory writes
* ifcvt.c (noce_mem_write_may_trap_or_fault_p,
	noce_can_store_speculate): Delete.
	(noce_process_if_block): Don't try to handle single MEM stores.
	* rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
	* alias.c (memory_must_be_modified_in_insn_p): Delete.

From-SVN: r230864
2015-11-25 10:23:28 +00:00
Paolo Carlini
136108a158 re PR c++/58910 (std::Tuple_impl is non constexpr when using identical userdefined structs as template-args)
2015-11-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58910
	* g++.dg/cpp0x/constexpr-tuple2.C: New.

From-SVN: r230860
2015-11-25 10:00:02 +00:00
Kyrylo Tkachov
9b71b2ab84 [RTL-ifcvt] PR rtl-optimization/68435 Allow (c ? x++ : x--) form
PR rtl-optimization/68435
	* ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
	for conflicts between a, b and the set destinations.

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

From-SVN: r230859
2015-11-25 09:48:29 +00:00
Richard Biener
514c0e7c12 re PR tree-optimization/68517 (ICE in tree-vect-data-refs.c:2751)
2015-11-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68517
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
	Properly handle zero-sized types.

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

From-SVN: r230858
2015-11-25 09:22:47 +00:00
Jan Hubicka
80d39568c5 ipa-inline-analysis.c: Include gimplify.h (set_cond_stmt_execution_predicate...
* ipa-inline-analysis.c: Include gimplify.h
	(set_cond_stmt_execution_predicate,
	set_switch_stmt_execution_predicate): Be sure to not leak locations
	to function body.

From-SVN: r230857
2015-11-25 09:08:20 +00:00
Jakub Jelinek
6837d899c8 re PR target/67089 (Integer overflow checks not optimized on x86/x86_64)
PR target/67089
	* tree-ssa-math-opts.c (uaddsub_overflow_check_p,
	match_uaddsub_overflow): New functions.
	(pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.

	* gcc.dg/pr67089-1.c: New test.
	* gcc.dg/pr67089-2.c: New test.
	* gcc.dg/pr67089-3.c: New test.
	* gcc.dg/pr67089-4.c: New test.
	* gcc.dg/pr67089-5.c: New test.
	* gcc.dg/pr67089-6.c: New test.
	* gcc.dg/pr67089-7.c: New test.

From-SVN: r230856
2015-11-25 09:58:32 +01:00
Richard Biener
85c69b0b05 re PR tree-optimization/68492 (internal compiler error: in vect_is_simple_use, at tree-vect-stmts.c:8266)
2015-11-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68492
	* tree-vect-slp.c (vect_build_slp_tree): Consistently build up
	op from scalars after operand swapping.

From-SVN: r230855
2015-11-25 08:53:22 +00:00
Richard Biener
993a6bd98b re PR tree-optimization/68502 ([i686] spec2000/179.art runfails after r222914)
2015-11-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68502
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
	check that the step is a multiple of the type size.

	* gcc.dg/vect/pr68502-1.c: New testcase.
	* gcc.dg/vect/pr68502-2.c: Likewise.

From-SVN: r230854
2015-11-25 08:46:34 +00:00
Michael Collison
b1b49824a8 2015-11-24 Michael Collison <michael.collison@linaro.org>
* config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
	* config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
	* gcc.target/aarch64/saddw-1.c: New test.
	* gcc.target/aarch64/saddw-2.c: New test.
	* gcc.target/aarch64/uaddw-1.c: New test.
	* gcc.target/aarch64/uaddw-2.c: New test.
	* gcc.target/aarch64/uaddw-3.c: New test.
	* lib/target-support.exp
	(check_effective_target_vect_widen_sum_hi_to_si_pattern):
	Add aarch64 to list of support targets.

From-SVN: r230853
2015-11-25 06:51:55 +00:00
GCC Administrator
17a0986a9b Daily bump.
From-SVN: r230850
2015-11-25 00:16:11 +00:00
Steve Ellcey
68f7710bc1 Fix typos from last checkin.
From-SVN: r230847
2015-11-24 22:12:25 +00:00
Steve Ellcey
4607d3700e frame-header-4.c: New test.
2015-11-24  Steve Ellcey  <sellcey@imgtec.com>

	* gcc.target/mips/frame-header-4.c: New test.

From-SVN: r230846
2015-11-24 22:11:27 +00:00
Steve Ellcey
0bfbc1662b frame-header-opt.c (gate): Check for optimize > 0.
2015-11-24  Steve Ellcey  <sellcey@imgtec.com>

	* frame-header-opt.c (gate): Check for optimize > 0.
	(has_inlined_assembly): New function.
	(needs_frame_header_p): Remove is_leaf_function check,
	add argument type check.
	(callees_functions_use_frame_header): Add is_leaf_function
	and has_inlined_assembly calls..
	(set_callers_may_not_allocate_frame): New function.
	(frame_header_opt): Add is_leaf_function call, add
	set_callers_may_not_allocate_frame call.
	* config/mips/mips.c (mips_compute_frame_info): Add check
	to see if callee saved regs can be put in frame header.
	(mips_expand_prologue): Add check to see if step1 is zero,
	fix cfa restores when using frame header to store regs.
	(mips_can_use_return_insn): Check to see if registers are
	stored in frame header.
	* config/mips/mips.h (machine_function): Add
	callers_may_not_allocate_frame and
	use_frame_header_for_callee_saved_regs fields.

From-SVN: r230845
2015-11-24 22:09:17 +00:00
Segher Boessenkool
82ad51444f shrink-wrap: Fix thinko (PR68520)
Part of the shrink-wrapping algorithm has this comment:

  /* Now see if we can put the prologue at the start of PRO.  Putting it
     there might require duplicating a block that cannot be duplicated,
     or in some cases we cannot insert the prologue there at all.  If PRO
     wont't do, try again with the immediate dominator of PRO, and so on.

     The blocks that need duplicating are those reachable from PRO but
     not dominated by it.  We keep in BB_WITH a bitmap of the blocks
     reachable from PRO that we already found, and in VEC a stack of
     those we still need to consider (to find successors).  */

Two of the cases that push to that stack do not actually check the
bitmap first.  Either I thought those blocks could not be on the stack
already, or more likely I didn't think and it just didn't crash during
any testing.  But of course those blocks *can* already be on the stack
(if you have a hideous loop structure), and then we end up with the
same block on the stack more than once.  This is harmless, except that
(like in the PR) this can overflow the stack.

This fixes it, by doing the necessary bitmap checks before pushing.


	PR rtl-optimization/68520
	* shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
	its bit was already set in BB_WITH.

From-SVN: r230843
2015-11-24 22:23:25 +01:00
Ilya Verbin
688c4de0a3 c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING" with "if (ENABLE_OFFLOADING)".
gcc/c/
	* c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
	with "if (ENABLE_OFFLOADING)".
gcc/cp/
	* parser.c (cp_parser_oacc_declare): replace "ifdef enable_offloading"
	with "if (enable_offloading)".

From-SVN: r230842
2015-11-24 21:04:47 +00:00
Jan Hubicka
ba6a6a1d44 alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P double check that type is main variant.
* alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
	double check that type is main variant.
	* tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
	variant.
	(verify_type_variant): Verify that variants have no
	TYPE_ALIAS_SET_KNOWN_P set
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
	streaming so constant fields come first; stream TYPE_ALIAS_SET==0
	only for main variants; stream TYPE_ALIAS_SET as a bit.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
	accordingly.

From-SVN: r230838
2015-11-24 20:35:16 +00:00
Jan Hubicka
0b87a9a2bd tree.c (make_vector_type): Properly compute canonical type of the main variant.
* tree.c (make_vector_type): Properly compute canonical type of the
	main variant.
	(verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
	a main variant.

From-SVN: r230837
2015-11-24 20:26:48 +00:00
Nathan Sidwell
d74792629d nvptx.c (maybe_split_mode): Return new mode or VOIDmode, don't alter incoming mode.
* config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
	VOIDmode, don't alter incoming mode.
	(nvptx_split_reg_p): Delete.
	(write_one_arg, walk_args_for_param, nvptx_declare_function_name,
	write_func_decl_from_insn, nvptx_output_call_insn): Adjust
	maybe_split_mode calls.
	(nvptx_print_operand): Use maybe_split_mode.

From-SVN: r230836
2015-11-24 20:15:44 +00:00
Jan Hubicka
aea50b45f5 lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for types where LTO sets them.
* lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
	only for types where LTO sets them.
	* tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
	(make_vector_type): Likewise.
	(gimple_canonical_types_compatible_p): Use canonical_type_used_p.
	* tree.h (canonical_type_used_p): New inline.
	* alias.c (get_alias_set): Handle structural equality for all
	types that pass canonical_type_used_p.
	(record_component_aliases): Look through all types with
	record_component_aliases for possible pointers; sanity check that
	the alias sets match.

	* lto.c (iterative_hash_canonical_type): Recruse for all types
	which pass !canonical_type_used_p.
	(gimple_register_canonical_type_1): Sanity check we do not compute
	canonical type of anything with !canonical_type_used_p.
	(gimple_register_canonical_type): Skip all types that are
	!canonical_type_used_p

From-SVN: r230835
2015-11-24 19:35:38 +00:00
Michael Meissner
73c923307b rs6000.md (lround<mode>di2): Remove constraints.
2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.

From-SVN: r230834
2015-11-24 19:16:18 +00:00
Jan Hubicka
deb3dae698 tree.c (free_node): New function.
* tree.c (free_node): New function.
	(type_hash_canon): Use it.
	* tree.h (free_node): Declare.
	* lto.c (unify_scc): Use free_node.

From-SVN: r230833
2015-11-24 19:04:04 +00:00