1. 16 Nov, 2015 24 commits
    • re PR target/68277 ([SH]: error: insn does not satisfy its constraints when compiling erlang) · 2fe8dfe8
      gcc/
      	PR target/68277
      	* config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
      	operands[2].
      	(*addsi3): Add another insn_and_split variant for reload.
      
      Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>
      
      From-SVN: r230425
      Oleg Endo committed
    • re PR middle-end/68117 (error: invalid PHI argument <<< Unknown tree: <invalid tree code> >>>) · 0d334e37
      2015-11-16  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/68117
      	* cfgexpand.c (pass_expand::execute): Destroy the edge
      	redirection var map before setting RTL CFG hooks.
      
      From-SVN: r230424
      Richard Biener committed
    • [i386]Migrate reduction optabs to reduc_<op>_scal · def4ad19
      	* 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
      Alan Lawrence committed
    • Add __attribute__((__simd__)) to GCC. · fff77217
      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
      Kirill Yukhin committed
    • [AArch64] Fix gcc.target/aarch64/vclz.c · 56b08a58
      	* gcc.target/aarch64/vclz.c: Correctly place INHIB_OPTIMIZATION.
      
      From-SVN: r230421
      Alan Lawrence committed
    • Remove first_pass_instance · 7cf76184
      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
      Tom de Vries committed
    • Remove first_pass_instance from pass_ccp · c06883ac
      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
      Tom de Vries committed
    • Remove first_pass_instance from pass_object_sizes · 813ccd83
      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
      Tom de Vries committed
    • Remove first_pass_instance from pass_dominator · 5ce8d99a
      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
      Tom de Vries committed
    • Remove first_pass_instance from pass_reassoc · 2162bfe1
      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
      Tom de Vries committed
    • Remove first_pass_instance from pass_vrp · b0c77505
      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
      Tom de Vries committed
    • sparc.c (sparc_emit_probe_stack_range): Adjust. · 632b0921
      	* config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
      	(output_probe_stack_range): Rotate the loop and simplify.
      
      From-SVN: r230414
      Eric Botcazou committed
    • rs6000.c (rs6000_emit_probe_stack_rang): Adjust. · c0f39947
      	* config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
      	(output_probe_stack_range): Rotate the loop and simplify.
      
      From-SVN: r230413
      Eric Botcazou committed
    • i386.c (ix86_adjust_stack_and_probe): Adjust and use an lea instruction when possible. · 16c6f54f
      	* 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
      Eric Botcazou committed
    • arm_neon.h: Remove #ifndef check on __ARM_NEON. · ae5e2923
      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
      Christian Bruel committed
    • re PR target/65837 ([arm-linux-gnueabihf] lto1 target specific builtin not available) · b8c7c62b
      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
      Christian Bruel committed
    • [AArch64] Cortex-A57 Choose some new branch costs. · 67707f65
      gcc/
      
      	* config/aarch64/aarch64.c (cortexa57_branch_costs): New.
      	(cortexa57_tunings): Use it.
      
      From-SVN: r230409
      James Greenhalgh committed
    • re PR target/65837 ([arm-linux-gnueabihf] lto1 target specific builtin not available) · c9106282
      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
      Christian Bruel committed
    • coding nit · f39cdf66
      From-SVN: r230407
      Christian Bruel committed
    • re PR target/65837 ([arm-linux-gnueabihf] lto1 target specific builtin not available) · 00c02a70
      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
      Christian Bruel committed
    • bb-slp-32.c: Adjust testcase. · da225f53
      2015-11-16  Richard Biener  <rguenther@suse.de>
      
      	* gcc.dg/vect/bb-slp-32.c: Adjust testcase.
      
      From-SVN: r230405
      Richard Biener committed
    • re PR target/65837 ([arm-linux-gnueabihf] lto1 target specific builtin not available) · 19708abc
      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
      Christian Bruel committed
    • PR 68366 - include emit-rtl.h in sdbout.c · c21f7c9d
      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
      Trevor Saunders committed
    • Daily bump. · 1f25fa05
      From-SVN: r230401
      GCC Administrator committed
  2. 15 Nov, 2015 10 commits
    • on_exit.c: New file. · d9adb476
              * 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
      David Edelsohn committed
    • freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586. · 01a0467e
      	* config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
      	Remove support for FreeBSD 5 and earlier.
      
      From-SVN: r230397
      Gerald Pfeifer committed
    • re PR fortran/50221 (Allocatable string length fails with array assignment) · 78ab5260
      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
      Paul Thomas committed
    • PR libstdc++/68353 fix _GLIBCXX_USE_C99_WCHAR test · 356510ac
      	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
      Jonathan Wakely committed
    • always define ENABLE_OFFLOADING · 1d899da2
      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
      Trevor Saunders committed
    • always define EH_RETURN_HANDLER_RTX · dd4fb609
      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
      Trevor Saunders committed
    • always define TARGET_PECOFF · ab7b5673
      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
      Trevor Saunders committed
    • remove conditional compilation of sdb debug info · 53943148
      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
      Trevor Saunders committed
    • remove EXTENDED_SDB_BASIC_TYPES · d36402d9
      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
      Trevor Saunders committed
    • Daily bump. · 6aab8e4f
      From-SVN: r230388
      GCC Administrator committed
  3. 14 Nov, 2015 6 commits
    • libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5 sections. · 00b9bd52
      	* libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5
      	sections.
      
      From-SVN: r230384
      Jakub Jelinek committed
    • acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Change locale implementation from darwin to DragonFly. · 301d1d00
      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
      Andreas Tobler committed
    • re PR bootstrap/68346 (Bootstrap failure on i686-linux) · 38e5f045
      	PR bootstrap/68346
      	* call.c (build_new_op_1): Don't fold arguments to
      	warn_tautological_cmp.
      
      From-SVN: r230382
      Jason Merrill committed
    • omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_* internal calls - 0 if... · e4606348
      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
      Jakub Jelinek committed
    • re PR fortran/67803 (ICE on concatenating wrong character array constructor) · 67f0527a
      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
      Steven G. Kargl committed
    • Fix std::wstring capacity test for short wchar_t · 230b4ede
      	* 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
      Jonathan Wakely committed