1. 24 Apr, 2017 1 commit
    • types.rst (gccjit::type::get_const): Remove comment. · 0ebd1f00
      gcc_jit_type_get_aligned
      
      gcc/jit/ChangeLog:
      	* docs/cp/topics/types.rst (gccjit::type::get_const): Remove
      	comment.
      	(gccjit::type::get_aligned): Add.
      	* docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_7.
      	* docs/topics/types.rst: Add gcc_jit_type_get_aligned.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-playback.c (gcc::jit::playback::type::get_aligned): New
      	method.
      	* jit-playback.h (gcc::jit::playback::type::get_aligned): New
      	method.
      	* jit-recording.c: Within namespace gcc::jit::recording...
      	(type::get_aligned): New method.
      	(memento_of_get_aligned::replay_into): New method.
      	(memento_of_get_aligned::make_debug_string): New method.
      	(memento_of_get_aligned::write_reproducer): New method.
      	* jit-recording.h: Within namespace gcc::jit::recording...
      	(type::get_aligned): New method.
      	(type::accepts_writes_from): Strip off qualifications from
      	this when comparing pointer equality.
      	(decorated_type): New subclass of type, subsuming the
      	commonality between memento_of_get_const and
      	memento_of_get_volatile.
      	(memento_of_get_const): Make a subclass of decorated_type,
      	rather than type.
      	(memento_of_get_volatile): Likewise.
      	(memento_of_get_aligned): Likewise.
      	* libgccjit++.h: Within namespace gccjit...
      	(type::get_const): New method.
      	(type::get_aligned): New method.
      	* libgccjit.c (gcc_jit_type_get_aligned): New function.
      	* libgccjit.h (gcc_jit_type_get_aligned): New decl.
      	* libgccjit.map (LIBGCCJIT_ABI_7): New
      	(gcc_jit_type_get_aligned): Add.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/all-non-failing-tests.h: Add test-alignment.c.
      	* jit.dg/test-alignment.c: New test case.
      	* jit.dg/test-alignment.cc: New test case.
      	* jit.dg/test-error-gcc_jit_type_get_aligned-non-power-of-two.c:
      	New test case.
      
      From-SVN: r247111
      David Malcolm committed
  2. 19 Jan, 2017 1 commit
    • Make LTO's implementation of LANG_HOOKS_TYPE_FOR_SIZE the default · 8a3a6ab4
      gcc/jit/ChangeLog:
      	* dummy-frontend.c (jit_langhook_type_for_size): Delete.
      	(LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
      
      gcc/ChangeLog:
      	* langhooks-def.h (lhd_type_for_size): New decl.
      	(LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
      	* langhooks.c (lhd_type_for_size): New function, taken from
      	lto_type_for_size.
      
      gcc/lto/ChangeLog:
      	* lto-lang.c (builtin_type_for_size): Convert call to
      	lto_type_for_size to one through the langhook.
      	(lto_type_for_size): Move to langhooks.c and rename to
      	lhd_type_for_size.
      	(LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
      
      From-SVN: r244646
      David Malcolm committed
  3. 18 Jan, 2017 1 commit
  4. 01 Jan, 2017 1 commit
  5. 20 May, 2016 1 commit
    • jit: implement gcc_jit_rvalue_set_bool_require_tail_call · 15c671a7
      This implements the libgccjit support for must-tail-call via
      a new:
        gcc_jit_rvalue_set_bool_require_tail_call
      API entrypoint.
      
      (I didn't implement a wrapper for this within the C++ bindings)
      
      gcc/jit/ChangeLog:
      	* docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_6.
      	* docs/topics/expressions.rst (Function calls): Add documentation
      	of gcc_jit_rvalue_set_bool_require_tail_call.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-common.h (gcc::jit::recording::base_call): Add forward decl.
      	* jit-playback.c: Within namespace gcc::jit::playback...
      	(context::build_call) Add "require_tail_call" param and use it
      	to set CALL_EXPR_MUST_TAIL_CALL.
      	(context::new_call): Add "require_tail_call" param.
      	(context::new_call_through_ptr): Likewise.
      	* jit-playback.h: Within namespace gcc::jit::playback...
      	(context::new_call: Add "require_tail_call" param.
      	(context::new_call_through_ptr): Likewise.
      	(context::build_call): Likewise.
      	* jit-recording.c: Within namespace gcc::jit::recording...
      	(base_call::base_call): New constructor.
      	(base_call::write_reproducer_tail_call): New method.
      	(call::call): Update for inheritance from base_call.
      	(call::replay_into): Provide m_require_tail_call to call
      	to new_call.
      	(call::write_reproducer): Call write_reproducer_tail_call.
      	(call_through_ptr::call_through_ptr): Update for inheritance from
      	base_call.
      	(call_through_ptr::replay_into): Provide m_require_tail_call to call
      	to new_call_through_ptr.
      	(recording::call_through_ptr::write_reproducer): Call
      	write_reproducer_tail_call.
      	* jit-recording.h: Within namespace gcc::jit::recording...
      	(rvalue::dyn_cast_base_call): New virtual function.
      	(class base_call): New subclass of class rvalue.
      	(class call): Inherit from base_call rather than directly from
      	rvalue, moving get_precedence and m_args to base_call.
      	(class call_through_ptr): Likewise.
      	* libgccjit.c (gcc_jit_rvalue_set_bool_require_tail_call): New
      	function.
      	* libgccjit.h
      	(LIBGCCJIT_HAVE_gcc_jit_rvalue_set_bool_require_tail_call): New
      	macro.
      	(gcc_jit_rvalue_set_bool_require_tail_call): New function.
      	* libgccjit.map (LIBGCCJIT_ABI_6): New.
      	(gcc_jit_rvalue_set_bool_require_tail_call): Add.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/all-non-failing-tests.h: Add
      	test-factorial-must-tail-call.c.
      	* jit.dg/test-error-impossible-must-tail-call.c: New test case.
      	* jit.dg/test-factorial-must-tail-call.c: New test case.
      
      From-SVN: r236531
      David Malcolm committed
  6. 17 May, 2016 2 commits
    • jit: gcc diagnostics are jit errors · 6b5423a5
      libgccjit performs numerous checks at the API boundary, but
      if these succeed, it ignores errors and other diagnostics emitted
      within the core of gcc, and treats the compile of a gcc_jit_context
      as having succeeded.
      
      This patch ensures that if any diagnostics are emitted, they
      are visible from the libgccjit API, and that the the context is
      flagged as having failed.
      
      For now any kind of diagnostic is treated as a jit error,
      so warnings and notes also count as errors.
      
      gcc/jit/ChangeLog:
      	* dummy-frontend.c: Include diagnostic.h.
      	(jit_begin_diagnostic): New function.
      	(jit_end_diagnostic): New function.
      	(jit_langhook_init): Register jit_begin_diagnostic
      	and jit_end_diagnostic with the global_dc.
      	* jit-playback.c: Include diagnostic.h.
      	(gcc::jit::playback::context::add_diagnostic): New method.
      	* jit-playback.h (struct diagnostic_context): Add forward
      	declaration.
      	(gcc::jit::playback::context::add_diagnostic): New method.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-error-array-bounds.c: New test case.
      
      From-SVN: r236342
      David Malcolm committed
    • jit: document gcc_jit_context_new_call_through_ptr · f51703a8
      gcc/jit/ChangeLog:
      	* docs/topics/expressions.rst (Function calls): Document
      	gcc_jit_context_new_call_through_ptr.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      
      From-SVN: r236341
      David Malcolm committed
  7. 13 May, 2016 1 commit
    • jit: use FINAL and OVERRIDE throughout · 54ece5e2
      Mark most virtual functions in gcc/jit as being FINAL OVERRIDE.
      gcc::jit::recording::lvalue::access_as_rvalue is the sole OVERRIDE
      that isn't a FINAL.
      
      gcc/jit/ChangeLog:
      	* jit-playback.h: Within namespace gcc:jit::playback...
      	(compile_to_memory::postprocess): Mark with FINAL OVERRIDE.
      	(compile_to_file::postprocess): Likewise.
      	(function::finalizer): Likewise.
      	(block::finalizer): Likewise.
      	(source_file::finalizer): Likewise.
      	(source_line::finalizer): Likewise.
      	* jit-recording.c (gcc::jit::rvalue_usage_validator):: Likewise.
      	* jit-recording.h: Within namespace gcc::jit::recording...
      	(string::replay_into): Mark with FINAL OVERRIDE.
      	(string::make_debug_string): Likewise.
      	(string::write_reproducer): Likewise.
      	(location::replay_into): Likewise.
      	(location::dyn_cast_location): Likewise.
      	(location::make_debug_string): Likewise.
      	(location::write_reproducer): Likewise.
      	(memento_of_get_type::dereference): Likewise.
      	(memento_of_get_type::accepts_writes_from): Likewise.
      	(memento_of_get_type::is_int): Likewise.
      	(memento_of_get_type::is_float): Likewise.
      	(memento_of_get_type::is_bool): Likewise.
      	(memento_of_get_type::is_pointer): Likewise.
      	(memento_of_get_type::is_array): Likewise.
      	(memento_of_get_type::is_void): Likewise.
      	(memento_of_get_type::replay_into): Likewise.
      	(memento_of_get_type::make_debug_string): Likewise.
      	(memento_of_get_type::write_reproducer): Likewise.
      	(memento_of_get_pointer::dereference): Likewise.
      	(memento_of_get_pointer::accepts_writes_from): Likewise.
      	(memento_of_get_pointer::replay_into): Likewise.
      	(memento_of_get_pointer::is_int): Likewise.
      	(memento_of_get_pointer::is_float): Likewise.
      	(memento_of_get_pointer::is_bool): Likewise.
      	(memento_of_get_pointer::is_pointer): Likewise.
      	(memento_of_get_pointer::is_array): Likewise.
      	(memento_of_get_pointer::make_debug_string): Likewise.
      	(memento_of_get_pointer::write_reproducer): Likewise.
      	(memento_of_get_const::dereference): Likewise.
      	(memento_of_get_const::accepts_writes_from): Likewise.
      	(memento_of_get_const::unqualified): Likewise.
      	(memento_of_get_const::is_int): Likewise.
      	(memento_of_get_const::is_float): Likewise.
      	(memento_of_get_const::is_bool): Likewise.
      	(memento_of_get_const::is_pointer): Likewise.
      	(memento_of_get_const::is_array): Likewise.
      	(memento_of_get_const::void replay_into): Likewise;
      	(memento_of_get_const::make_debug_string): Likewise.
      	(memento_of_get_const::write_reproducer): Likewise.
      	(memento_of_get_volatile::dereference): Likewise.
      	(memento_of_get_volatile::unqualified): Likewise.
      	(memento_of_get_volatile::is_int): Likewise.
      	(memento_of_get_volatile::is_float): Likewise.
      	(memento_of_get_volatile::is_bool): Likewise.
      	(memento_of_get_volatile::is_pointer): Likewise.
      	(memento_of_get_volatile::is_array): Likewise.
      	(memento_of_get_volatile::replay_into): Likewise;
      	(memento_of_get_volatile::make_debug_string): Likewise.
      	(memento_of_get_volatile::write_reproducer): Likewise.
      	(array_type::dereference): Likewise.
      	(array_type::is_int): Likewise.
      	(array_type::is_float): Likewise.
      	(array_type::is_bool): Likewise.
      	(array_type::is_pointer): Likewise.
      	(array_type::is_array): Likewise.
      	(array_type::replay_into): Likewise;
      	(array_type::make_debug_string): Likewise.
      	(array_type::write_reproducer): Likewise.
      	(function_type::dereference): Likewise.
      	(function_type::function_dyn_cast_function_type): Likewise.
      	(function_type::function_as_a_function_type): Likewise.
      	(function_type::is_int): Likewise.
      	(function_type::is_float): Likewise.
      	(function_type::is_bool): Likewise.
      	(function_type::is_pointer): Likewise.
      	(function_type::is_array): Likewise.
      	(function_type::replay_into): Likewise;
      	(function_type::make_debug_string): Likewise.
      	(function_type::write_reproducer): Likewise.
      	(field::replay_into): Likewise;
      	(field::write_to_dump): Likewise.
      	(field::make_debug_string): Likewise.
      	(field::write_reproducer): Likewise.
      	(compound_type::dereference): Likewise.
      	(compound_type::is_int): Likewise.
      	(compound_type::is_float): Likewise.
      	(compound_type::is_bool): Likewise.
      	(compound_type::is_pointer): Likewise.
      	(compound_type::is_array): Likewise.
      	(compound_type::has_known_size): Likewise.
      	(struct_::dyn_cast_struct): Likewise.
      	(struct_::replay_into): Likewise.
      	(struct_::access_as_type): Likewise.
      	(struct_::make_debug_string): Likewise.
      	(struct_::write_reproducer): Likewise.
      	(fields::replay_into): Likewise.
      	(fields::write_to_dump): Likewise.
      	(fields::make_debug_string): Likewise.
      	(fields::write_reproducer): Likewise.
      	(union_::replay_into): Likewise.
      	(union_::make_debug_string): Likewise.
      	(union_::write_reproducer): Likewise.
      	(lvalue::access_as_rvalue): Mark with OVERRIDE.
      	(param::replay_into): Mark with FINAL OVERRIDE.
      	(param::visit_children): Likewise.
      	(param::dyn_cast_param): Likewise.
      	(param::access_as_rvalue): Likewise.
      	(param::access_as_lvalue): Likewise.
      	(param::make_debug_string): Likewise.
      	(param::write_reproducer): Likewise.
      	(param::get_precedence): Likewise.
      	(function::replay_into): Likewise.
      	(function::write_to_dump): Likewise.
      	(function::make_debug_string): Likewise.
      	(function::write_reproducer): Likewise.
      	(block::write_to_dump): Likewise.
      	(block::make_debug_string): Likewise.
      	(block::write_reproducer): Likewise.
      	(block::replay_into): Likewise.
      	(global::replay_into): Likewise;
      	(global::visit_children): Likewise.
      	(global::write_to_dump): Likewise.
      	(global::make_debug_string): Likewise.
      	(global::write_reproducer): Likewise.
      	(global::get_precedence): Likewise.
      	(memento_of_new_rvalue_from_const::replay_into): Likewise.
      	(memento_of_new_rvalue_from_const::visit_children): Likewise.
      	(memento_of_new_rvalue_from_const::is_constant): Likewise.
      	(memento_of_new_rvalue_from_const::get_wide_int): Likewise.
      	(memento_of_new_rvalue_from_const::make_debug_string): Likewise.
      	(memento_of_new_rvalue_from_const::write_reproducer): Likewise.
      	(memento_of_new_rvalue_from_const::get_precedence): Likewise.
      	(memento_of_new_string_literal::replay_into): Likewise.
      	(memento_of_new_string_literal::visit_children): Likewise.
      	(memento_of_new_string_literal::make_debug_string): Likewise.
      	(memento_of_new_string_literal::write_reproducer): Likewise.
      	(memento_of_new_string_literal::get_precedence): Likewise.
      	(unary_op::replay_into): Likewise.
      	(unary_op::visit_children): Likewise.
      	(unary_op::make_debug_string): Likewise.
      	(unary_op::write_reproducer): Likewise.
      	(unary_op::get_precedence): Likewise.
      	(binary_op::replay_into): Likewise.
      	(binary_op::visit_children): Likewise.
      	(binary_op::make_debug_string): Likewise.
      	(binary_op::write_reproducer): Likewise.
      	(binary_op::get_precedence): Likewise.
      	(comparison::replay_into): Likewise.
      	(comparison::visit_children): Likewise.
      	(comparison::make_debug_string): Likewise.
      	(comparison::write_reproducer): Likewise.
      	(comparison::get_precedence): Likewise.
      	(cast::replay_into): Likewise.
      	(cast::visit_children): Likewise.
      	(cast::make_debug_string): Likewise.
      	(cast::write_reproducer): Likewise.
      	(cast::get_precedence): Likewise.
      	(call::replay_into): Likewise.
      	(call::visit_children): Likewise.
      	(call::make_debug_string): Likewise.
      	(call::write_reproducer): Likewise.
      	(call::get_precedence): Likewise.
      	(call_through_ptr::replay_into): Likewise.
      	(call_through_ptr::visit_children): Likewise.
      	(call_through_ptr::make_debug_string): Likewise.
      	(call_through_ptr::write_reproducer): Likewise.
      	(call_through_ptr::get_precedence): Likewise.
      	(array_access::replay_into): Likewise.
      	(array_access::visit_children): Likewise.
      	(array_access::make_debug_string): Likewise.
      	(array_access::write_reproducer): Likewise.
      	(array_access::get_precedence): Likewise.
      	(access_field_of_lvalue::replay_into): Likewise.
      	(access_field_of_lvalue::visit_children): Likewise.
      	(access_field_of_lvalue::make_debug_string): Likewise.
      	(access_field_of_lvalue::write_reproducer): Likewise.
      	(access_field_of_lvalue::get_precedence): Likewise.
      	(access_field_rvalue::replay_into): Likewise.
      	(access_field_rvalue::visit_children): Likewise.
      	(access_field_rvalue::make_debug_string): Likewise.
      	(access_field_rvalue::write_reproducer): Likewise.
      	(access_field_rvalue::get_precedence): Likewise.
      	(dereference_field_rvalue::replay_into): Likewise.
      	(dereference_field_rvalue::visit_children): Likewise.
      	(dereference_field_rvalue::make_debug_string): Likewise.
      	(dereference_field_rvalue::write_reproducer): Likewise.
      	(dereference_field_rvalue::get_precedence): Likewise.
      	(dereference_rvalue::replay_into): Likewise.
      	(dereference_rvalue::visit_children): Likewise.
      	(dereference_rvalue::make_debug_string): Likewise.
      	(dereference_rvalue::write_reproducer): Likewise.
      	(dereference_rvalue::get_precedence): Likewise.
      	(get_address_of_lvalue::replay_into): Likewise.
      	(get_address_of_lvalue::visit_children): Likewise.
      	(get_address_of_lvalue::make_debug_string): Likewise.
      	(get_address_of_lvalue::write_reproducer): Likewise.
      	(get_address_of_lvalue::get_precedence): Likewise.
      	(local::replay_into): Likewise.
      	(local::visit_children): Likewise.
      	(local::write_to_dump): Likewise.
      	(local::make_debug_string): Likewise.
      	(local::write_reproducer): Likewise.
      	(local::get_precedence): Likewise.
      	(statement::write_to_dump): Likewise.
      	(eval::replay_into): Likewise.
      	(eval::make_debug_string): Likewise.
      	(eval::write_reproducer): Likewise.
      	(assignment::replay_into): Likewise.
      	(assignment::make_debug_string): Likewise.
      	(assignment::write_reproducer): Likewise.
      	(assignment_op::replay_into): Likewise.
      	(assignment_op::make_debug_string): Likewise.
      	(assignment_op::write_reproducer): Likewise.
      	(comment::replay_into): Likewise.
      	(comment::make_debug_string): Likewise.
      	(comment::write_reproducer): Likewise.
      	(conditional::replay_into): Likewise.
      	(conditional::get_successor_blocks): Likewise.
      	(conditional::make_debug_string): Likewise.
      	(conditional::write_reproducer): Likewise.
      	(jump::replay_into): Likewise.
      	(jump::get_successor_blocks): Likewise.
      	(jump::make_debug_string): Likewise.
      	(jump::write_reproducer): Likewise.
      	(return_::replay_into): Likewise.
      	(return_::get_successor_blocks): Likewise.
      	(return_::make_debug_string): Likewise.
      	(return_::write_reproducer): Likewise.
      	(case_::replay_into): Likewise.
      	(case_::write_reproducer): Likewise.
      	(case_::make_debug_string): Likewise.
      	(switch_::replay_into): Likewise.
      	(switch_::get_successor_blocks): Likewise.
      	(switch_::make_debug_string): Likewise.
      	(switch_::write_reproducer): Likewise.
      
      From-SVN: r236223
      David Malcolm committed
  8. 08 Feb, 2016 1 commit
  9. 26 Jan, 2016 1 commit
  10. 19 Jan, 2016 1 commit
    • PR jit/69144: Ensure that libgccjit's tempdir is fully cleaned-up · 199501ea
      There were a couple of ways that libgccjit could fail to unlink all
      of its tempfiles, leading to /tmp/libgccjit-* tempdirs lingering
      after the build:
      - dumpfiles requested by gcc_jit_context_enable_dump
      - ahead-of-time compilation artifacts which lingered in the tempdir
        after they've been copied up to the output_path.  This was only
        the case for GCC_JIT_OUTPUT_KIND_OBJECT_FILE and
        GCC_JIT_OUTPUT_KIND_EXECUTABLE.
      
      The following patch fixes these by introducing a vec of additional
      cleanups to be performed by gcc:jit::tempdir's dtor.
      
      In addition, if a gcc_jit_result * is leaked and
      GCC_JIT_BOOL_OPTION_DEBUGINFO is enabled, the tempdir will also
      not be cleaned up.  This was the case for tut04-toyvm/toyvm.cc
      which the patch fixes by introducing a wrapper around
      gcc_jit_result *.  Doing this required some updates to the
      corresponding docs.
      
      gcc/jit/ChangeLog:
      	PR jit/69144
      	* jit-playback.c (gcc::jit::playback::compile_to_file::postprocess):
      	Potentially add the temporary artifact to the tempdir's list of
      	tempfiles needing additional cleanup.
      	(gcc::jit::playback::context::extract_any_requested_dumps): Likewise
      	for the dumpfile.
      	* jit-tempdir.c (gcc::jit::tempdir::~tempdir): Clean up additional
      	tempfiles.
      	* jit-tempdir.h (gcc::jit::tempdir::add_temp_file): New method.
      	(gcc::jit::tempdir::m_tempfiles): New field.
      	* docs/cp/intro/tutorial04.rst: Update for changes to toyvm.cc.
      	* docs/examples/tut04-toyvm/toyvm.cc (class compilation_result):
      	New.
      	(toyvm_function::compile): Change return type from function ptr
      	to a compilation_result.
      	(toyvm_function::get_function_name): New accessor.
      	(toyvm_function::m_funcname): New field.
      	(get_function_name): Convert to...
      	(toyvm_function::make_function_name): ...this new method.
      	(toyvm_function::parse): Call make_function_name.
      	(toyvm_function::compile): Convert return type from function ptr
      	to a compilation_result.  Use get_function_name.
      	(compilation_state::compile): Convert return type from
      	gcc_jit_result * to a compilation_result.
      	(test_script): Update for above changes, extracting the code from
      	the compilation_result.
      	(main): Likewise.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      
      From-SVN: r232582
      David Malcolm committed
  11. 04 Jan, 2016 1 commit
  12. 11 Nov, 2015 1 commit
    • decl.c: Remove unused header files. · 69f293c9
      ada
      
      	* gcc-interface/decl.c: Remove unused header files.
      	* gcc-interface/misc.c: Likewise.
      	* gcc-interface/targtyps.c: Likewise.
      	* gcc-interface/trans.c: Likewise.
      	* gcc-interface/utils.c: Likewise.
      c
      
      	* c-array-notation.c: Remove unused header files.
      	* c-aux-info.c: Likewise.
      	* c-convert.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-errors.c: Likewise.
      	* c-lang.c: Likewise.
      	* c-objc-common.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-typeck.c: Likewise.
      	* gccspec.c: Likewise.
      
      c-family
      
      	* array-notation-common.c: Remove unused header files.
      	* c-ada-spec.c: Likewise.
      	* c-cilkplus.c: Likewise.
      	* c-common.c: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-dump.c: Likewise.
      	* c-format.c: Likewise.
      	* c-gimplify.c: Likewise.
      	* c-indentation.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-pch.c: Likewise.
      	* c-ppoutput.c: Likewise.
      	* c-pragma.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-semantics.c: Likewise.
      	* c-ubsan.c: Likewise.
      	* cilk.c: Likewise.
      	* stub-objc.c: Likewise.
      
      cp
      
      	* call.c: Remove unused header files.
      	* class.c: Likewise.
      	* constexpr.c: Likewise.
      	* cp-array-notation.c: Likewise.
      	* cp-cilkplus.c: Likewise.
      	* cp-gimplify.c: Likewise.
      	* cp-lang.c: Likewise.
      	* cp-objcp-common.c: Likewise.
      	* cp-ubsan.c: Likewise.
      	* cvt.c: Likewise.
      	* cxx-pretty-print.c: Likewise.
      	* decl.c: Likewise.
      	* decl2.c: Likewise.
      	* dump.c: Likewise.
      	* error.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* friend.c: Likewise.
      	* g++spec.c: Likewise.
      	* init.c: Likewise.
      	* lambda.c: Likewise.
      	* lex.c: Likewise.
      	* mangle.c: Likewise.
      	* method.c: Likewise.
      	* name-lookup.c: Likewise.
      	* optimize.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* ptree.c: Likewise.
      	* repo.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* tree.c: Likewise.
      	* typeck.c: Likewise.
      	* typeck2.c: Likewise.
      	* vtable-class-hierarchy.c: Likewise.
      
      Fortran
      
      	* array.c: Remove unused header files.
      	* convert.c: Likewise.
      	* cpp.c: Likewise.
      	* decl.c: Likewise.
      	* f95-lang.c: Likewise.
      	* frontend-passes.c: Likewise.
      	* iresolve.c: Likewise.
      	* match.c: Likewise.
      	* module.c: Likewise.
      	* options.c: Likewise.
      	* parse.c: Likewise.
      	* target-memory.c: Likewise.
      	* trans-array.c: Likewise.
      	* trans-common.c: Likewise.
      	* trans-const.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-expr.c: Likewise.
      	* trans-intrinsic.c: Likewise.
      	* trans-io.c: Likewise.
      	* trans-openmp.c: Likewise.
      	* trans-stmt.c: Likewise.
      	* trans-types.c: Likewise.
      	* trans.c: Likewise.
      
      go
      
      	* go-backend.c: Remove unused header files.
      	* go-gcc.cc: Likewise.
      	* go-lang.c: Likewise.
      	* gospec.c: Likewise.
      
      Java
      
      	* boehm.c: Remove unused header files.
      	* builtins.c: Likewise.
      	* class.c: Likewise.
      	* constants.c: Likewise.
      	* decl.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* java-gimplify.c: Likewise.
      	* jcf-dump.c: Likewise.
      	* jcf-io.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* jvgenmain.c: Likewise.
      	* lang.c: Likewise.
      	* mangle.c: Likewise.
      	* mangle_name.c: Likewise.
      	* resource.c: Likewise.
      	* typeck.c: Likewise.
      	* verify-glue.c: Likewise.
      	* verify-impl.c: Likewise.
      	* zextract.c: Likewise.
      
      jit
      
      	* dummy-frontend.c: Remove unused header files.
      	* jit-builtins.c: Likewise.
      	* jit-playback.c: Likewise.
      	* jit-recording.c: Likewise.
      	* jit-spec.c: Likewise.
      	* libgccjit.c: Likewise.
      
      lto
      
      	* lto-lang.c: Remove unused header files.
      	* lto-object.c: Likewise.
      	* lto-partition.c: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto.c: Likewise.
      
      objc
      
      	* objc-act.c: Remove unused header files.
      	* objc-encoding.c: Likewise.
      	* objc-gnu-runtime-abi-01.c: Likewise.
      	* objc-lang.c: Likewise.
      	* objc-map.c: Likewise.
      	* objc-next-runtime-abi-01.c: Likewise.
      	* objc-next-runtime-abi-02.c: Likewise.
      	* objc-runtime-shared-support.c: Likewise.
      
      objcp
      
      	* objcp-decl.c: Remove unused header files.
      	* objcp-lang.c: Likewise.
      
      From-SVN: r230166
      Andrew MacLeod committed
  13. 07 Nov, 2015 1 commit
    • Move #undef DEF_BUILTIN* to builtins.def · 0aad0198
      I was confused at first why tree-core.h was undefining DEF_BUILTIN_CHKP
      before defining it, then undefining it again after including builtins.def.
      This is because builtins.def provides a default definition of
      DEF_BUILTIN_CHKP, but leaves it up to the caller to undefine it where
      necessary.  Similarly to the previous internal-fn.def patch, it seems
      more obvious for builtins.def to #undef things unconditionally.
      
      One argument might have been that keeping preprocessor stuff
      out of the .def files makes it easier for non-cpp parsers.  In practice
      though we already have #ifs and multiline #defines, so single-line #undefs
      should be easy in comparison.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/ada/
      	* gcc-interface/utils.c: Don't undef DEF_BUILTIN.
      
      gcc/c-family/
      	* c-common.c: Don't undef DEF_BUILTIN.
      
      gcc/jit/
      	* jit-builtins.c: Don't undef DEF_BUILTIN.
      
      gcc/lto/
      	* lto-lang.c: Don't undef DEF_BUILTIN.
      
      gcc/
      	* builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
      	* builtins.c, genmatch.c, tree-core.h: Don't undef them here.
      
      From-SVN: r229924
      Richard Sandiford committed
  14. 29 Oct, 2015 1 commit
    • decl.c: Reorder #include's and remove duplicates. · 2adfab87
      ada
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* gcc-interface/decl.c: Reorder #include's and remove duplicates.
      	* gcc-interface/misc.c: Likewise.
      	* gcc-interface/targtyps.c: Likewise.
      	* gcc-interface/trans.c: Likewise.
      	* gcc-interface/utils.c: Likewise.
      	
      c
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* c-array-notation.c: Reorder #include's and remove duplicates.
      	* c-aux-info.c: Likewise.
      	* c-convert.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-errors.c: Likewise.
      	* c-lang.c: Likewise.
      	* c-objc-common.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-typeck.c: Likewise.
      
      c-family
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* array-notation-common.c: Reorder #include's and remove duplicates.
      	* c-ada-spec.c: Likewise.
      	* c-cilkplus.c: Likewise.
      	* c-common.c: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-dump.c: Likewise.
      	* c-format.c: Likewise.
      	* c-gimplify.c: Likewise.
      	* c-indentation.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-pch.c: Likewise.
      	* c-ppoutput.c: Likewise.
      	* c-pragma.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-semantics.c: Likewise.
      	* c-ubsan.c: Likewise.
      	* cilk.c: Likewise.
      	* stub-objc.c: Likewise.
      
      cp
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* call.c: Reorder #include's and remove duplicates.
      	* class.c: Likewise.
      	* constexpr.c: Likewise.
      	* cp-array-notation.c: Likewise.
      	* cp-cilkplus.c: Likewise.
      	* cp-gimplify.c: Likewise.
      	* cp-lang.c: Likewise.
      	* cp-objcp-common.c: Likewise.
      	* cp-ubsan.c: Likewise.
      	* cvt.c: Likewise.
      	* cxx-pretty-print.c: Likewise.
      	* decl.c: Likewise.
      	* decl2.c: Likewise.
      	* dump.c: Likewise.
      	* error.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* friend.c: Likewise.
      	* init.c: Likewise.
      	* lambda.c: Likewise.
      	* lex.c: Likewise.
      	* mangle.c: Likewise.
      	* method.c: Likewise.
      	* name-lookup.c: Likewise.
      	* optimize.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* ptree.c: Likewise.
      	* repo.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* tree.c: Likewise.
      	* typeck.c: Likewise.
      	* typeck2.c: Likewise.
      	* vtable-class-hierarchy.c: Likewise.
      
      fortran
      
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* array.c: Reorder #include's and remove duplicates.
      	* convert.c: Likewise.
      	* cpp.c: Likewise.
      	* decl.c: Likewise.
      	* f95-lang.c: Likewise.
      	* frontend-passes.c: Likewise.
      	* iresolve.c: Likewise.
      	* match.c: Likewise.
      	* module.c: Likewise.
      	* options.c: Likewise.
      	* parse.c: Likewise.
      	* resolve.c: Likewise.
      	* simplify.c: Likewise.
      	* target-memory.c: Likewise.
      	* trans-array.c: Likewise.
      	* trans-common.c: Likewise.
      	* trans-const.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-expr.c: Likewise.
      	* trans-intrinsic.c: Likewise.
      	* trans-io.c: Likewise.
      	* trans-openmp.c: Likewise.
      	* trans-stmt.c: Likewise.
      	* trans-types.c: Likewise.
      	* trans.c: Likewise.
      
      go
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* go-backend.c: Reorder #include's and remove duplicates.
      	* go-lang.c: Likewise.
      
      java
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* boehm.c: Reorder #include's and remove duplicates.
      	* builtins.c: Likewise.
      	* class.c: Likewise.
      	* constants.c: Likewise.
      	* decl.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* java-gimplify.c: Likewise.
      	* jcf-dump.c: Likewise.
      	* jcf-io.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* jvgenmain.c: Likewise.
      	* lang.c: Likewise.
      	* mangle.c: Likewise.
      	* mangle_name.c: Likewise.
      	* resource.c: Likewise.
      	* typeck.c: Likewise.
      	* verify-glue.c: Likewise.
      	* verify-impl.c: Likewise.
      
      jit
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* dummy-frontend.c: Reorder #include's and remove duplicates.
      	* jit-builtins.c: Likewise.
      	* jit-playback.c: Likewise.
      	* jit-recording.c: Likewise.
      	* libgccjit.c: Likewise.
      
      lto
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* lto-lang.c: Reorder #include's and remove duplicates.
      	* lto-object.c: Likewise.
      	* lto-partition.c: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto.c: Likewise.
      
      objc
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* objc-lang.c: Reorder #include's and remove duplicates.
      	* objc-map.c: Likewise.
      
      objcp
      2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
      
      	* objcp-decl.c: Reorder #include's and remove duplicates.
      	* objcp-lang.c: Likewise.
      
      From-SVN: r229533
      Andrew MacLeod committed
  15. 13 Oct, 2015 1 commit
    • builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR, [...]): New. · d9a6bd32
      gcc/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
      	BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
      	BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
      	BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
      	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
      	BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
      	BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
      	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
      	* cgraph.h (enum cgraph_simd_clone_arg_type): Add
      	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
      	(struct cgraph_simd_clone_arg): Adjust comment.
      	* coretypes.h (struct gomp_ordered): New forward decl.
      	* gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
      	set critical clauses to it.
      	(gimple_build_omp_ordered): Return gomp_ordered * instead of
      	gimple *.  Add CLAUSES argument, set ordered clauses to it.
      	(gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
      	GIMPLE_OMP_ORDERED.
      	* gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
      	GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
      	* gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
      	to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
      	GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
      	GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
      	Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
      	GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
      	renumber
      	GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
      	(gomp_critical): Add clauses field.
      	(gomp_ordered): New struct.
      	(is_a_helper <gomp_ordered *>::test): New inline.
      	(gimple_build_omp_critical): Add CLAUSES argument.
      	(gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
      	instead of gimple *.
      	(gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
      	gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
      	gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
      	gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
      	inline functions.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
      	(dump_gimple_omp_target): Handle enter data and exit data.
      	(dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
      	(dump_gimple_omp_critical): Print clauses.
      	(dump_gimple_omp_ordered): New function.
      	(dump_gimple_omp_task): Handle taskloop.
      	(pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
      	GIMPLE_OMP_ORDERED.
      	* gimple-walk.c (walk_gimple_op): Walk clauses on
      	GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
      	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
      	(enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
      	(struct gimplify_omp_ctx): Add loop_iter_var,
      	target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
      	and target_firstprivatize_array_bases fields.
      	(delete_omp_context): Release loop_iter_var.
      	(gimplify_bind_expr): Handle ORT_NONE.
      	(maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
      	ORT_COMBINED_TARGET.
      	(is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
      	OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
      	(omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
      	ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
      	ctx->target_map_scalars_firstprivate.
      	(omp_add_variable): Handle ORT_NONE.  Allow map clause together with
      	data sharing clauses.  For data sharing clause with VLA decl
      	on omp target/target data don't add firstprivate for the pointer.
      	Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
      	(omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
      	the addition of ORT_COMBINED_TARGET.
      	(omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
      	for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
      	pointers as zero length array sections and
      	ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
      	data sharing.
      	(omp_check_private): Handle omp_member_access_dummy_var vars.
      	(find_decl_expr): New function.
      	(gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
      	complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
      	Handle OMP_CLAUSE_GANG separately.  Handle
      	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
      	clauses.  Diagnose linear clause on combined
      	distribute {, parallel for} simd construct, unless it is the loop
      	iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
      	Handle map clauses with COMPONENT_REF.  Initialize
      	ctx->target_map_scalars_firstprivate,
      	ctx->target_firstprivatize_array_bases and
      	ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
      	linear clause even to target region if combined.  Remove
      	map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
      	OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
      	map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
      	Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
      	OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
      	For linear clause on worksharing loop combined with parallel add
      	shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
      	with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
      	omp_member_access_dummy_var vars.  Add lastprivate clause to outer
      	taskloop if needed.
      	(gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
      	If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
      	GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
      	GOMP_MAP_POINTER.
      	(gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
      	of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
      	in target body.  Handle removal of struct mapping if struct is not
      	seen in target body.  Remove GOMP_MAP_STRUCT map clause on
      	OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
      	addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
      	instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
      	for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
      	clause appear together.  Handle
      	OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
      	clause if it has map-type-modifier always.  Handle
      	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
      	clauses.
      	(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
      	Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
      	callers.
      	(gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
      	loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
      	iterators in doacross loops.
      	(gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
      	gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
      	for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
      	for the addition of ORT_COMBINED_TARGET.
      	(gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
      	gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
      	and OMP_TARGET_EXIT_DATA.
      	(gimplify_omp_ordered): New function.
      	(gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
      	OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
      	Gimplify clauses on OMP_CRITICAL.
      	* internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
      	expand_GOMP_SIMD_ORDERED_END): New functions.
      	* internal-fn.def (GOMP_SIMD_ORDERED_START,
      	GOMP_SIMD_ORDERED_END): New internal functions.
      	* omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
      	BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
      	BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
      	BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
      	BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
      	BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
      	(BUILT_IN_GOMP_TASK): Add INT argument to the end.
      	(BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
      	adjust type.
      	(BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
      	GOMP_target_data_41, adjust type.
      	(BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
      	GOMP_target_update_41, adjust type.
      	* omp-low.c (struct omp_region): Adjust comments, add ord_stmt
      	field.
      	(struct omp_for_data): Add ordered and simd_schedule fields.
      	(omp_member_access_dummy_var, unshare_and_remap_1,
      	unshare_and_remap, is_taskloop_ctx): New functions.
      	(is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
      	(extract_omp_for_data): Handle taskloops and doacross loops
      	and simd schedule modifier.
      	(omp_adjust_chunk_size): New function.
      	(get_ws_args_for): Use it.
      	(lookup_sfield): Change first argument to splay_tree_key,
      	add overload with first argument tree.
      	(maybe_lookup_field): Likewise.
      	(use_pointer_for_field): Handle omp_member_access_dummy_var.
      	(omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
      	task_shared_vars, clear TREE_ADDRESSABLE on the copy.
      	(build_outer_var_ref): Add LASTPRIVATE argument, handle
      	taskloops and omp_member_access_dummy_var vars.
      	(build_sender_ref): Change first argument to splay_tree_key,
      	add overload with first argument tree.
      	(install_var_field): For mask & 8 use &DECL_UID as key instead
      	of the tree itself.
      	(fixup_child_record_type): Const qualify *.omp_data_i.
      	(scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
      	C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
      	OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
      	OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
      	on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
      	(create_omp_child_function): Set TREE_READONLY on .omp_data_i.
      	(find_combined_for): Allow searching for different GIMPLE_OMP_FOR
      	kinds.
      	(add_taskreg_looptemp_clauses): New function.
      	(scan_omp_parallel): Use it.
      	(scan_omp_task): Likewise.
      	(finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
      	For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
      	(check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
      	and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
      	sandwiched taskloop constructs.  Type check
      	OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
      	region.  Diagnose depend(source) or depend(sink:...) on
      	target constructs or task/taskloop.
      	(handle_simd_reference): Use get_name.
      	(lower_rec_input_clauses): Likewise.  Ignore all
      	OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
      	Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
      	before passing it to omp_clause_{default,copy}_ctor.  Handle
      	OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
      	lastprivate_firstprivate flag for linear that needs copyin and
      	copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
      	(lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
      	on taskloop lookup decl in outer context.  Pass true to
      	build_outer_var_ref lastprivate argument.  Handle
      	OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
      	outside of outer taskloop for.
      	(lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
      	OMP_CLAUSE_DECL.
      	(lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
      	GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
      	omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
      	with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
      	(lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
      	abstract origin.  Handle omp_member_access_dummy_var vars.
      	(expand_parallel_call): Use expand_omp_build_assign.
      	(expand_task_call): Handle taskloop construct expansion.  Add
      	REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
      	integers.  Add priority argument to GOMP_task* calls.  Or in
      	GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
      	GOMP_task call.
      	(expand_omp_build_assign): Add prototype.  Add AFTER
      	argument, if true emit statements after *GSI_P and continue linking.
      	(expand_omp_taskreg): Adjust expand_task_call caller.
      	(expand_omp_for_init_counts): Rename zero_iter_bb argument to
      	zero_iter1_bb and first_zero_iter to first_zero_iter1, add
      	zero_iter2_bb and first_zero_iter2 arguments, handle computation
      	of counts even for ordered loops.
      	(expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
      	(expand_omp_ordered_source, expand_omp_ordered_sink,
      	expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
      	functions.
      	(expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
      	clauses on worksharing loop.  Handle DOACROSS loop expansion.
      	(expand_omp_for_static_nochunk): Handle linear clauses on
      	worksharing loop.  Adjust expand_omp_for_init_counts
      	callers.
      	(expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
      	(expand_omp_simd): Handle addressable fd->loop.v.  Adjust
      	expand_omp_for_init_counts callers.
      	(expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
      	functions.
      	(expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
      	Handle doacross loops.
      	(expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
      	GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
      	GOMP_target_{41,update_41,enter_exit_data} libcalls.
      	(expand_omp): Don't expand ordered depend constructs here, record
      	ord_stmt instead for later expand_omp_for_generic.
      	(build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
      	GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
      	clause as stand-alone directive.
      	(lower_omp_ordered_clauses): New function.
      	(lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
      	don't lower anything.
      	(lower_omp_for_lastprivate): Use last _looptemp_ clause
      	on taskloop for comparison.
      	(lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
      	and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
      	expansion for linear adjustments.
      	(create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
      	(lower_depend_clauses): Assert not seeing sink/source depend kinds.
      	Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
      	to tree * pointing to the stmt's clauses.
      	(lower_omp_taskreg): Adjust lower_depend_clauses caller.
      	(lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
      	and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
      	GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
      	map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
      	clauses.  Always use short kind and 8-bit align shift.
      	(lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
      	(struct lower_omp_regimplify_operands_data): New type.
      	(lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
      	New functions.
      	(lower_omp_1): Use lower_omp_regimplify_operands instead of
      	gimple_regimplify_operands.
      	(make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
      	GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
      	clause as stand-alone directive.
      	(simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
      	(simd_clone_mangle): Mangle the various linear kinds
      	per the new ABI.
      	(simd_clone_adjust_argument_types): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
      	(simd_clone_init_simd_arrays): Don't do anything for uval.
      	(simd_clone_adjust): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
      	SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
      	Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
      	* omp-low.h (omp_member_access_dummy_var): New prototype.
      	* passes.def (pass_simduid_cleanup): Schedule another copy of the
      	pass after all optimizations.
      	* tree.c (omp_clause_code_name): Add entries for
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
      	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
      	(omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
      	arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
      	(walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
      	OMP_CLAUSE_REDUCTION 5 arguments.  Handle
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
      	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
      	clauses.
      	* tree-core.h (enum omp_clause_linear_kind): New.
      	(struct tree_omp_clause): Change type of map_kind
      	from unsigned char to unsigned int.  Add subcode.if_modifier
      	and subcode.linear_kind fields.
      	(enum omp_clause_code): Add
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
      	and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
      	(OMP_CLAUSE_REDUCTION): Document
      	OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
      	(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
      	* tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
      	(OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
      	operand.
      	(OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
      	operand.
      	(OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
      	codes.
      	* tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
      	(OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
      	char.
      	(OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
      	(OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
      	(OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
      	(OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
      	OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
      	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
      	OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
      	OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
      	OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
      	OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
      	OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
      	OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
      	OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
      	* tree-inline.c (remap_gimple_stmt): Handle clauses on
      	GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
      	IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
      	* tree-nested.c (convert_nonlocal_omp_clauses): Handle
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
      	and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
      	clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
      	(convert_local_omp_clauses): Likewise.
      	* tree-pretty-print.c (dump_omp_clause): Handle
      	OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
      	and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
      	clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
      	OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
      	OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
      	GOMP_MAP_FORCE_DEALLOC.  Handle
      	GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
      	(dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
      	and clauses on OMP_ORDERED and OMP_CRITICAL.
      	* tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
      	Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
      	(vectorize_loops): Adjust comments.
      	(pass_simduid_cleanup::execute): Likewise.
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
      	* wide-int.h (wi::gcd): New.
      gcc/c-family/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      
      	* c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
      	DEF_FUNCTION_TYPE_10 and DEF_FUNCTION_TYPE_11.
      	(c_define_builtins): Likewise.
      	* c-common.h (enum c_omp_clause_split): Add
      	C_OMP_CLAUSE_SPLIT_TASKLOOP.
      	(c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
      	(c_finish_omp_for): Add ORIG_DECLV argument.
      	* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
      	201511 instead of 201307.
      	* c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
      	OMP_CRITICAL_CLAUSES to it.
      	(c_finish_omp_ordered): Add CLAUSES argument, set
      	OMP_ORDERED_CLAUSES to it.
      	(c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
      	to it if OMP_FOR.  Clear DECL_INITIAL on the IVs.
      	(c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
      	constructs and new OpenMP 4.5 clauses.  Clear
      	OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD.  Add
      	verification code.
      	* c-pragma.c (omp_pragmas_simd): Add taskloop.
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
      	(enum pragma_omp_clause): Add
      	PRAGMA_OMP_CLAUSE_{DEFAULTMAP,GRAINSIZE,HINT,{IS,USE}_DEVICE_PTR}
      	and PRAGMA_OMP_CLAUSE_{LINK,NOGROUP,NUM_TASKS,PRIORITY,SIMD,THREADS}.
      gcc/c/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      
      	* c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
      	(c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
      	(c_parser_omp_variable_list): Handle structure elements for
      	map, to and from clauses.  Handle array sections in reduction
      	clause.  Formatting fixes.
      	(c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
      	if clause modifiers.
      	(c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
      	c_parser_omp_clause_priority, c_parser_omp_clause_hint,
      	c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
      	c_parser_omp_clause_is_device_ptr): New functions.
      	(c_parser_omp_clause_ordered): Parse optional parameter.
      	(c_parser_omp_clause_reduction): Handle array reductions.
      	(c_parser_omp_clause_schedule): Parse optional simd modifier.
      	(c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
      	functions.
      	(c_parser_omp_clause_linear): Parse linear clause modifiers.
      	(c_parser_omp_clause_depend_sink): New function.
      	(c_parser_omp_clause_depend): Parse source/sink depend kinds.
      	(c_parser_omp_clause_map): Parse release/delete map kinds and
      	optional always modifier.
      	(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
      	and c_finish_omp_clauses callers.
      	(c_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
      	Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
      	(c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
      	(OMP_CRITICAL_CLAUSE_MASK): Define.
      	(c_parser_omp_critical): Parse critical clauses.
      	(c_parser_omp_for_loop): Handle doacross loops, adjust
      	c_finish_omp_for and c_finish_omp_clauses callers.
      	(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
      	(c_parser_omp_simd): Allow ordered clause if it has no parameter.
      	(OMP_FOR_CLAUSE_MASK): Add linear clause.
      	(c_parser_omp_for): Disallow ordered clause when combined with
      	distribute.  Disallow linear clause when combined with distribute
      	and not combined with simd.
      	(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
      	(c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
      	parse clauses and if depend clause is found, don't parse a body.
      	(c_parser_omp_parallel): Disallow copyin clause on target parallel.
      	Allow target parallel without for after it.
      	(OMP_TASK_CLAUSE_MASK): Add priority clause.
      	(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
      	(c_parser_omp_target_data): Diagnose no map clauses or clauses with
      	invalid kinds.
      	(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
      	(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
      	OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
      	(c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
      	functions.
      	(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
      	defaultmap and is_device_ptr clauses.
      	(c_parser_omp_target): Parse target parallel and target simd.  Set
      	OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
      	and target exit data.  Diagnose invalid map kinds.
      	(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
      	(c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
      	construct.
      	(c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
      	&omp_priv.
      	(OMP_TASKLOOP_CLAUSE_MASK): Define.
      	(c_parser_omp_taskloop): New function.
      	(c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
      	handle PRAGMA_OMP_TASKLOOP.
      	(c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
      	* c-tree.h (c_finish_omp_clauses): Add two new arguments.
      	* c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
      	Add IS_OMP argument, handle structure element bases, diagnose
      	bitfields, pass IS_OMP recursively, diagnose known zero length
      	array sections in depend clauses, handle array sections in reduction
      	clause, diagnose negative length even for pointers.
      	(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
      	types, pass IS_OMP down to handle_omp_array_sections_1, handle
      	array sections in reduction clause, set
      	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
      	length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
      	(c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
      	Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
      gcc/cp/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      
      	* class.c (finish_struct_1): Call finish_omp_declare_simd_methods.
      	* cp-gimplify.c (cp_gimplify_expr): Handle OMP_TASKLOOP.
      	(cp_genericize_r): Likewise.
      	(cxx_omp_finish_clause): Don't diagnose references.
      	(cxx_omp_disregard_value_expr): New function.
      	* cp-objcp-common.h (LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR): Redefine.
      	* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Document for OMP_TASKLOOP.
      	(DECL_OMP_PRIVATIZED_MEMBER): Define.
      	(finish_omp_declare_simd_methods, push_omp_privatization_clauses,
      	pop_omp_privatization_clauses, save_omp_privatization_clauses,
      	restore_omp_privatization_clauses, omp_privatize_field,
      	cxx_omp_disregard_value_expr): New prototypes.
      	(finish_omp_clauses): Add two new arguments.
      	(finish_omp_for): Add ORIG_DECLV argument.
      	* parser.c (cp_parser_lambda_body): Call
      	save_omp_privatization_clauses and restore_omp_privatization_clauses.
      	(cp_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
      	(cp_parser_omp_var_list_no_open): Handle structure elements for
      	map, to and from clauses.  Handle array sections in reduction
      	clause.  Parse this keyword.  Formatting fixes.
      	(cp_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
      	if clause modifiers.
      	(cp_parser_omp_clause_num_tasks, cp_parser_omp_clause_grainsize,
      	cp_parser_omp_clause_priority, cp_parser_omp_clause_hint,
      	cp_parser_omp_clause_defaultmap): New functions.
      	(cp_parser_omp_clause_ordered): Parse optional parameter.
      	(cp_parser_omp_clause_reduction): Handle array reductions.
      	(cp_parser_omp_clause_schedule): Parse optional simd modifier.
      	(cp_parser_omp_clause_nogroup, cp_parser_omp_clause_orderedkind):
      	New functions.
      	(cp_parser_omp_clause_linear): Parse linear clause modifiers.
      	(cp_parser_omp_clause_depend_sink): New function.
      	(cp_parser_omp_clause_depend): Parse source/sink depend kinds.
      	(cp_parser_omp_clause_map): Parse release/delete map kinds and
      	optional always modifier.
      	(cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_if
      	and finish_omp_clauses callers.
      	(cp_parser_omp_all_clauses): Likewise.  Parse OpenMP 4.5 clauses.
      	Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
      	(OMP_CRITICAL_CLAUSE_MASK): Define.
      	(cp_parser_omp_critical): Parse critical clauses.
      	(cp_parser_omp_for_incr): Use cp_tree_equal if
      	processing_template_decl.
      	(cp_parser_omp_for_loop_init): Return tree instead of bool.  Handle
      	non-static data member iterators.
      	(cp_parser_omp_for_loop): Handle doacross loops, adjust
      	finish_omp_for and finish_omp_clauses callers.
      	(cp_omp_split_clauses): Adjust finish_omp_clauses caller.
      	(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
      	(cp_parser_omp_simd): Allow ordered clause if it has no parameter.
      	(OMP_FOR_CLAUSE_MASK): Add linear clause.
      	(cp_parser_omp_for): Disallow ordered clause when combined with
      	distribute.  Disallow linear clause when combined with distribute
      	and not combined with simd.
      	(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
      	(cp_parser_omp_ordered): Add CONTEXT argument, return bool instead
      	of tree, parse clauses and if depend clause is found, don't parse
      	a body.
      	(cp_parser_omp_parallel): Disallow copyin clause on target parallel.
      	Allow target parallel without for after it.
      	(OMP_TASK_CLAUSE_MASK): Add priority clause.
      	(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
      	(cp_parser_omp_target_data): Diagnose no map clauses or clauses with
      	invalid kinds.
      	(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
      	(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
      	OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
      	(cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data): New
      	functions.
      	(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
      	defaultmap and is_device_ptr clauses.
      	(cp_parser_omp_target): Parse target parallel and target simd.  Set
      	OMP_TARGET_COMBINED on combined constructs.  Parse target enter data
      	and target exit data.  Diagnose invalid map kinds.
      	(cp_parser_oacc_cache): Adjust finish_omp_clauses caller.
      	(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
      	(cp_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
      	construct.
      	(OMP_TASKLOOP_CLAUSE_MASK): Define.
      	(cp_parser_omp_taskloop): New function.
      	(cp_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
      	handle PRAGMA_OMP_TASKLOOP.
      	(cp_parser_pragma): Handle PRAGMA_OMP_ORDERED here directly,
      	handle PRAGMA_OMP_TASKLOOP, call push_omp_privatization_clauses
      	and pop_omp_privatization_clauses around parsing calls.
      	(cp_parser_cilk_for): Adjust finish_omp_clauses caller.
      	* pt.c (apply_late_template_attributes): Adjust tsubst_omp_clauses
      	and finish_omp_clauses callers.
      	(tsubst_omp_clause_decl): Return NULL if decl is NULL.
      	For TREE_LIST, copy over OMP_CLAUSE_DEPEND_SINK_NEGATIVE bit.
      	Use tsubst_expr instead of tsubst_copy, undo convert_from_reference
      	effects.
      	(tsubst_omp_clauses): Add ALLOW_FIELDS argument.  Handle new
      	OpenMP 4.5 clauses.  Use tsubst_omp_clause_decl for more clauses.
      	If ALLOW_FIELDS, handle non-static data members in the clauses.
      	Clear OMP_CLAUSE_LINEAR_STEP if it has been cleared before.
      	(omp_parallel_combined_clauses): New variable.
      	(tsubst_omp_for_iterator): Add ORIG_DECLV argument, recur on
      	OMP_FOR_ORIG_DECLS, handle non-static data member iterators.
      	Improve handling of clauses on combined constructs.
      	(tsubst_expr): Call push_omp_privatization_clauses and
      	pop_omp_privatization_clauses around instantiation of certain
      	OpenMP constructs, improve handling of clauses on combined
      	constructs, handle OMP_TASKLOOP, adjust tsubst_omp_for_iterator,
      	tsubst_omp_clauses and finish_omp_for callers, handle clauses on
      	critical and ordered, handle OMP_TARGET_{ENTER,EXIT}_DATA.
      	(instantiate_decl): Call save_omp_privatization_clauses and
      	restore_omp_privatization_clauses around instantiation.
      	(dependent_omp_for_p): Fix up comment typo.  Handle SCOPE_REF.
      	* semantics.c (omp_private_member_map, omp_private_member_vec,
      	omp_private_member_ignore_next): New variables.
      	(finish_non_static_data_member): Return dummy decl for privatized
      	non-static data members.
      	(omp_clause_decl_field, omp_clause_printable_decl,
      	omp_note_field_privatization, omp_privatize_field): New functions.
      	(handle_omp_array_sections_1): Fix comment typo.
      	Add IS_OMP argument, handle structure element bases, diagnose
      	bitfields, pass IS_OMP recursively, diagnose known zero length
      	array sections in depend clauses, handle array sections in reduction
      	clause, diagnose negative length even for pointers.
      	(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
      	types, pass IS_OMP down to handle_omp_array_sections_1, handle
      	array sections in reduction clause, set
      	OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
      	length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
      	(finish_omp_reduction_clause): Handle array sections and arrays.
      	Use omp_clause_printable_decl.
      	(finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink):
      	New functions.
      	(finish_omp_clauses): Add ALLOW_FIELDS and DECLARE_SIMD arguments.
      	Handle new OpenMP 4.5 clauses and new restrictions for the old
      	ones, handle non-static data members, reject this keyword when not
      	allowed.
      	(push_omp_privatization_clauses, pop_omp_privatization_clauses,
      	save_omp_privatization_clauses, restore_omp_privatization_clauses):
      	New functions.
      	(handle_omp_for_class_iterator): Handle OMP_TASKLOOP class iterators.
      	Add collapse and ordered arguments.  Fix handling of lastprivate
      	iterators in doacross loops.
      	(finish_omp_for): Add ORIG_DECLV argument, handle doacross loops,
      	adjust c_finish_omp_for, handle_omp_for_class_iterator and
      	finish_omp_clauses callers.  Fill in OMP_CLAUSE_LINEAR_STEP on simd
      	loops with non-static data member iterators.
      gcc/fortran/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* f95-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11, DEF_FUNCTION_TYPE_VAR_1): Define.
      	* trans-openmp.c (gfc_trans_omp_clauses): Set
      	OMP_CLAUSE_IF_MODIFIER to ERROR_MARK, OMP_CLAUSE_ORDERED_EXPR
      	to NULL.
      	(gfc_trans_omp_critical): Adjust for addition of clauses.
      	(gfc_trans_omp_ordered): Likewise.
      	* types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
      	BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
      	BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
      	BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
      	BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
      	BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
      	BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
      	(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
      gcc/lto/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      
      	* lto-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11): Define.
      gcc/jit/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      
      	* jit-builtins.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11): Define.
      	* jit-builtins.h (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11): Define.
      gcc/ada/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      
      	* gcc-interface/utils.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
      	DEF_FUNCTION_TYPE_11): Define.
      gcc/testsuite/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      
      	* c-c++-common/gomp/cancel-1.c (f2): Add map clause to target data.
      	* c-c++-common/gomp/clauses-1.c: New test.
      	* c-c++-common/gomp/clauses-2.c: New test.
      	* c-c++-common/gomp/clauses-3.c: New test.
      	* c-c++-common/gomp/clauses-4.c: New test.
      	* c-c++-common/gomp/declare-target-1.c: New test.
      	* c-c++-common/gomp/declare-target-2.c: New test.
      	* c-c++-common/gomp/depend-3.c: New test.
      	* c-c++-common/gomp/depend-4.c: New test.
      	* c-c++-common/gomp/doacross-1.c: New test.
      	* c-c++-common/gomp/if-1.c: New test.
      	* c-c++-common/gomp/if-2.c: New test.
      	* c-c++-common/gomp/linear-1.c: New test.
      	* c-c++-common/gomp/map-2.c: New test.
      	* c-c++-common/gomp/map-3.c: New test.
      	* c-c++-common/gomp/nesting-1.c (f_omp_parallel,
      	f_omp_target_data): Add map clause to target data.
      	* c-c++-common/gomp/nesting-warn-1.c (f_omp_target): Likewise.
      	* c-c++-common/gomp/ordered-1.c: New test.
      	* c-c++-common/gomp/ordered-2.c: New test.
      	* c-c++-common/gomp/ordered-3.c: New test.
      	* c-c++-common/gomp/pr61486-1.c (foo): Remove linear clause
      	on non-iterator.
      	* c-c++-common/gomp/pr61486-2.c (test, test2): Remove ordered
      	clause and ordered construct where no longer allowed.
      	* c-c++-common/gomp/priority-1.c: New test.
      	* c-c++-common/gomp/reduction-1.c: New test.
      	* c-c++-common/gomp/schedule-simd-1.c: New test.
      	* c-c++-common/gomp/sink-1.c: New test.
      	* c-c++-common/gomp/sink-2.c: New test.
      	* c-c++-common/gomp/sink-3.c: New test.
      	* c-c++-common/gomp/sink-4.c: New test.
      	* c-c++-common/gomp/udr-1.c: New test.
      	* c-c++-common/taskloop-1.c: New test.
      	* c-c++-common/cpp/openmp-define-3.c: Adjust for the new
      	value of _OPENMP macro.
      	* c-c++-common/cilk-plus/PS/body.c (foo): Adjust expected diagnostics.
      	* c-c++-common/goacc-gomp/nesting-fail-1.c (f_acc_parallel,
      	f_acc_kernels, f_acc_data, f_acc_loop): Add map clause to target data.
      	* gcc.dg/gomp/clause-1.c:
      	* gcc.dg/gomp/reduction-1.c: New test.
      	* gcc.dg/gomp/sink-fold-1.c: New test.
      	* gcc.dg/gomp/sink-fold-2.c: New test.
      	* gcc.dg/gomp/sink-fold-3.c: New test.
      	* gcc.dg/vect/vect-simd-clone-15.c: New test.
      	* g++.dg/gomp/clause-1.C (T::test): Remove dg-error on privatization
      	of non-static data members.
      	* g++.dg/gomp/clause-3.C (foo): Remove one dg-error directive.
      	Add some linear clause tests.
      	* g++.dg/gomp/declare-simd-3.C: New test.
      	* g++.dg/gomp/linear-1.C: New test.
      	* g++.dg/gomp/member-1.C: New test.
      	* g++.dg/gomp/member-2.C: New test.
      	* g++.dg/gomp/pr66571-2.C: New test.
      	* g++.dg/gomp/pr67504.C (foo): Add test for ordered clause with
      	dependent argument.
      	* g++.dg/gomp/pr67522.C (foo): Add test for invalid array section
      	in reduction clause.
      	* g++.dg/gomp/reference-1.C: New test.
      	* g++.dg/gomp/sink-1.C: New test.
      	* g++.dg/gomp/sink-2.C: New test.
      	* g++.dg/gomp/sink-3.C: New test.
      	* g++.dg/gomp/task-1.C: Remove both dg-error directives.
      	* g++.dg/gomp/this-1.C: New test.
      	* g++.dg/gomp/this-2.C: New test.
      	* g++.dg/vect/simd-clone-2.cc: New test.
      	* g++.dg/vect/simd-clone-2.h: New test.
      	* g++.dg/vect/simd-clone-3.cc: New test.
      	* g++.dg/vect/simd-clone-4.cc: New test.
      	* g++.dg/vect/simd-clone-4.h: New test.
      	* g++.dg/vect/simd-clone-5.cc: New test.
      include/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* gomp-constants.h (GOMP_MAP_FLAG_ALWAYS): Define.
      	(enum gomp_map_kind): Add GOMP_MAP_FIRSTPRIVATE,
      	GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_USE_DEVICE_PTR,
      	GOMP_MAP_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_ALWAYS_TO,
      	GOMP_MAP_ALWAYS_FROM, GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT,
      	GOMP_MAP_DELETE_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_DELETE,
      	GOMP_MAP_RELEASE, GOMP_MAP_FIRSTPRIVATE_POINTER.
      	(GOMP_MAP_ALWAYS_TO_P, GOMP_MAP_ALWAYS_FROM_P): Define.
      	(GOMP_TASK_FLAG_UNTIED, GOMP_TASK_FLAG_FINAL, GOMP_TASK_FLAG_MERGEABLE,
      	GOMP_TASK_FLAG_DEPEND, GOMP_TASK_FLAG_PRIORITY, GOMP_TASK_FLAG_UP,
      	GOMP_TASK_FLAG_GRAINSIZE, GOMP_TASK_FLAG_IF, GOMP_TASK_FLAG_NOGROUP,
      	GOMP_TARGET_FLAG_NOWAIT, GOMP_TARGET_FLAG_EXIT_DATA,
      	GOMP_TARGET_FLAG_UPDATE): Define.
      libgomp/
      2015-10-13  Jakub Jelinek  <jakub@redhat.com>
      	    Aldy Hernandez  <aldyh@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* config/linux/affinity.c (omp_get_place_num_procs,
      	omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
      	* config/linux/doacross.h: New file.
      	* config/posix/affinity.c (omp_get_place_num_procs,
      	omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
      	* config/posix/doacross.h: New file.
      	* env.c: Include gomp-constants.h.
      	(struct gomp_task_icv): Rename run_sched_modifier to
      	run_sched_chunk_size.
      	(gomp_max_task_priority_var): New variable.
      	(parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
      	(handle_omp_display_env): Change _OPENMP value from 201307 to
      	201511.  Print OMP_MAX_TASK_PRIORITY.
      	(initialize_env): Parse OMP_MAX_TASK_PRIORITY.
      	(omp_set_schedule, omp_get_schedule): Rename modifier argument to
      	chunk_size and run_sched_modifier to run_sched_chunk_size.
      	(omp_get_max_task_priority, omp_get_initial_device,
      	omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
      	omp_get_partition_place_nums): New functions.
      	* fortran.c (omp_set_schedule_, omp_set_schedule_8_,
      	omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
      	to chunk_size.
      	(omp_get_num_places_, omp_get_place_num_procs_,
      	omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
      	omp_get_place_proc_ids_8_, omp_get_place_num_,
      	omp_get_partition_num_places_, omp_get_partition_place_nums_,
      	omp_get_partition_place_nums_8_, omp_get_initial_device_,
      	omp_get_max_task_priority_): New functions.
      	* libgomp_g.h (GOMP_loop_doacross_static_start,
      	GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
      	GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
      	GOMP_loop_ull_doacross_dynamic_start,
      	GOMP_loop_ull_doacross_guided_start,
      	GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
      	GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
      	GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
      	GOMP_target_data_41, GOMP_target_update_41,
      	GOMP_target_enter_exit_data): New prototypes.
      	(GOMP_task): Add prototype argument.
      	* libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
      	(struct gomp_doacross_work_share): New type.
      	(struct gomp_work_share): Add doacross field.
      	(struct gomp_task_icv): Rename run_sched_modifier to
      	run_sched_chunk_size.
      	(enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
      	GOMP_TASK_UNDEFERRED.  Add comments.
      	(struct gomp_task_depend_entry): Add comments.
      	(struct gomp_task): Likewise.
      	(struct gomp_taskgroup): Likewise.
      	(struct gomp_target_task): New type.
      	(struct gomp_team): Add comment.
      	(gomp_get_place_proc_ids_8, gomp_doacross_init,
      	gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
      	gomp_create_target_task, gomp_target_task_fn): New prototypes.
      	(struct target_var_desc): New type.
      	(struct target_mem_desc): Adjust comment.  Use struct
      	target_var_desc instead of splay_tree_key for list.
      	(REFCOUNT_INFINITY): Define.
      	(struct splay_tree_key_s): Remove copy_from field.
      	(struct gomp_device_descr): Add dev2dev_func field.
      	(enum gomp_map_vars_kind): New enum.
      	(gomp_map_vars): Add one argument.
      	* libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
      	omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
      	omp_get_place_num_procs, omp_get_place_num_procs_,
      	omp_get_place_num_procs_8_, omp_get_place_proc_ids,
      	omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
      	omp_get_place_num_, omp_get_partition_num_places,
      	omp_get_partition_num_places_, omp_get_partition_place_nums,
      	omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
      	omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
      	omp_target_free, omp_target_is_present, omp_target_memcpy,
      	omp_target_memcpy_rect, omp_target_associate_ptr and
      	omp_target_disassociate_ptr.
      	(GOMP_4.0.2): Renamed to ...
      	(GOMP_4.5): ... this.  Export GOMP_target_41, GOMP_target_data_41,
      	GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
      	GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
      	GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
      	GOMP_loop_doacross_static_start, GOMP_doacross_post,
      	GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
      	GOMP_loop_ull_doacross_guided_start,
      	GOMP_loop_ull_doacross_runtime_start,
      	GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
      	GOMP_doacross_ull_wait.
      	* libgomp.texi: Document omp_get_max_task_priority.
      	Rename modifier argument to chunk_size for omp_set_schedule and
      	omp_get_schedule.  Document OMP_MAX_TASK_PRIORITY env var.
      	* loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
      	to run_sched_chunk_size renaming.
      	(GOMP_loop_ordered_runtime_start): Likewise.
      	(gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
      	gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
      	GOMP_parallel_loop_runtime_start): New functions.
      	(GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
      	to run_sched_chunk_size renaming.
      	(GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
      	GOMP_loop_doacross_guided_start): New functions or aliases.
      	* loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
      	run_sched_modifier to run_sched_chunk_size renaming.
      	(GOMP_loop_ull_ordered_runtime_start): Likewise.
      	(gomp_loop_ull_doacross_static_start,
      	gomp_loop_ull_doacross_dynamic_start,
      	gomp_loop_ull_doacross_guided_start,
      	GOMP_loop_ull_doacross_runtime_start): New functions.
      	(GOMP_loop_ull_doacross_static_start,
      	GOMP_loop_ull_doacross_dynamic_start,
      	GOMP_loop_ull_doacross_guided_start): New functions or aliases.
      	* oacc-mem.c (acc_map_data, present_create_copy,
      	gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
      	to gomp_map_vars.
      	(gomp_acc_remove_pointer): Use copy_from from target_var_desc.
      	* oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
      	instead of false to gomp_map_vars.
      	(GOACC_parallel_keyed): Likewise.  Use copy_from from target_var_desc.
      	* omp.h.in (omp_lock_hint_t): New type.
      	(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
      	omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
      	omp_get_place_num, omp_get_partition_num_places,
      	omp_get_partition_place_nums, omp_get_initial_device,
      	omp_get_max_task_priority, omp_target_alloc, omp_target_free,
      	omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
      	omp_target_associate_ptr, omp_target_disassociate_ptr): New
      	prototypes.
      	* omp_lib.f90.in (omp_lock_hint_kind): New parameter.
      	(omp_lock_hint_none, omp_lock_hint_uncontended,
      	omp_lock_hint_contended, omp_lock_hint_nonspeculative,
      	omp_lock_hint_speculative): New parameters.
      	(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
      	omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
      	omp_get_place_num, omp_get_partition_num_places,
      	omp_get_partition_place_nums, omp_get_initial_device,
      	omp_get_max_task_priority): New interfaces.
      	(omp_set_schedule, omp_get_schedule): Rename modifier argument
      	to chunk_size.
      	* omp_lib.h.in (omp_lock_hint_kind): New parameter.
      	(omp_lock_hint_none, omp_lock_hint_uncontended,
      	omp_lock_hint_contended, omp_lock_hint_nonspeculative,
      	omp_lock_hint_speculative): New parameters.
      	(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
      	omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
      	omp_get_place_num, omp_get_partition_num_places,
      	omp_get_partition_place_nums, omp_get_initial_device,
      	omp_get_max_task_priority): New functions and subroutines.
      	* ordered.c: Include stdarg.h and string.h.
      	(MAX_COLLAPSED_BITS): Define.
      	(gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
      	gomp_doacross_ull_init, GOMP_doacross_ull_post,
      	GOMP_doacross_ull_wait): New functions.
      	* target.c: Include errno.h.
      	(resolve_device): If device is not initialized, call
      	gomp_init_device on it.
      	(gomp_map_lookup): New function.
      	(gomp_map_vars_existing): Add tgt_var argument, fill it in.
      	Don't bump refcount if REFCOUNT_INFINITY.  Handle
      	GOMP_MAP_ALWAYS_TO_P.
      	(get_kind): Rename is_openacc argument to short_mapkind.
      	(gomp_map_pointer): Use gomp_map_lookup.
      	(gomp_map_fields_existing): New function.
      	(gomp_map_vars): Rename is_openacc argument to short_mapkind
      	and is_target to pragma_kind.  Handle GOMP_MAP_VARS_ENTER_DATA,
      	handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
      	GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
      	Adjust for tgt->list changed type and copy_from living in there.
      	(gomp_copy_from_async): Adjust for tgt->list changed type and
      	copy_from living in there.
      	(gomp_unmap_vars): Likewise.
      	(gomp_update): Likewise.  Rename is_openacc argument to
      	short_mapkind.  Don't fail if object is not mapped.
      	(gomp_load_image_to_device): Initialize refcount to
      	REFCOUNT_INFINITY.
      	(gomp_target_fallback): New function.
      	(gomp_get_target_fn_addr): Likewise.
      	(GOMP_target): Adjust gomp_map_vars caller, use
      	gomp_get_target_fn_addr and gomp_target_fallback.
      	(GOMP_target_41): New function.
      	(gomp_target_data_fallback): New function.
      	(GOMP_target_data): Use it, adjust gomp_map_vars caller.
      	(GOMP_target_data_41): New function.
      	(GOMP_target_update): Adjust gomp_update caller.
      	(GOMP_target_update_41): New function.
      	(gomp_exit_data, GOMP_target_enter_exit_data,
      	gomp_target_task_fn, omp_target_alloc, omp_target_free,
      	omp_target_is_present, omp_target_memcpy,
      	omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
      	omp_target_associate_ptr, omp_target_disassociate_ptr,
      	gomp_load_plugin_for_device): New functions.
      	* task.c: Include gomp-constants.h.  Include taskloop.c
      	twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
      	(gomp_task_handle_depend): New function.
      	(GOMP_task): Use it.  Add priority argument.  Use
      	gomp-constant.h constants instead of hardcoded numbers.
      	Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
      	(gomp_create_target_task): New function.
      	(verify_children_queue, verify_taskgroup_queue,
      	verify_task_queue): New functions.
      	(gomp_task_run_pre): Call verify_*_queue functions.
      	If an upcoming tied task is about to leave the sibling or
      	taskgroup queues in an invalid state, adjust appropriately.
      	Remove taskgroup argument.  Add comments.
      	(gomp_task_run_post_handle_dependers): Add comments.
      	(gomp_task_run_post_remove_parent): Likewise.
      	(gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
      	(GOMP_taskwait): Likewise.  Add comments.
      	(gomp_task_maybe_wait_for_dependencies): Fix scheduling
      	problem such that the first non parent_depends_on task does not
      	end up at the end of the children queue.
      	(GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
      	GOMP_TASK_UNDEFERRED.
      	(GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
      	* taskloop.c: New file.
      	* testsuite/lib/libgomp.exp
      	(check_effective_target_offload_device_nonshared_as): New proc.
      	* testsuite/libgomp.c/affinity-2.c: New test.
      	* testsuite/libgomp.c/doacross-1.c: New test.
      	* testsuite/libgomp.c/doacross-2.c: New test.
      	* testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
      	Add map clause to target.
      	* testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
      	* testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
      	* testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
      	* testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
      	* testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
      	Likewise.
      	* testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
      	* testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
      	* testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
      	* testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
      	not defined.  Use those where needed.
      	* testsuite/libgomp.c/for-4.c: New test.
      	* testsuite/libgomp.c/for-5.c: New test.
      	* testsuite/libgomp.c/for-6.c: New test.
      	* testsuite/libgomp.c/linear-1.c: New test.
      	* testsuite/libgomp.c/ordered-4.c: New test.
      	* testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
      	only allowed on the loop iterator.
      	* testsuite/libgomp.c/pr66199-3.c: New test.
      	* testsuite/libgomp.c/pr66199-4.c: New test.
      	* testsuite/libgomp.c/reduction-7.c: New test.
      	* testsuite/libgomp.c/reduction-8.c: New test.
      	* testsuite/libgomp.c/reduction-9.c: New test.
      	* testsuite/libgomp.c/reduction-10.c: New test.
      	* testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
      	map(tofrom:s).
      	* testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
      	* testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
      	* testsuite/libgomp.c/target-11.c: New test.
      	* testsuite/libgomp.c/target-12.c: New test.
      	* testsuite/libgomp.c/target-13.c: New test.
      	* testsuite/libgomp.c/target-14.c: New test.
      	* testsuite/libgomp.c/target-15.c: New test.
      	* testsuite/libgomp.c/target-16.c: New test.
      	* testsuite/libgomp.c/target-17.c: New test.
      	* testsuite/libgomp.c/target-18.c: New test.
      	* testsuite/libgomp.c/target-19.c: New test.
      	* testsuite/libgomp.c/target-20.c: New test.
      	* testsuite/libgomp.c/target-21.c: New test.
      	* testsuite/libgomp.c/target-22.c: New test.
      	* testsuite/libgomp.c/target-23.c: New test.
      	* testsuite/libgomp.c/target-24.c: New test.
      	* testsuite/libgomp.c/target-25.c: New test.
      	* testsuite/libgomp.c/target-26.c: New test.
      	* testsuite/libgomp.c/target-27.c: New test.
      	* testsuite/libgomp.c/taskloop-1.c: New test.
      	* testsuite/libgomp.c/taskloop-2.c: New test.
      	* testsuite/libgomp.c/taskloop-3.c: New test.
      	* testsuite/libgomp.c/taskloop-4.c: New test.
      	* testsuite/libgomp.c++/ctor-13.C: New test.
      	* testsuite/libgomp.c++/doacross-1.C: New test.
      	* testsuite/libgomp.c++/examples-4/declare_target-2.C:
      	Replace offload_device with offload_device_nonshared_as.
      	* testsuite/libgomp.c++/for-12.C: New test.
      	* testsuite/libgomp.c++/for-13.C: New test.
      	* testsuite/libgomp.c++/for-14.C: New test.
      	* testsuite/libgomp.c++/linear-1.C: New test.
      	* testsuite/libgomp.c++/member-1.C: New test.
      	* testsuite/libgomp.c++/member-2.C: New test.
      	* testsuite/libgomp.c++/member-3.C: New test.
      	* testsuite/libgomp.c++/member-4.C: New test.
      	* testsuite/libgomp.c++/member-5.C: New test.
      	* testsuite/libgomp.c++/ordered-1.C: New test.
      	* testsuite/libgomp.c++/reduction-5.C: New test.
      	* testsuite/libgomp.c++/reduction-6.C: New test.
      	* testsuite/libgomp.c++/reduction-7.C: New test.
      	* testsuite/libgomp.c++/reduction-8.C: New test.
      	* testsuite/libgomp.c++/reduction-9.C: New test.
      	* testsuite/libgomp.c++/reduction-10.C: New test.
      	* testsuite/libgomp.c++/reference-1.C: New test.
      	* testsuite/libgomp.c++/simd14.C: New test.
      	* testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
      	* testsuite/libgomp.c++/target-5.C: New test.
      	* testsuite/libgomp.c++/target-6.C: New test.
      	* testsuite/libgomp.c++/target-7.C: New test.
      	* testsuite/libgomp.c++/target-8.C: New test.
      	* testsuite/libgomp.c++/target-9.C: New test.
      	* testsuite/libgomp.c++/target-10.C: New test.
      	* testsuite/libgomp.c++/target-11.C: New test.
      	* testsuite/libgomp.c++/target-12.C: New test.
      	* testsuite/libgomp.c++/taskloop-1.C: New test.
      	* testsuite/libgomp.c++/taskloop-2.C: New test.
      	* testsuite/libgomp.c++/taskloop-3.C: New test.
      	* testsuite/libgomp.c++/taskloop-4.C: New test.
      	* testsuite/libgomp.c++/taskloop-5.C: New test.
      	* testsuite/libgomp.c++/taskloop-6.C: New test.
      	* testsuite/libgomp.c++/taskloop-7.C: New test.
      	* testsuite/libgomp.c++/taskloop-8.C: New test.
      	* testsuite/libgomp.c++/taskloop-9.C: New test.
      	* testsuite/libgomp.fortran/affinity1.f90: New test.
      	* testsuite/libgomp.fortran/affinity2.f90: New test.
      liboffloadmic/
      2015-10-13  Ilya Verbin  <ilya.verbin@intel.com>
      
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_dev2dev): New
      	function.
      	* plugin/offload_target_main.cpp (__offload_target_tgt2tgt): New
      	static function, register it in liboffloadmic.
      
      From-SVN: r228777
      Jakub Jelinek committed
  16. 30 Sep, 2015 2 commits
  17. 25 Aug, 2015 1 commit
    • Support embedding the driver in-process within libgccjit · 9376dd63
      gcc/ChangeLog:
      	* gcc-main.c (main): Add params to driver ctor.
      	* gcc.c (class env_manager): New.
      	(env): New global.
      	(env_manager::init): New.
      	(env_manager::get): New.
      	(env_manager::xput): New.
      	(env_manager::restore): New.
      	Poison getenv and putenv.
      	(DEFAULT_TARGET_SYSTEM_ROOT): New.
      	(target_system_root): Update initialization to use
      	DEFAULT_TARGET_SYSTEM_ROOT.
      	(struct spec_list): Add field "default_ptr".
      	(INIT_STATIC_SPEC): Initialize new field "default_ptr".
      	(init_spec): Likewise.
      	(set_spec): Clear field "default_ptr".
      	(read_specs): Free "spec" and "buffer".
      	(xputenv): Reimplement in terms of env_manager.
      	(process_command): Replace ::getenv calls with calls to the
      	env_manager singleton.
      	(process_brace_body): Free string in three places.
      	(driver::driver): New.
      	(driver::~driver): New.
      	(used_arg): Convert from a function to...
      	(class used_arg_t): ...this class, and...
      	(used_arg): ...this new global instance.
      	(used_arg_t::finalize): New function.
      	(getenv_spec_function): Add "const" to local "value".  Replace
      	::getenv call with call to the env_manager singleton.
      	(path_prefix_reset): New function.
      	(driver::finalize): New function.
      	* gcc.h (driver::driver): New.
      	(driver::~driver): New.
      	(driver::finalize): New.
      
      gcc/jit/ChangeLog:
      	* docs/cp/topics/contexts.rst
      	(gccjit::context::set_bool_use_external_driver): New.
      	* docs/internals/test-hello-world.exe.log.txt: Update.
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_5): New.
      	* docs/topics/contexts.rst
      	(gcc_jit_context_set_bool_use_external_driver): New.
      	* jit-common.h (enum inner_bool_option): Add
      	INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
      	* jit-playback.c (gcc_driver_name): New global.
      	(gcc:jit::playback::context::invoke_driver): Split out second
      	half into...
      	(gcc::jit::playback::context::invoke_embedded_driver): ...this new
      	function, and...
      	(gcc::jit::playback::context::invoke_external_driver): ...this new
      	function.
      	* jit-playback.h
      	(gcc::jit::playback::context::get_inner_bool_option): New.
      	(gcc::jit::playback::context::invoke_embedded_driver): New.
      	(gcc::jit::playback::context::invoke_external_driver): New.
      	* jit-recording.c (inner_bool_option_reproducer_strings):
      	Add entry for INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
      	* libgccjit++.h
      	(gccjit::context::set_bool_use_external_driver): New.
      	* libgccjit.c (gcc_jit_context_set_bool_use_external_driver): New.
      	* libgccjit.h (gcc_jit_context_set_bool_use_external_driver): New.
      	(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_use_external_driver):
      	New.
      	* libgccjit.map (LIBGCCJIT_ABI_5): New.
      	* notes.txt: Show invocation of embedded copy of driver.
      	* docs/internals/test-hello-world.exe.log.txt: Update
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-error-pr63969-missing-driver.c: Add call to
      	gcc_jit_context_set_bool_use_external_driver.
      
      From-SVN: r227188
      David Malcolm committed
  18. 14 Aug, 2015 1 commit
  19. 03 Aug, 2015 1 commit
    • Refactoring of timevar API · afed3459
      gcc/ChangeLog:
      	* main.c (main): Pass in NULL for toplev's external_timer.
      	* timevar.c: Include coretypes.h.
      	(class timer::named_items): New.
      	(timer::named_items::named_items): New.
      	(timer::named_items::~named_items): New.
      	(timer::named_items::push): New.
      	(timer::named_items::pop): New.
      	(timer::named_items::print): New.
      	(timer::timer): Initialize field "m_jit_client_items".
      	(timer::~timer): New.
      	(timer::push): Move bulk of implementation to...
      	(timer::push_internal): ...here.  New function.
      	(timer::pop): Move bulk of implementation to...
      	(timer::pop_internal): ...here.  New function.
      	(timer::push_client_item): New.
      	(timer::pop_client_item): New.
      	(timer::print_row): New function, taken from timer::print.
      	(timer::print): Print "GCC items" header if we also have client
      	items.  Move row-printing to timer::print_row.  Print any client
      	items.
      	(timer::get_topmost_item_name): New method.
      	* timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
      	(TV_JIT_CLIENT_CODE): New.
      	* timevar.h (timer::push_client_item): New declaration.
      	(timer::pop_client_item): New declaration.
      	(timer::get_topmost_item_name): New method.
      	(timer::push_internal): New declaration.
      	(timer::pop_internal): New declaration.
      	(timer::print_row): New declaration.
      	(timer::named_items): New declaration.
      	(timer::m_jit_client_items): New field.
      	(timer): Add friend class named_items.
      	(auto_timevar::auto_timevar): Add timer param.
      	(auto_timevar::~auto_timevar): Use field "m_timer".
      	(auto_timevar::m_timer): New field.
      	* toplev.c (initialize_rtl): Add g_timer as param when
      	constructing auto_timevar instance.
      	(toplev::toplev): Add "external_timer" param, and use it to
      	initialize the "g_timer" global if non-NULL.
      	(toplev::~toplev): If this created "g_timer", delete it.
      	* toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
      	with "external_timer" timer *.
      
      gcc/jit/ChangeLog:
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
      	* docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY):
      	We no longer show a profile.
      	* docs/topics/index.rst (Topic Reference): Add performance.rst.
      	* docs/topics/performance.rst: New file.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-playback.c (gcc::jit::playback::context::compile): Add timer
      	param when constructing the "toplev" instance.
      	(gcc::jit::playback::context::acquire_mutex): Add timer param when
      	constructing auto_timevar instance.
      	(gcc::jit::playback::context::make_fake_args): If we have a timer,
      	add "-ftime-report".
      	(gcc::jit::playback::context::invoke_driver): Add timer param when
      	constructing auto_timevar instance.
      	(gcc::jit::playback::context::dlopen_built_dso): Likewise.
      	* jit-playback.h (gcc::jit::playback::context::get_timer): New accessor.
      	* jit-recording.c: Include timevar.h.
      	(gcc::jit::recording::context::context): Initialize field "m_timer".
      	* jit-recording.h: Add forward declaration of class timer.
      	(gcc::jit::recording::context::set_timer): New method.
      	(gcc::jit::recording::context::get_timer): New method.
      	(gcc::jit::recording::context::m_timer): New field.
      	* libgccjit++.h (gccjit::timer): New class.
      	(gccjit::auto_time): New class.
      	(gccjit::context::set_timer): New method.
      	(gccjit::context::get_timer): New.
      	(gccjit::timer::timer): New.
      	(gccjit::timer::push): New.
      	(gccjit::timer::pop): New.
      	(timer::print): New.
      	(timer::get_inner_timer): New.
      	(timer::release): New.
      	(auto_time::auto_time): New.
      	(auto_time::~auto_time): New.
      	* libgccjit.c: Include timevar.h.
      	(struct gcc_jit_timer): New.
      	(gcc_jit_timer_new): New function.
      	(gcc_jit_timer_release): New function.
      	(gcc_jit_context_set_timer): New function.
      	(gcc_jit_context_get_timer): New function.
      	(gcc_jit_timer_push): New function.
      	(gcc_jit_timer_pop): New function.
      	(gcc_jit_timer_print): New function.
      	* libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro.
      	(gcc_jit_timer): New typedef.
      	(gcc_jit_timer_new): New function.
      	(gcc_jit_timer_release): New function.
      	(gcc_jit_context_set_timer): New function.
      	(gcc_jit_context_get_timer): New function.
      	(gcc_jit_timer_push): New function.
      	(gcc_jit_timer_pop): New function.
      	(gcc_jit_timer_print): New function.
      	* libgccjit.map (LIBGCCJIT_ABI_4): New.
      	(gcc_jit_timer_new): New function.
      	(gcc_jit_timer_release): New function.
      	(gcc_jit_context_set_timer): New function.
      	(gcc_jit_context_get_timer): New function.
      	(gcc_jit_timer_push): New function.
      	(gcc_jit_timer_pop): New function.
      	(gcc_jit_timer_print): New function.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-benchmark.c (test_jit): Add param "timer" and use
      	it to push/pop timing items.
      	(main): For each optimization level, create a gcc_jit_timer, and
      	time all of the iteration within that level cumulatively.
      	* jit.dg/test-error-gcc_jit_timer_pop-mismatch.c: New test case.
      	* jit.dg/test-error-gcc_jit_timer_pop-too-many.c: New test case.
      
      From-SVN: r226530
      David Malcolm committed
  20. 23 Jul, 2015 1 commit
    • jit: supply MULTILIB_DEFAULTS as arguments when invoking driver · eb3982c1
      gcc/jit/ChangeLog:
      	* jit-playback.c (invoke_driver): Convert local "argvec"
      	to an auto_argvec, so that it owns copies of the strings,
      	rather than borrows them, updating ADD_ARG to use xstrdup
      	and special-casing the NULL terminator to avoid
      	xstrdup (NULL).  Call add_multilib_driver_arguments at the front
      	of the arguments.
      	(MULTILIB_DEFAULTS): Provide a default definition.
      	(multilib_defaults_raw): New constant array.
      	(gcc::jit::playback::context::add_multilib_driver_arguments): New
      	method.
      	* jit-playback.h
      	(gcc::jit::playback::context::add_multilib_driver_arguments): New
      	method.
      	* docs/internals/test-hello-world.exe.log.txt: Update.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      
      From-SVN: r226126
      David Malcolm committed
  21. 16 Jul, 2015 1 commit
  22. 13 Jul, 2015 1 commit
  23. 09 Jul, 2015 1 commit
    • flags.h: Don't include flag-types.h or options.h. · 1916bcb5
      2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
      
      	* flags.h: Don't include flag-types.h or options.h.
      	* opts-common.c: Adjust includes.
      	* opts-global.c: Likewise.
      	* common/config/epiphany/epiphany-common.c: Likewise.
      
      c
      
      	* c-array-notation.c: Adjust includes for flags.h changes.
      	* c-objc-common.c: Likewise.
      
      c-family
      
      	* c-common.h: Adjust includes for flags.h changes.
      	* stub-objc.c: Likewise.
      	
      fortran
      
      	* arith.c: Adjust includes for flags.h changes.
      	* array.c: Likewise.
      	* check.c: Likewise.
      	* decl.c: Likewise.
      	* error.c: Likewise.
      	* expr.c: Likewise.
      	* frontend-passes.c: Likewise.
      	* interface.c: Likewise.
      	* intrinsic.c: Likewise.
      	* io.c: Likewise.
      	* match.c: Likewise.
      	* openmp.c: Likewise.
      	* parse.c: Likewise.
      	* primary.c: Likewise.
      	* resolve.c: Likewise.
      	* scanner.c: Likewise.
      	* simplify.c: Likewise.
      	* symbol.c: Likewise.
      	* target-memory.c: Likewise.
      
      jit
      	* dummy-frontend.c: Adjust includes for flags.h changes.
      	* jit-common.h: Likewise.
      	* jit-playback.c: Likewise.
      
      lto
      	* lto-lang.c: Adjust includes for flags.h changes.
      
      From-SVN: r225608
      Andrew MacLeod committed
  24. 08 Jul, 2015 2 commits
    • PR jit/66783: improve error messages · 58c5ad40
      gcc/jit/ChangeLog:
      	PR jit/66783
      	* libgccjit.c (gcc_jit_context_new_field): Show name of field in
      	"unknown size" error message.
      	(gcc_jit_struct_set_fields): Show name of struct in error message.
      	(gcc_jit_context_new_global): Show name of global in
      	"unknown size" error message.
      	(gcc_jit_function_new_local): Likewise for local.
      
      gcc/testsuite/ChangeLog:
      	PR jit/66783
      	* jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c
      	(verify_code): Update expected error message.
      	* jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c
      	(verify_code): Likewise.
      	* jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c
      	(verify_code): Likewise.
      
      From-SVN: r225557
      David Malcolm committed
    • tree-core.h: Include symtab.h. · c7131fb2
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* tree-core.h: Include symtab.h.
      	* rtl.h: Include hard-reg-set.h but not flags.h.
      	(HARD_CONST): Remove condition compilation involving HARD_CONST since 
      	hard-reg-set.h is always included.
      	* regs.h: Don't include hard-reg-set.h or rtl.h.
      	* cfg.h: Include dominance.h.
      	* gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
      	* backend.h: New.  Aggregate commonly used backend header files.
      	* gimple-ssa.h: Don't include tree-hasher.h.
      	* ssa.h: New.  Aggregate commonly used SSA header files.
      	* regset.h: Remove bitmap.h and hard-reg-set.h #includes.
      	* sel-sched-ir.h: Flatten includes.
      	* lra-int.h: Flatten completely.
      	* sel-sched-dump.h: Flatten includes.
      	* ira-int.h: Flatten includes.
      	* gimple-streamer.h: Remove all includes.
      	* cfgloop.h: Remove all #includes except cfgloopmanip.h.
      	* resource.h: Flatten hard-reg-set.h and df.h.
      	* sched-int.h: Flatten insn-arrt.h and df.h.
      	* valtrack.h: flatten bitmap.h, df.h, and rtl.h
      	* df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
      	* genattrtab.c (write_header): Adjust generated includes.
      	* genautomata.c (main): Likewise.
      	* genconditions.c (write-header): Likewise.
      	* genemit.c (main): Likewise.
      	* gengtype.c (open_base_files): Likewise.
      	* genopinit.c (main): Likewise.
      	* genoutput.c (output_prologue): Likewise.
      	* genpeep.c (main): Likewise.
      	* genpreds.c (write_insn_preds_c): Likewise.
      	* genrecog.c (write_header): Likewise.
      	* alias.c: Adjust includes.
      	* asan.c: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* auto-profile.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* ccmp.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cilk-common.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* compare-elim.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* cppbuiltin.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* data-streamer-in.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* data-streamer.c: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* debug.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dfp.c: Likewise.
      	* dojump.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* double-int.c: Likewise.
      	* dse.c: Likewise.
      	* dumpfile.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2cfi.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* except.c: Likewise.
      	* explow.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* final.c: Likewise.
      	* fixed-value.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcc-plugin.h: Likewise.
      	* gcse-common.c: Likewise.
      	* gcse.c: Likewise.
      	* generic-match-head.c: Likewise.
      	* ggc-page.c: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-match-head.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimple-walk.c: Likewise.
      	* gimple.c: Likewise.
      	* gimplify-me.c: Likewise.
      	* gimplify.c: Likewise.
      	* godump.c: Likewise.
      	* graph.c: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-isl-ast-to-gimple.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* graphite.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* ifcvt.c: Likewise.
      	* init-regs.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa-chkp.c: Likewise.
      	* ipa-comdats.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-icf-gimple.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-ref.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-assigns.c: Likewise.
      	* lra-coalesce.c: Likewise.
      	* lra-constraints.c: Likewise.
      	* lra-eliminations.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra-remat.c: Likewise.
      	* lra-spills.c: Likewise.
      	* lra.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omega.c: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* real.c: Likewise.
      	* realmpfr.c: Likewise.
      	* recog.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regrename.c: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl-chkp.c: Likewise.
      	* rtlanal.c: Likewise.
      	* rtlhooks.c: Likewise.
      	* sanopt.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sched-vis.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched.c: Likewise.
      	* sese.c: Likewise.
      	* shrink-wrap.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* symtab.c: Likewise.
      	* target-globals.c: Likewise.
      	* targhooks.c: Likewise.
      	* toplev.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-browser.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chkp-opt.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-diagnostic.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-scopedtables.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* valtrack.c: Likewise.
      	* value-prof.c: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vmsdbgout.c: Likewise.
      	* vtable-verify.c: Likewise.
      	* web.c: Likewise.
      	* wide-int.cc: Likewise.
      	* xcoffout.c: Likewise.
      	* config/aarch64/aarch64-builtins.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/aarch64/cortex-a57-fma-steering.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arm/aarch-common.c: Likewise.
      	* config/arm/arm-builtins.c: Likewise.
      	* config/arm/arm-c.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/avr/avr-c.c: Likewise.
      	* config/avr/avr-log.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/cr16/cr16.c: Likewise.
      	* config/cris/cris.c: Likewise.
      	* config/darwin-c.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/epiphany/epiphany.c: Likewise.
      	* config/epiphany/mode-switch-use.c: Likewise.
      	* config/epiphany/resolve-sw-modes.c: Likewise.
      	* config/fr30/fr30.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/ft32/ft32.c: Likewise.
      	* config/h8300/h8300.c: Likewise.
      	* config/i386/i386-c.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/msformat-c.c: Likewise.
      	* config/i386/winnt-cxx.c: Likewise.
      	* config/i386/winnt-stubs.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64-c.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/lm32/lm32.c: Likewise.
      	* config/m32c/m32c-pragma.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/mep/mep-pragma.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/microblaze/microblaze-c.c: Likewise.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/mn10300/mn10300.c: Likewise.
      	* config/moxie/moxie.c: Likewise.
      	* config/msp430/msp430-c.c: Likewise.
      	* config/msp430/msp430.c: Likewise.
      	* config/nds32/nds32-cost.c: Likewise.
      	* config/nds32/nds32-fp-as-gp.c: Likewise.
      	* config/nds32/nds32-intrinsic.c: Likewise.
      	* config/nds32/nds32-isr.c: Likewise.
      	* config/nds32/nds32-md-auxiliary.c: Likewise.
      	* config/nds32/nds32-memory-manipulation.c: Likewise.
      	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
      	* config/nds32/nds32-predicates.c: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/nios2/nios2.c: Likewise.
      	* config/nvptx/nvptx.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/pdp11/pdp11.c: Likewise.
      	* config/rl78/rl78-c.c: Likewise.
      	* config/rl78/rl78.c: Likewise.
      	* config/rs6000/rs6000-c.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390-c.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh-c.c: Likewise.
      	* config/sh/sh-mem.cc: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/sh_optimize_sett_clrt.cc: Likewise.
      	* config/sh/sh_treg_combine.cc: Likewise.
      	* config/sol2-c.c: Likewise.
      	* config/sol2-cxx.c: Likewise.
      	* config/sol2-stubs.c: Likewise.
      	* config/sol2.c: Likewise.
      	* config/sparc/sparc-c.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu-c.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/tilegx/mul-tables.c: Likewise.
      	* config/tilegx/tilegx-c.c: Likewise.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/mul-tables.c: Likewise.
      	* config/tilepro/tilepro-c.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      	* config/v850/v850-c.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/vax/vax.c: Likewise.
      	* config/visium/visium.c: Likewise.
      	* config/vms/vms-c.c: Likewise.
      	* config/vms/vms.c: Likewise.
      	* config/vxworks.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      
      ada
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* gcc-interface/cuintp.c: Adjust includes.
      	* gcc-interface/decl.c: Likewise.
      	* gcc-interface/misc.c: Likewise.
      	* gcc-interface/targtyps.c: Likewise.
      	* gcc-interface/trans.c: Likewise.
      	* gcc-interface/utils.c: Likewise.
      	* gcc-interface/utils2.c: Likewise.
      
      c
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* c-array-notation.c: Adjust includes.
      	* c-aux-info.c: Likewise.
      	* c-convert.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-errors.c: Likewise.
      	* c-lang.c: Likewise.
      	* c-objc-common.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-typeck.c: Likewise.
      
      c-family
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* array-notation-common.c: Adjust includes.
      	* c-ada-spec.c: Likewise.
      	* c-cilkplus.c: Likewise.
      	* c-common.h: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-dump.c: Likewise.
      	* c-format.c: Likewise.
      	* c-gimplify.c: Likewise.
      	* c-indentation.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-pch.c: Likewise.
      	* c-ppoutput.c: Likewise.
      	* c-pragma.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-semantics.c: Likewise.
      	* c-ubsan.c: Likewise.
      	* cilk.c: Likewise.
      	* stub-objc.c: Likewise.
      
      cp
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* call.c: Adjust includes.
      	* class.c: Likewise.
      	* constexpr.c: Likewise.
      	* cp-array-notation.c: Likewise.
      	* cp-gimplify.c: Likewise.
      	* cp-lang.c: Likewise.
      	* cp-objcp-common.c: Likewise.
      	* cp-ubsan.c: Likewise.
      	* cvt.c: Likewise.
      	* decl.c: Likewise.
      	* decl2.c: Likewise.
      	* dump.c: Likewise.
      	* error.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* friend.c: Likewise.
      	* init.c: Likewise.
      	* lambda.c: Likewise.
      	* lex.c: Likewise.
      	* mangle.c: Likewise.
      	* method.c: Likewise.
      	* name-lookup.c: Likewise.
      	* optimize.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* ptree.c: Likewise.
      	* repo.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* tree.c: Likewise.
      	* typeck.c: Likewise.
      	* typeck2.c: Likewise.
      
      fortran
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* convert.c: Adjust includes.
      	* cpp.c: Likewise.
      	* decl.c: Likewise.
      	* f95-lang.c: Likewise.
      	* iresolve.c: Likewise.
      	* match.c: Likewise.
      	* module.c: Likewise.
      	* options.c: Likewise.
      	* target-memory.c: Likewise.
      	* trans-array.c: Likewise.
      	* trans-common.c: Likewise.
      	* trans-const.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-expr.c: Likewise.
      	* trans-intrinsic.c: Likewise.
      	* trans-io.c: Likewise.
      	* trans-openmp.c: Likewise.
      	* trans-stmt.c: Likewise.
      	* trans-types.c: Likewise.
      	* trans.c: Likewise.
      
      go
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* go-backend.c: Adjust includes.
      	* go-gcc.cc: Likewise.
      	* go-lang.c: Likewise.
      
      java
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* boehm.c: Adjust includes.
      	* builtins.c: Likewise.
      	* class.c: Likewise.
      	* constants.c: Likewise.
      	* decl.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* java-gimplify.c: Likewise.
      	* jcf-dump.c: Likewise.
      	* jcf-io.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* jvgenmain.c: Likewise.
      	* lang.c: Likewise.
      	* mangle.c: Likewise.
      	* mangle_name.c: Likewise.
      	* resource.c: Likewise.
      	* typeck.c: Likewise.
      	* verify-glue.c: Likewise.
      
      jit
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* dummy-frontend.c: Adjust includes.
      	* jit-common.h: Likewise.
      	* jit-playback.c: Likewise.
      
      lto
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* lto-lang.c: Adjust includes.
      	* lto-object.c: Likewise.
      	* lto-partition.c: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto.c: Likewise.
      
      objc
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* objc-act.c: Adjust includes.
      	* objc-encoding.c: Likewise.
      	* objc-gnu-runtime-abi-01.c: Likewise.
      	* objc-lang.c: Likewise.
      	* objc-map.c: Likewise.
      	* objc-next-runtime-abi-01.c: Likewise.
      	* objc-next-runtime-abi-02.c: Likewise.
      	* objc-runtime-shared-support.c: Likewise.
      
      objcp
      2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* objcp-decl.c: Adjust includes.
      	* objcp-lang.c: Likewise.
      
      From-SVN: r225531
      Andrew MacLeod committed
  25. 07 Jul, 2015 2 commits
    • PR jit/66783: prevent use of opaque structs · 3457d39e
      gcc/jit/ChangeLog:
      	PR jit/66783
      	* jit-recording.h: Within namespace gcc:jit::recording...
      	(type::has_known_size): New virtual function.
      	(struct_has_known_size): New function.
      	* libgccjit.c (gcc_jit_context_new_field): Verify that the type
      	has a known size.
      	(gcc_jit_context_new_global): Likewise.
      	(gcc_jit_function_new_local): Likewise.
      
      gcc/testsuite/ChangeLog:
      	PR jit/66783
      	* jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c: New
      	test case.
      	* jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c:
      	New test case.
      	* jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c:
      	New test case.
      	* jit.dg/test-error-mismatching-types-in-call.c (create_code):
      	Avoid using an opaque struct for local "f".
      
      From-SVN: r225523
      David Malcolm committed
    • PR jit/66779: fix segfault · bada4bed
      gcc/jit/ChangeLog:
      	PR jit/66779
      	* dummy-frontend.c (jit_langhook_type_for_mode): Ensure that we
      	handle modes QI, HI, SI, DI, TI.
      
      gcc/testsuite/ChangeLog:
      	PR jit/66779
      	* jit.dg/all-non-failing-tests.h: Add test-pr66779.c.
      	* jit.dg/test-pr66779.c: New testcase.
      
      From-SVN: r225522
      David Malcolm committed
  26. 01 Jul, 2015 3 commits
    • PR jit/66700: set TREE_ADDRESSABLE when building an ADDR_EXPR · e09abfa4
      gcc/jit/ChangeLog:
      	PR jit/66700
      	* jit-playback.c (jit_mark_addressable): New function.
      	(gcc::jit::playback::lvalue::get_address): Call
      	jit_mark_addressable on the underlying tree.
      
      gcc/testsuite/ChangeLog:
      	PR jit/66700
      	* jit.dg/all-non-failing-tests.h: Add
      	test-pr66700-observing-write-through-ptr.c.
      	* jit.dg/test-pr66700-observing-write-through-ptr.c: New testcase.
      
      From-SVN: r225248
      David Malcolm committed
    • jit: document union types · e807aeaa
      gcc/jit/ChangeLog:
      	* docs/topics/types.rst (gcc_jit_context_new_union_type): Add
      	documentation.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-accessing-union.c: Add comments for use by
      	gcc/jit/docs/topics/types.rst.
      
      From-SVN: r225246
      David Malcolm committed
    • jit: clarify (lack of) lifetime requirements on input const char * · c575221a
      gcc/jit/ChangeLog:
      	* docs/topics/contexts.rst (gcc_jit_context_set_bool_option):
      	Clarify lack of lifetime requirements on (const char *) parameter.
      	* docs/topics/expressions.rst
      	(gcc_jit_context_new_string_literal): Likewise.
      	(gcc_jit_context_new_global): Likewise.
      	* docs/topics/functions.rst (gcc_jit_context_new_param): Likewise.
      	(gcc_jit_context_new_function): Likewise.
      	(gcc_jit_function_new_block): Likewise.
      	(gcc_jit_block_add_comment): Likewise.
      	* docs/topics/locations.rst (gcc_jit_context_new_location):
      	Likewise.
      	* docs/topics/types.rst (gcc_jit_context_new_field): Likewise.
      	(gcc_jit_context_new_struct_type): Likewise.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      
      From-SVN: r225245
      David Malcolm committed
  27. 30 Jun, 2015 5 commits
    • jit: add switch statements · ec5d0088
      gcc/ChangeLog:
      	* typed-splay-tree.h: New file.
      
      gcc/jit/ChangeLog:
      	* docs/cp/topics/functions.rst (Blocks): Add switch statements to
      	list of ways to terminate a block.
      	(gccjit::block::end_with_switch): Add function description.
      	(gccjit::case_): Add class.
      	(gccjit::context::new_case): Add function description.
      	* docs/cp/topics/objects.rst: Add "case_" to class hierarchy.
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_3): New.
      	* docs/topics/functions.rst (Blocks): Add switch statements to
      	list of ways to terminate a block.
      	(gcc_jit_block_end_with_switch): Add function description.
      	(gcc_jit_case): Add type.
      	(gcc_jit_context_new_case): Add function description.
      	(gcc_jit_case_as_object): Add function description.
      	* docs/topics/objects.rst: Add gcc_jit_case to class hierarchy.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-common.h (gcc::jit::recording::case_): Add forward decl.
      	(gcc::jit::playback::case_): Add forward decl.
      	* jit-playback.c (add_case): New function.
      	(gcc::jit::playback::block::add_switch): New function.
      	* jit-playback.h (gcc::jit::playback::case_): New struct.
      	(gcc::jit::playback::block::get_function): New method.
      	(gcc::jit::playback::block::add_switch): New method.
      	* jit-recording.c: Within namespace gcc::jit...
      	(recording::context::new_case): New method.
      	(recording::function::validate): Update for change to
      	get_successor_blocks.
      	(recording::block::end_with_switch): New method.
      	(recording::block::get_successor_blocks): Update to support an
      	arbitrary number of successor blocks.
      	(recording::block::dump_edges_to_dot): Likewise.
      	(memento_of_new_rvalue_from_const <int>::get_wide_int): New.
      	(memento_of_new_rvalue_from_const <long>::get_wide_int): New.
      	(memento_of_new_rvalue_from_const <double>::get_wide_int): New.
      	(memento_of_new_rvalue_from_const <void *>::get_wide_int): New.
      	(recording::statement::get_successor_blocks): Update to support an
      	arbitrary number of successor blocks.
      	(recording::conditional::get_successor_blocks): Likewise.
      	(recording::jump::get_successor_blocks): Likewise.
      	(recording::return_::get_successor_blocks): Likewise.
      	(recording::case_::write_reproducer): New.
      	(recording::case_::make_debug_string): New.
      	(recording::switch_::switch_): New.
      	(recording::switch_::replay_into): New.
      	(recording::switch_::get_successor_blocks): New.
      	(recording::switch_::make_debug_string): New.
      	(recording::switch_::write_reproducer): New.
      	* jit-recording.h: Within namespace gcc::jit::recording...
      	(context::new_case): New.
      	(rvalue::is_constant): New.
      	(rvalue::get_wide_int): New.
      	(block::end_with_switch): New.
      	(block::get_successor_blocks): Update to support an arbitrary
      	number of successor blocks.
      	(memento_of_new_rvalue_from_const::is_constant): New.
      	(memento_of_new_rvalue_from_const::get_wide_int): New.
      	(statement::get_successor_blocks): Update to support an arbitrary
      	number of successor blocks.
      	(conditional::get_successor_blocks): Likewise.
      	(jump::get_successor_blocks): Likewise.
      	(return_::get_successor_blocks): Likewise.
      	(case_): New subclass of memento.
      	(switch_): New subclass of statement.
      	* libgccjit++.h (gccjit::case_): New subclass of gccjit::object.
      	(gccjit::context::new_case): New method.
      	(gccjit::block::end_with_switch): New method.
      	(gccjit::case_::case): New ctors.
      	(gccjit::case_::get_inner_case): New method.
      	* libgccjit.c: Include "typed-splay-tree.h"
      	(struct gcc_jit_case): New.
      	(gcc_jit_context_new_case): New function.
      	(gcc_jit_case_as_object): New function.
      	(valid_dest_for_switch): New function.
      	(valid_case_for_switch): New function.
      	(class api_call_validator): New class.
      	(class case_range_validator): New class.
      	(case_range_validator::case_range_validator): New.
      	(case_range_validator::validate): New.
      	(case_range_validator::case_compare): New.
      	(case_range_validator::get_wide_int): new.
      	(gcc_jit_block_end_with_switch): New.
      	* libgccjit.h: Add gcc_jit_case to class hierarchy comment.
      	(gcc_jit_case): New typedef.
      	(gcc_jit_context_new_case): New function.
      	(gcc_jit_case_as_object): New function.
      	(gcc_jit_block_end_with_switch): New function.
      	(LIBGCCJIT_HAVE_SWITCH_STATEMENTS): New.
      	* libgccjit.map: Add gcc_jit_block_end_with_switch,
      	gcc_jit_case_as_object and gcc_jit_context_new_case.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/all-non-failing-tests.h: Add test-switch.c.
      	* jit.dg/test-error-gcc_jit_block_end_with_switch-NULL-case.c: New
      	testcase.
      	* jit.dg/test-error-gcc_jit_block_end_with_switch-mismatching-case-type.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_block_end_with_switch-overlapping-ranges.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_context_new_case-non-const-label.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_context_new_case-non-integer-type.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_context_new_case-reversed-endpoints.c:
      	New testcase.
      	* jit.dg/test-switch.c: New testcase.
      	* jit.dg/test-switch.cc: New testcase.
      
      From-SVN: r225207
      David Malcolm committed
    • PR jit/66546: Add gcc_jit_context_set_bool_allow_unreachable_blocks · 6a3603e3
      gcc/jit/ChangeLog:
      	PR jit/66546
      	* docs/cp/topics/contexts.rst
      	(gccjit::context::set_bool_allow_unreachable_blocks): New.
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_2): New.
      	* docs/topics/contexts.rst (Options): Add notes discussing the
      	transition from enums to entrypoints for new options.
      	(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-common.h (gcc::jit::inner_bool_option): New enum.
      	* jit-recording.c: Within namespace gcc::jit...
      	(recording::context::context): Handle m_inner_bool_options.
      	(recording::context::set_inner_bool_option): New.
      	(inner_bool_option_reproducer_strings): New.
      	(recording::context::log_all_options): Log the "inner" bool
      	options.
      	(recording::context::log_inner_bool_option): New.
      	(recording::context::dump_reproducer_to_file): Write initializers
      	for "inner" bool options.
      	(recording::function::validate): Don't check for block
      	reachability if INNER_BOOL_OPTION_ALLOW_UNREACHABLE_BLOCKS is set.
      	* jit-recording.h: Within namespace gcc::jit...
      	(recording::context::set_inner_bool_option): New.
      	(recording::context::get_inner_bool_option): New.
      	(recording::context::log_inner_bool_option): New.
      	(recording::context::m_inner_bool_options): New.
      	* libgccjit++.h
      	(gccjit::context::set_bool_allow_unreachable_blocks): New.
      	* libgccjit.c
      	(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
      	* libgccjit.h: Add note about options present in the
      	initial release of libgccjit.
      	(gcc_jit_context_set_bool_allow_unreachable_blocks): New API
      	entrypoint.
      	(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_allow_unreachable_blocks):
      	New macro.
      	* libgccjit.map (LIBGCCJIT_ABI_2): New, containing...
      	(gcc_jit_context_set_bool_allow_unreachable_blocks): ...this new
      	entrypoint.
      
      gcc/testsuite/ChangeLog:
      	PR jit/66546
      	* jit.dg/all-non-failing-tests.h: Add note about
      	test-validly-unreachable-block.c.
      	* jit.dg/test-validly-unreachable-block.c: New file.
      
      From-SVN: r225206
      David Malcolm committed
    • PR jit/66628: add gcc_jit_context_add_command_line_option · fa22c20d
      gcc/jit/ChangeLog:
      	PR jit/66628
      	* docs/cp/topics/contexts.rst (Additional command-line options):
      	New section.
      	* docs/topics/compatibility.rst: New file.
      	* docs/topics/contexts.rst (Additional command-line options): New
      	section.
      	* docs/topics/index.rst: Add compatibility.rst.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-playback.c (make_fake_args): Add call to
      	append_command_line_options.
      	* jit-recording.c: Within namespace gcc::jit...
      	(recording::context::~context): Free the optnames within
      	m_command_line_options.
      	(recording::context::set_bool_option): Likewise.
      	(recording::context::add_command_line_option): New method.
      	(recording::context::append_command_line_options): New method.
      	(recording::context::dump_reproducer_to_file): Add command-line
      	options.
      	* jit-recording.h: Within namespace gcc::jit...
      	(recording::context::add_command_line_option): New method.
      	(recording::context::append_command_line_options): New method.
      	(recording::context::m_command_line_options): New field.
      	* libgccjit++.h (gccjit::context::add_command_line_option): New
      	method.
      	* libgccjit.c (gcc_jit_context_add_command_line_option): New API
      	entrypoint.
      	* libgccjit.h (gcc_jit_context_add_command_line_option): New API
      	entrypoint.
      	(LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option): New
      	macro.
      	* libgccjit.map: Put existing symbols within LIBGCCJIT_ABI_0; add
      	LIBGCCJIT_ABI_1 and gcc_jit_context_add_command_line_option.
      
      gcc/testsuite/ChangeLog:
      	PR jit/66628
      	* jit.dg/all-non-failing-tests.h: Add note about
      	test-extra-options.c.
      	* jit.dg/test-extra-options.c: New testcase.
      
      From-SVN: r225205
      David Malcolm committed
    • fixes to gcc_jit_context_dump_reproducer_to_file · a6314e15
      gcc/jit/ChangeLog:
      	* jit-recording.c
      	(gcc::jit::recording::context::dump_reproducer_to_file):
      	Add pragma to generated reproducers to disable -Wunused-variable.
      	Fix handling of NULL string options.
      
      From-SVN: r225204
      David Malcolm committed
    • jit: fix some .rst issues in docs · adb6d84b
      gcc/jit/ChangeLog:
      	* docs/cp/topics/expressions.rst: Remove stray semicolon.
      	* docs/cp/topics/functions.rst: Remove stray backslash.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      
      From-SVN: r225203
      David Malcolm committed
  28. 25 Jun, 2015 3 commits
    • function.h (ipa_opt_pass, [...]): Move forward declarations. · f0889939
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
      	* cgraph.h: Include ipa-ref.h and plugin-api.h.
      	(ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
      	(symtab_node::address_can_be_compared_p): Move function.
      	* cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
      	definition here.
      	* asan.c: Remove ipa-ref.h and plugin-api.h from include list.
      	* auto-profile.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine.c: Likewise.
      	* coverage.c: Likewise.
      	* data-streamer-in.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* data-streamer.c: Likewise.
      	* dbxout.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* final.c: Likewise.
      	* fold-const.c: Likewise.
      	* ggc-page.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimple.c: Likewise.
      	* gimplify.c: Likewise.
      	* ipa-chkp.c: Likewise.
      	* ipa-comdats.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-icf-gimple.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-ref.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* langhooks.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* omp-low.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* predict.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* ree.c: Likewise.
      	* sanopt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* symtab.c: Likewise.
      	* toplev.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/cris/cris.c: Likewise.
      	* config/darwin-c.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/tilegx/mul-tables.c: Likewise.
      
      ada
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* gcc-interface/trans.c: Remove ipa-ref.h and plugin-api.h from include
      	list.
      	* gcc-interface/utils.c: Likewise.
      
      c
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
      	* c-parser.c: Likewise.
      
      c-family
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* c-common.c: Remove ipa-ref.h and plugin-api.h from include list.
      	* c-gimplify.c: Likewise.
      	* c-pragma.c: Likewise.
      	* c-ubsan.c: Likewise.
      	* cilk.c: Likewise.
      
      cp
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* call.c: Remove ipa-ref.h and plugin-api.h from include list.
      	* class.c: Likewise.
      	* cp-ubsan.c: Likewise.
      	* decl.c: Likewise.
      	* decl2.c: Likewise.
      	* lambda.c: Likewise.
      	* mangle.c: Likewise.
      	* method.c: Likewise.
      	* optimize.c: Likewise.
      	* parser.c: Likewise.
      	* semantics.c: Likewise.
      	* tree.c: Likewise.
      	* vtable-class-hierarchy.c: Likewise.
      
      fortran
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* f95-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
      	* trans-decl.c: Likewise.
      
      go
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* go-gcc.cc: Remove ipa-ref.h and plugin-api.h from include list.
      
      java
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* class.c: Remove ipa-ref.h and plugin-api.h from include list.
      	* decl.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* resource.c: Likewise.
      
      jit
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* dummy-frontend.c: Remove ipa-ref.h and plugin-api.h from include list.
      	* jit-playback.c: Likewise.
      
      lto
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* lto-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
      	* lto-object.c: Likewise.
      	* lto-partition.c: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto-tree.h: Likewise.
      	* lto.c: Likewise.
      
      objc
      2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
      
      	* objc-act.c: Remove ipa-ref.h and plugin-api.h from include list.
      
      From-SVN: r224986
      Andrew MacLeod committed
    • Fix changelog mistake · 9cad7a76
      From-SVN: r224950
      Andrew Macleod committed
    • alias.h (alias_set_type): Move typedef. · eee33510
      2015-06-25  Andrew Macleod  <amacleod@redhat.com>
      
      	* alias.h (alias_set_type): Move typedef.
      	* coretypes.h (alias_set_type): Relocate typedef here.
      	* rtl.h: Don't include alias.h.
      	* jit/jit-common.h: Likewise
      
      From-SVN: r224948
      Andrew MacLeod committed