Commit Graph

142292 Commits

Author SHA1 Message Date
Alan Lawrence
def4ad19ea [i386]Migrate reduction optabs to reduc_<op>_scal
* config/i386/sse.md (reduc_splus_v8df): Rename to...
	(reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.

	(reduc_splus_v4df): Rename to...
	(reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.

	(reduc_splus_v2df): Rename to...
	(reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.

	(reduc_splus_v16sf): Rename to...
	(reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.

	(reduc_splus_v8sf): Rename to...
	(reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.

	(reduc_splus_v4sf): Rename to...
	(reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.

	(reduc_<code>_<mode>, all 3 variants): Rename each to...
	(reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.

	(reduc_umin_v8hf): Rename to...
	(reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.

From-SVN: r230423
2015-11-16 13:53:23 +00:00
Kirill Yukhin
fff7721799 Add __attribute__((__simd__)) to GCC.
gcc/
	* omp-low.c (pass_omp_simd_clone::gate): If target allows - call
	without additional conditions.
	* doc/extend.texi (@item simd): New.
gcc/c-family/
	* c-common.c (handle_simd_attribute): New.
	(struct attribute_spec): Add entry for "simd".
	(handle_simd_attribute): New.
gcc/c/
	* c-parser.c (c_finish_omp_declare_simd): Look for
	"simd" attribute as well. Update error message.
gcc/cp/
	* parser.c (cp_parser_late_parsing_cilk_simd_fn_info): Look for
	"simd" attribute as well. Update error message.
gcc/testsuite/
	* c-c++-common/attr-simd.c: New test.
	* c-c++-common/attr-simd-2.c: New test.
	* c-c++-common/attr-simd-3.c: New test.

From-SVN: r230422
2015-11-16 13:14:57 +00:00
Alan Lawrence
56b08a5894 [AArch64] Fix gcc.target/aarch64/vclz.c
* gcc.target/aarch64/vclz.c: Correctly place INHIB_OPTIMIZATION.

From-SVN: r230421
2015-11-16 12:41:20 +00:00
Tom de Vries
7cf76184c4 Remove first_pass_instance
2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.c (first_pass_instance): Remove variable.
	(execute_todo): Remove setting of first_pass_instance.
	* tree-pass.h (first_pass_instance): Remove declaration.

From-SVN: r230420
2015-11-16 12:40:50 +00:00
Tom de Vries
c06883ac2d Remove first_pass_instance from pass_ccp
2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add arg to pass_ccp pass instantiation.
	* tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
	instead of first_pass_instance.
	(do_ssa_ccp): Add and handle param nonzero_p.
	(pass_ccp::pass_ccp): Initialize nonzero_p.
	(pass_ccp::set_pass_param): New member function.  Set nonzero_p.
	(pass_ccp::execute): Call do_ssa_ccp with extra arg.
	(pass_ccp::nonzero_p): New private member.

From-SVN: r230419
2015-11-16 12:40:41 +00:00
Tom de Vries
813ccd83ae Remove first_pass_instance from pass_object_sizes
2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add arg to pass_object_sizes pass instantiation.
	* tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
	insert_min_max_p.
	(pass_object_sizes::set_pass_param): New member function.  Set
	insert_min_max_p.
	(pass_object_sizes::insert_min_max_p): New private member.
	(pass_object_sizes::execute): Use insert_min_max_p instead of
	first_pass_instance.

From-SVN: r230418
2015-11-16 12:40:33 +00:00
Tom de Vries
5ce8d99a1b Remove first_pass_instance from pass_dominator
2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add arg to pass_dominator pass instantiation.
	* tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
	of comment.
	* tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
	may_peel_loop_headers_p.
	(pass_dominator::set_pass_param): New member function.  Set
	may_peel_loop_headers_p.
	(pass_dominator::may_peel_loop_headers_p): New private member.
	(pass_dominator::execute): Use may_peel_loop_headers_p instead of
	first_pass_instance.

From-SVN: r230417
2015-11-16 12:40:24 +00:00
Tom de Vries
2162bfe15e Remove first_pass_instance from pass_reassoc
2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add arg to pass_reassoc pass instantiation.
	* tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
	(acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
	of first_pass_instance.
	(execute_reassoc): Add and handle insert_powi_p parameter.
	(pass_reassoc::insert_powi_p): New private member.
	(pass_reassoc::pass_reassoc): Initialize insert_powi_p.
	(pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
	(pass_reassoc::execute): Call execute_reassoc with extra arg.

From-SVN: r230416
2015-11-16 12:40:14 +00:00
Tom de Vries
b0c77505dd Remove first_pass_instance from pass_vrp
2015-11-16  Tom de Vries  <tom@codesourcery.com>

	* gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
	* gen-pass-instances.awk (handle_line): Same.
	* pass_manager.h (class pass_manager): Define and undefine
	NEXT_PASS_WITH_ARG.
	* passes.c (opt_pass::set_pass_param): New function.
	(pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
	* passes.def: Add extra arg to NEXT_PASS (pass_vrp).
	* tree-pass.h (gimple_opt::set_pass_param): Declare.
	* tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
	warn_array_bounds_p parameter.
	(pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
	(pass_vrp::set_pass_param): New function.
	(pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
	(pass_vrp::warn_array_bounds_p): New private member.

From-SVN: r230415
2015-11-16 12:40:05 +00:00
Eric Botcazou
632b092123 sparc.c (sparc_emit_probe_stack_range): Adjust.
* config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
	(output_probe_stack_range): Rotate the loop and simplify.

From-SVN: r230414
2015-11-16 12:19:22 +00:00
Eric Botcazou
c0f39947f8 rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
* config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
	(output_probe_stack_range): Rotate the loop and simplify.

From-SVN: r230413
2015-11-16 12:17:51 +00:00
Eric Botcazou
16c6f54ffa i386.c (ix86_adjust_stack_and_probe): Adjust and use an lea instruction when possible.
* config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
	an lea instruction when possible.
	(output_adjust_stack_and_probe): Rotate the loop and simplify.
	(ix86_emit_probe_stack_range): Adjust.
	(output_probe_stack_range): Rotate the loop and simplify.

From-SVN: r230412
2015-11-16 12:16:54 +00:00
Christian Bruel
ae5e29239e arm_neon.h: Remove #ifndef check on __ARM_NEON.
2015-11-16  Christian Bruel  <christian.bruel@st.com>

	* config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
	Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
	with appropriate pragma GCC target.

2015-11-16  Christian Bruel  <christian.bruel@st.com>

	* lib/target-supports.exp (check_effective_target_arm_neon_ok_nocache):
	 Check __ARM_NEON__ instead of "arm_neon.h.
	* gcc.target/arm/attr-neon3.c: New test.
	* gcc.target/arm/attr-neon-fp16.c: Likewise

From-SVN: r230411
2015-11-16 12:25:02 +01:00
Christian Bruel
b8c7c62b2d re PR target/65837 ([arm-linux-gnueabihf] lto1 target specific builtin not available)
2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
	__ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.

From-SVN: r230410
2015-11-16 12:20:02 +01:00
James Greenhalgh
67707f65c0 [AArch64] Cortex-A57 Choose some new branch costs.
gcc/

	* config/aarch64/aarch64.c (cortexa57_branch_costs): New.
	(cortexa57_tunings): Use it.

From-SVN: r230409
2015-11-16 10:30:21 +00:00
Christian Bruel
c910628220 re PR target/65837 ([arm-linux-gnueabihf] lto1 target specific builtin not available)
2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm-c.c (arm_cpu_builtins): Set or reset
	__ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
	(arm_pragma_target_parse): Change check for arm_cpu_builtins.
	undefine __ARM_FP.
	* config/arm/arm.c (arm_can_inline_p): Check FPUs.
	(arm_valid_target_attribute_rec): Handle -mfpu attribute target.
	* doc/invoke.texi (-mfpu=): Mention attribute and pragma.
	* doc/extend.texi (-mfpu=): Describe attribute.

2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	gcc.target/arm/lto/pr65837_0.c
	gcc.target/arm/attr-neon2.c
	gcc.target/arm/attr-neon.c
	gcc.target/arm/attr-neon-builtin-fail.c
	gcc.target/arm/attr-crypto.c

From-SVN: r230408
2015-11-16 11:21:09 +01:00
Christian Bruel
f39cdf66d6 coding nit
From-SVN: r230407
2015-11-16 10:38:29 +01:00
Christian Bruel
00c02a7010 re PR target/65837 ([arm-linux-gnueabihf] lto1 target specific builtin not available)
2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
	* config/arm/arm.c (arm_valid_target_attribute_tree): Call
	arm_init_neon_builtins.
	* config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
	(arm_init_neon_builtins_internal)
	(arm_init_crypto_builtins_internal):
	Test and set neon_set_p, neon_crypto_set_p.
	(neon_set_p, neon_crypto_set_p): New static booleans.

From-SVN: r230406
2015-11-16 10:00:09 +01:00
Richard Biener
da225f53f9 bb-slp-32.c: Adjust testcase.
2015-11-16  Richard Biener  <rguenther@suse.de>

	* gcc.dg/vect/bb-slp-32.c: Adjust testcase.

From-SVN: r230405
2015-11-16 08:57:42 +00:00
Christian Bruel
19708abc4b re PR target/65837 ([arm-linux-gnueabihf] lto1 target specific builtin not available)
2015-11-16  Christian Bruel  <christian.bruel@st.com>

	PR target/65837
	* config/arm/arm.c (arm_fpu_desc): Remove.
	(all_fpus): Make global.
	(arm_option_override): Use FPU TARGET accessors.
	(arm_declare_function_name): Likewise.
	* config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
	(TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
	(TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
	(TARGET_NEON): Likewise.
	(all_fpus): Declare extern.
	(TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
	(TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.

From-SVN: r230404
2015-11-16 09:46:42 +01:00
Trevor Saunders
c21f7c9dcd PR 68366 - include emit-rtl.h in sdbout.c
Some of the pa target macros rely on macros in emit-rtl.h and sdbout.c
uses some of those macros, which means that sdbout.c needs to include
emit-rtl.h.

gcc/ChangeLog:

2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	PR middle-end/68366
	* sdbout.c: Include emit-rtl.h and function.h.

From-SVN: r230402
2015-11-16 02:28:15 +00:00
GCC Administrator
1f25fa058e Daily bump.
From-SVN: r230401
2015-11-16 00:16:12 +00:00
David Edelsohn
d9adb4761a on_exit.c: New file.
* config/rs6000/on_exit.c: New file.
        * config/rs6000/t-aix-cxa (LIB2ADDEH): Build on_exit.c.
        * config/rs6000/libgcc-aix-cxa.ver (on_exit): Add symbol to exports.

From-SVN: r230398
2015-11-15 18:41:44 -05:00
Gerald Pfeifer
01a0467e23 freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
* config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
	Remove support for FreeBSD 5 and earlier.

From-SVN: r230397
2015-11-15 20:03:24 +00:00
Paul Thomas
78ab5260a1 re PR fortran/50221 (Allocatable string length fails with array assignment)
2015-11-15  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/50221
	PR fortran/68216
	PR fortran/63932
	PR fortran/66408
	* trans_array.c (gfc_conv_scalarized_array_ref): Pass the
	symbol decl for deferred character length array references.
	* trans-stmt.c (gfc_trans_allocate): Keep the string lengths
	to update deferred length character string lengths.
	* trans-types.c (gfc_get_dtype_rank_type); Use the string
	length of deferred character types for the dtype size.
	* trans.c (gfc_build_array_ref): For references to deferred
	character arrays, use the domain max value, if it is a variable
	to set the 'span' and use pointer arithmetic for acces to the
	element.
	(trans_code): Set gfc_current_locus for diagnostic purposes.

	PR fortran/67674
	* trans-expr.c (gfc_conv_procedure_call): Do not fix deferred
	string lengths of components.

	PR fortran/49954
	* resolve.c (deferred_op_assign): New function.
	(gfc_resolve_code): Call it.
	* trans-array.c (concat_str_length): New function.
	(gfc_alloc_allocatable_for_assignment): Jump directly to alloc/
	realloc blocks for deferred character length arrays because the
	string length might change, even if the shape is the same. Call
	concat_str_length to obtain the string length for concatenation
	since it is needed to compute the lhs string length.
	Set the descriptor dtype appropriately for the new string
	length.
	* trans-expr.c (gfc_trans_assignment_1): Use the rse string
	length for all characters, other than deferred types. For
	concatenation operators, push the rse.pre block to the inner
	most loop so that the temporary pointer and the assignments
	are properly placed.

2015-11-15  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/50221
	* gfortran.dg/deferred_character_1.f90: New test.
	* gfortran.dg/deferred_character_4.f90: New test for comment
	#4 of the PR.

	PR fortran/68216
	* gfortran.dg/deferred_character_2.f90: New test.

	PR fortran/67674
	* gfortran.dg/deferred_character_3.f90: New test.

	PR fortran/63932
	* gfortran.dg/deferred_character_5.f90: New test.

	PR fortran/66408
	* gfortran.dg/deferred_character_6.f90: New test.

	PR fortran/49954
	* gfortran.dg/deferred_character_7.f90: New test.

From-SVN: r230396
2015-11-15 14:07:52 +00:00
Jonathan Wakely
356510acd9 PR libstdc++/68353 fix _GLIBCXX_USE_C99_WCHAR test
PR libstdc++/68353
	* include/bits/basic_string.h: Test value of _GLIBCXX_USE_C99_WCHAR
	not whether it is defined.
	* include/ext/vstring.h: Likewise.

From-SVN: r230395
2015-11-15 11:15:08 +00:00
Trevor Saunders
1d899da297 always define ENABLE_OFFLOADING
gcc/cp/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* parser.c (cp_parser_omp_declare_target): Adjust.

gcc/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* configure: Regenerate.
	* configure.ac: Always define ENABLE_OFFLOADING.
	* cgraph.c (cgraph_node::create): Adjust.
	* gcc.c (process_command): Likewise.
	* omp-low.c (create_omp_child_function): Likewise.
	(expand_omp_target): Likewise.
	* varpool.c (varpool_node::get_create): Likewise.

gcc/c/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-parser.c (c_parser_omp_declare_target): Adjust.

From-SVN: r230393
2015-11-15 00:18:08 +00:00
Trevor Saunders
dd4fb6097a always define EH_RETURN_HANDLER_RTX
gcc/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
	* df-scan.c (df_get_exit_block_use_set): Adjust.
	* except.c (expand_eh_return): Likewise.

From-SVN: r230392
2015-11-15 00:18:01 +00:00
Trevor Saunders
ab7b56730b always define TARGET_PECOFF
gcc/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* config/i386/i386.h (TARGET_PECOFF): Remove define.
	* defaults.h (TARGET_PECOFF): New default definition.
	* varasm.c (handle_vtv_comdat_section): Adjust.

gcc/cp/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* vtable-class-hierarchy.c (vtv_generate_init_routine): Adjust.

From-SVN: r230391
2015-11-15 00:17:56 +00:00
Trevor Saunders
5394314855 remove conditional compilation of sdb debug info
gcc/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h: New definition of SDB_DEBUGGING_INFO.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in: Adjust.
	* final.c (rest_of_clean_state): Remove check if
	SDB_DEBUGGING_INFO is defined.
	* function.c (number_blocks): Likewise.
	* output.h: Likewise.
	* sdbout.c: Likewise.
	* toplev.c (process_options): Likewise.

From-SVN: r230390
2015-11-15 00:17:51 +00:00
Trevor Saunders
d36402d9f0 remove EXTENDED_SDB_BASIC_TYPES
The last target using this was i960, which was removed many years ago,
so there's no reason to keep it.

gcc/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* gsyms.h (enum sdb_type): Remove code for
	EXTENDED_SDB_BASIC_TYPES.
	(enum sdb_masks): Likewise.
	* sdbout.c (plain_type_1): Likewise.
	* system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.

From-SVN: r230389
2015-11-15 00:17:43 +00:00
GCC Administrator
6aab8e4f18 Daily bump.
From-SVN: r230388
2015-11-15 00:16:15 +00:00
Jakub Jelinek
00b9bd52a8 libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5 sections.
* libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5
	sections.

From-SVN: r230384
2015-11-14 23:02:42 +01:00
Andreas Tobler
301d1d00e6 acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Change locale implementation from darwin to DragonFly.
2015-11-14  Andreas Tobler  <andreast@gcc.gnu.org>

    * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Change locale implementation
    from darwin to DragonFly.
    * configure: Regenerate.
    * config/os/bsd/freebsd/ctype_configure_char.cc: Improve locale
    support, do it the same as DragonFly.
    * config/os/bsd/freebsd/os_defines.h: Add fine grained C99 defines.

From-SVN: r230383
2015-11-14 22:17:24 +01:00
Jason Merrill
38e5f0454c re PR bootstrap/68346 (Bootstrap failure on i686-linux)
PR bootstrap/68346
	* call.c (build_new_op_1): Don't fold arguments to
	warn_tautological_cmp.

From-SVN: r230382
2015-11-14 13:54:16 -05:00
Jakub Jelinek
e460634820 omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_* internal calls - 0 if...
gcc/
2015-11-14  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
	internal calls - 0 if ordered simd and 1 for ordered threads simd.
	* tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
	argument is 1, replace it with GOMP_ordered_* call instead of removing
	it.
gcc/c/
2015-11-14  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (c_finish_omp_clauses): Don't mark
	GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
gcc/cp/
2015-11-14  Jakub Jelinek  <jakub@redhat.com>

	* semantics.c (finish_omp_clauses): Don't mark
	GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
libgomp/
2015-11-14  Jakub Jelinek  <jakub@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* ordered.c (gomp_doacross_init, GOMP_doacross_post,
	GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
	GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
	iterators or IV by chunk size.
	* parallel.c (gomp_resolve_num_threads): Don't assume that
	if thr->ts.team is non-NULL, then pool must be non-NULL.
	* libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
	* libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
	GOMP_PLUGIN_target_task_completion.
	* Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
	* Makefile.in: Regenerate.
	* libgomp.h: Shuffle prototypes and forward definitions around so
	priority queues can be defined.
	(enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
	(enum gomp_target_task_state): New enum.
	(struct gomp_target_task): Add state, tgt, task and team fields.
	(gomp_create_target_task): Change return type to bool, add
	state argument.
	(gomp_target_task_fn): Change return type to bool.
	(struct gomp_device_descr): Add async_run_func.
	(struct gomp_task): Remove children, next_child, prev_child,
	next_queue, prev_queue, next_taskgroup, prev_taskgroup.
	Add pnode field.
	(struct gomp_taskgroup): Remove children.
	Add taskgroup_queue.
	(struct gomp_team): Change task_queue type to a priority queue.
	(splay_compare): Define inline.
	(priority_queue_offset): New.
	(priority_node_to_task): New.
	(task_to_priority_node): New.
	* oacc-mem.c: Do not include splay-tree.h.
	* priority_queue.c: New file.
	* priority_queue.h: New file.
	* splay-tree.c: Do not include splay-tree.h.
	(splay_tree_foreach_internal): New.
	(splay_tree_foreach): New.
	* splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
	(splay_tree_callback): Define typedef.
	* target.c (splay_compare): Move to libgomp.h.
	(GOMP_target): Don't adjust *thr in any way around running offloaded
	task.
	(GOMP_target_ext): Likewise.  Handle target nowait.
	(GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
	return value from gomp_create_target_task, if false, fallthrough
	as if no dependencies exist.
	(gomp_target_task_fn): Change return type to bool, return true
	if the task should have another part scheduled later.  Handle
	target nowait.
	(gomp_load_plugin_for_device): Initialize async_run.
	* task.c (gomp_init_task): Initialize children_queue.
	(gomp_clear_parent_in_list): New.
	(gomp_clear_parent_in_tree): New.
	(gomp_clear_parent): Handle priorities.
	(GOMP_task): Likewise.
	(priority_queue_move_task_first,
	gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
	New functions.
	(gomp_create_target_task): Use priority queues.  Change return type
	to bool, add state argument, return false if for async
	{{enter,exit} data,update} constructs no dependencies need to be
	waited for, handle target nowait.  Set task->fn to NULL instead of
	gomp_target_task_fn.
	(verify_children_queue): Remove.
	(priority_list_upgrade_task): New.
	(priority_queue_upgrade_task): New.
	(verify_task_queue): Remove.
	(priority_list_downgrade_task): New.
	(priority_queue_downgrade_task): New.
	(gomp_task_run_pre): Use priority queues.
	Abstract code out to priority_queue_downgrade_task.
	(gomp_task_run_post_handle_dependers): Use priority queues.
	(gomp_task_run_post_remove_parent): Likewise.
	(gomp_task_run_post_remove_taskgroup): Likewise.
	(gomp_barrier_handle_tasks): Likewise.  Handle target nowait target
	tasks specially.
	(GOMP_taskwait): Likewise.
	(gomp_task_maybe_wait_for_dependencies): Likewise.  Abstract code to
	priority-queue_upgrade_task.
	(GOMP_taskgroup_start): Use priority queues.
	(GOMP_taskgroup_end): Likewise.  Handle target nowait target tasks
	specially.  If taskgroup is NULL, and thr->ts.level is 0, act as a
	barrier.
	* taskloop.c (GOMP_taskloop): Handle priorities.
	* team.c (gomp_new_team): Call priority_queue_init.
	(free_team): Call priority_queue_free.
	(gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
	team created for target nowait in implicit parallel region.
	(gomp_team_start): For nested check, test thr->ts.level instead of
	thr->ts.team != NULL.
	* testsuite/libgomp.c/doacross-3.c: New test.
	* testsuite/libgomp.c/ordered-5.c: New test.
	* testsuite/libgomp.c/priority.c: New test.
	* testsuite/libgomp.c/target-31.c: New test.
	* testsuite/libgomp.c/target-32.c: New test.
	* testsuite/libgomp.c/target-33.c: New test.
	* testsuite/libgomp.c/target-34.c: New test.
liboffloadmic/
2015-11-14  Ilya Verbin  <ilya.verbin@intel.com>

	* runtime/offload_host.cpp (task_completion_callback): New
	variable.
	(offload_proxy_task_completed_ooo): Call task_completion_callback.
	(__offload_register_task_callback): New function.
	* runtime/offload_host.h (__offload_register_task_callback): New
	declaration.
	* plugin/libgomp-plugin-intelmic.cpp (offload): Add async_data
	argument, handle async offloading.
	(register_main_image): Call register_main_image.
	(GOMP_OFFLOAD_init_device, get_target_table, GOMP_OFFLOAD_alloc,
	GOMP_OFFLOAD_free, GOMP_OFFLOAD_host2dev, GOMP_OFFLOAD_dev2host,
	GOMP_OFFLOAD_dev2dev) Adjust offload callers.
	(GOMP_OFFLOAD_async_run): New function.
	(GOMP_OFFLOAD_run): Implement using GOMP_OFFLOAD_async_run.

From-SVN: r230381
2015-11-14 19:42:13 +01:00
Steven G. Kargl
67f0527a22 re PR fortran/67803 (ICE on concatenating wrong character array constructor)
2015-11-14  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/67803
    * array.c (gfc_match_array_constructor): If array constructor included
    a CHARACTER typespec, check array elements for compatible type.

2015-11-14  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/67803
    * gfortran.dg/pr67803.f90: New test.

From-SVN: r230379
2015-11-14 17:31:16 +00:00
Jonathan Wakely
230b4edeee Fix std::wstring capacity test for short wchar_t
* testsuite/21_strings/basic_string/capacity/char/18654.cc: Use
	real minimum capacity.
	* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc:
	Likewise.

From-SVN: r230378
2015-11-14 17:24:42 +00:00
David Edelsohn
bfc6afd929 * testsuite/experimental/random/randint.cc: Add dg-add-options tls.
From-SVN: r230377
2015-11-14 09:22:53 -05:00
David Edelsohn
9357bae918 * g++.dg/cpp/ucn-1.C: Fix typo.
From-SVN: r230376
2015-11-14 08:36:15 -05:00
Marek Polacek
3e636daf67 c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
* c-decl.c: Use RECORD_OR_UNION_TYPE_P throughout.
	* c-typeck.c: Likewise.

From-SVN: r230375
2015-11-14 12:31:45 +00:00
Arnaud Charlet
9bd6766df1 re PR ada/68345 (gnat build broken on dragonfly due to omission of r229342)
2015-11-13  Arnaud Charlet  <charlet@adacore.com>
        
	PR ada/68345
	* s-osinte-dragonfly.ads (Get_Page_Size): C function returns an int.

From-SVN: r230373
2015-11-14 10:09:01 +01:00
Uros Bizjak
e63e20c073 ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
	* testsuite/ChangeLog: Ditto.

From-SVN: r230372
2015-11-14 08:58:17 +01:00
David Edelsohn
f0c4658bed vbase1.C: XFAIL powerpc*-*-*.
* g++.dg/init/vbase1.C: XFAIL powerpc*-*-*.
* g++.dg/cpp/ucn-1.C: Expect error for dollar sign identifier on AIX.

From-SVN: r230371
2015-11-13 19:35:30 -05:00
GCC Administrator
1a5254eda3 Daily bump.
From-SVN: r230370
2015-11-14 00:16:13 +00:00
Rich Felker
6a60e03e43 sh.md (symGOT_load): Don't set stack_chk_guard_p for TARGET_FDPIC.
2015-11-13  Rich Felker <dalias@libc.org>
* config/sh/sh.md (symGOT_load): Don't set stack_chk_guard_p for TARGET_FDPIC.

From-SVN: r230366
2015-11-14 00:08:41 +00:00
Jason Merrill
cda0a029f4 Merge C++ delayed folding branch.
* call.c (build_conditional_expr_1, convert_like_real)
	(convert_arg_to_ellipsis, convert_for_arg_passing): Don't fold.
	(build_new_op_1, build_over_call, build_cxx_call): Fold for warnings.
	* class.c (build_base_path, determine_primary_bases)
	(update_vtable_entry_for_fn, check_bitfield_decl)
	(layout_nonempty_base_or_field, layout_empty_base)
	(propagate_binfo_offsets, include_empty_classes)
	(layout_class_type, build_vbase_offset_vtbl_entries): Use
	fold_convert.
	* constexpr.c (cxx_eval_builtin_function_call): Fold away the NOP_EXPR.
	(cxx_eval_call_expression): Handle MEM_REF.
	(cxx_eval_pointer_plus_expression): Fold the second operand.
	(cxx_eval_constant_expression): Handle MEM_REF, UNARY_PLUS_EXPR.
	(fold_simple_1, fold_simple): New.
	(maybe_constant_value_1): Factor out from maybe_constant_value.
	(cv_cache, maybe_constant_value): Cache results.
	(maybe_constant_init): Handle null input.
	(potential_constant_expression_1): Handle RESULT_DECL, EMPTY_CLASS_EXPR.
	* cp-array-notation.c (build_array_notation_ref): Fold operands.
	* cp-gimplify.c (cp_fold_r, cp_fold): New.
	(cp_genericize_r): Use fold_convert.  Don't fold SIZEOF_EXPR.
	(cp_genericize): Fold everything.
	(contains_label_1, contains_label_p): New.
	(cp_fold, cp_fully_fold): New.
	* cp-tree.h (class cache_map): New.
	* cvt.c (cp_convert_to_pointer, ocp_convert): Use convert_to_*_nofold.
	(cp_convert_and_check): Use cp_fully_fold.
	(convert, convert_force): Don't fold.
	* decl.c (fold_sizeof_expr): Change from fold_sizeof_expr_r.
	(compute_array_index_type): Use cp_fully_fold.
	(build_enumerator): Use fold_convert.
	* decl2.c (get_guard_cond, set_guard): Use fold_convert.
	* init.c (build_zero_init_1): Fold zero-initializers.
	(build_new_1): Fold nelts calculations.
	(build_vec_delete_1): Fold conversions.
	(build_vec_init): Fold maxindex.
	* parser.c (cp_parser_binary_expression): Fold LHS of || and &&.
	(cp_parser_question_colon_clause): Fold LHS.
	* pt.c (convert_nontype_argument): Fold nullptr conversion.
	* semantics.c (finish_unary_op_expr): Fold for warnings.
	(handle_omp_array_sections_1): Fold length and low bound.
	(handle_omp_for_class_iterator): Fold various things.
	* tree.c (builtin_valid_in_constant_expr_p): Add
	BUILT_IN_ATOMIC_ALWAYS_LOCK_FREE.
	(convert_bitfield_to_declared_type): Don't fold.
	(handle_init_priority_attribute): Fold.
	(fold_if_not_in_template): Remove.
	* typeck.c (decay_conversion, build_class_member_access_expr)
	(build_simple_component_ref, cp_build_array_ref, build_vec_cmp)
	(cp_pointer_int_sum, pointer_diff): Don't fold.
	(cp_build_binary_op): Fold for warnings and PMF ops.
	(cp_build_unary_op): Fold negation of a constant, nothing else.
	(expand_ptrmemfunc_cst): Fold operations.
	* typeck2.c (split_nonconstant_init): Fold initializer.
	(store_init_value): Likewise.
	(check_narrowing): Try folding.
	* config-lang.in (gtfiles): Add cp-gimplify.c.

From-SVN: r230365
2015-11-13 19:08:05 -05:00
Ajit Agarwal
8fe17e23b0 [Patch,tree-optimization]: Add new path Splitting pass on tree ssa
representation

	* Makefile.in (OBJS): Add gimple-ssa-split-paths.o
	* common.opt (-fsplit-paths): New flag controlling path splitting.
	* doc/invoke.texi (fsplit-paths): Document.
	* opts.c (default_options_table): Add -fsplit-paths to -O2.
	* passes.def: Add split_paths pass.
	* timevar.def (TV_SPLIT_PATHS): New timevar.
	* tracer.c: Include "tracer.h"
	(ignore_bb_p): No longer static.
	(transform_duplicate): New function, broken out of tail_duplicate.
	(tail_duplicate): Use transform_duplicate.
	* tracer.h (ignore_bb_p): Declare
	(transform_duplicate): Likewise.
	* tree-pass.h (make_pass_split_paths): Declare.
	* gimple-ssa-split-paths.c: New file.

	* gcc.dg/tree-ssa/split-path-1.c: New test.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r230364
2015-11-13 16:31:51 -07:00
Kai Tietz
269e63b735 Add non-folding variants for convert_to_*.
2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
	    Marek Polacek  <polacek@redhat.com>
	    Jason Merrill  <jason@redhat.com>

gcc/
	* convert.c (maybe_fold_build1_loc): New.
	(maybe_fold_build2_loc): New.
	(convert_to_pointer_1): Split out from convert_to_pointer.
	(convert_to_pointer_nofold): New.
	(convert_to_real_1): Split out from convert_to_real.
	(convert_to_real_nofold): New.
	(convert_to_integer_1): Split out from convert_to_integer.
	(convert_to_integer_nofold): New.
	(convert_to_complex_1): Split out from convert_to_complex.
	(convert_to_complex_nofold): New.
	* convert.h: Declare new functions.
	* tree-complex.c (create_one_component_var): Break up line to
	avoid sequence point issues.
gcc/c-family/
	* c-lex.c (interpret_float): Use fold_convert.

Co-Authored-By: Jason Merrill <jason@redhat.com>
Co-Authored-By: Marek Polacek <polacek@redhat.com>

From-SVN: r230359
2015-11-13 17:24:45 -05:00
Jason Merrill
9514e74fcd fold-const.c (fold_convert_const): Fold changing cv-quals on VECTOR_CST.
* fold-const.c (fold_convert_const): Fold changing cv-quals on
	VECTOR_CST.

From-SVN: r230358
2015-11-13 17:24:39 -05:00