1. 12 Mar, 2012 1 commit
    • Remove obsolete Tru64 UNIX V5.1B support · 5c30094f
      	libstdc++-v3:
      	* configure.host: Remove osf* handling.
      	* config/os/osf: Remove.
      	* doc/xml/manual/using.xml: Remove OSF reference.
      
      	* testsuite/18_support/pthread_guard.cc: Remove alpha*-*-osf*
      	handling.
      	* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
      	Likewise.
      	* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
      	* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
      	* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
      	* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
      	* testsuite/23_containers/list/pthread1.cc: Likewise.
      	* testsuite/23_containers/list/pthread5.cc: Likewise.
      	* testsuite/23_containers/map/pthread6.cc: Likewise.
      	* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
      	Likewise.
      	* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
      	* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
      	* testsuite/30_threads/async/42819.cc: Likewise.
      
      	* libstdc++-v3/testsuite/30_threads/async/49668.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/async/any.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/async/async.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/async/launch.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/async/sync.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/call_once/39909.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/call_once/49668.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/cons/move.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/45133.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/get.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/get2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/share.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/valid.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/wait.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/cons/move.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/promise/members/swap.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/this_thread/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/this_thread/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/this_thread/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/this_thread/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/5.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/6.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/7.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/8.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/9.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/5.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/thread/swap/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/try_lock/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/try_lock/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/try_lock/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/try_lock/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/2.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc: Likewise.
      	* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
      	Likewise.
      	* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
      
      	libobjc:
      	* configure.ac (enable_objc_gc): Remove alpha*-dec-osf* handling.
      	* configure: Regenerate.
      
      	* thr.c (_XOPEN_SOURCE): Define unconditionally.
      
      	libjava:
      	* configure.ac (alpha*-dec-osf*): Remove.
      	* configure: Regenerate.
      	* configure.host (alpha*-dec-osf*): Remove.
      
      	* gnu/java/net/natPlainDatagramSocketImplPosix.cc (setOption): Use
      	IPV6_MULTICAST_IF unconditionally.
      	* gnu/java/net/natPlainDatagramSocketImplWin32.cc (setOption):
      	Likewise.
      	* gnu/java/net/natPlainSocketImplPosix.cc
      	(gnu::java::net::PlainSocketImpl::accept): Use ::accept instead of
      	_Jv_accept.
      	* include/posix-signal.h [__alpha__ && __osf__]: Remove.
      	* include/posix.h (_POSIX_PII_SOCKET): Don't define.
      	(_Jv_accept): Remove.
      
      	* java/io/File.java (File._access): Rename to access.
      	Change callers.
      	(File._stat): Likewise.
      	* java/io/File.h: Regenerate.
      	* classpath/lib/java/io/File.class: Regenerate.
      	* java/io/natFilePosix.cc (java::io::File::_access): Rename to
      	access.
      	(java::io::File::_stat): Rename to stat.
      	* java/io/natFileWin32.cc: Likewise.
      
      	* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
      	Remove alpha*-dec-osf* handling.
      	* testsuite/libjava.jvmti/jvmti-interp.exp
      	(gcj_jni_compile_c_to_so): Likewise.
      	* testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o):
      	Likewise.
      
      	libitm:
      	* configure.tgt (*-*-osf*): Remove.
      	* configure: Regenerate.
      
      	libgomp:
      	* configure.tgt (alpha*-dec-osf*): Remove.
      
      	* config/osf/sem.h: Remove.
      	* config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
      
      	libgfortran:
      	* configure.ac: Remove Tru64 reference.
      	* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Remove alpha*-dec-osf*
      	handling.
      	* configure: Regenerate.
      	* intrinsics/c99_functions.c [__osf__]: Remove.
      
      	libgcc:
      	* config.host: Remove alpha*-dec-osf5.1* handling.
      	* config/alpha/gthr-posix.c: Remove.
      	* config/alpha/libgcc-osf5.ver: Remove.
      	* config/alpha/osf5-unwind.h: Remove.
      	* config/alpha/t-osf-pthread: Remove.
      	* config/alpha/t-slibgcc-osf: Remove.
      	* config/t-crtfm (crtfastmath.o): Remove -frandom-seed.
      	* gthr-posix.h [!_REENTRANT && __osf__] (_REENTRANT): Don't define.
      	[__osf__ && _PTHREAD_USE_MANGLED_NAMES_]: Remove.
      	* mkmap-flat.awk: Remove osf_export handling.
      
      	gnattools:
      	* configure.ac: Remove alpha*-dec-osf* handling.
      	* configure: Regenerate.
      
      	gcc/testsuite:
      	* g++.dg/abi/rtti3.C: Remove alpha*-dec-osf* handling.
      	* g++.dg/abi/thunk4.C: Likewise.
      	* g++.dg/cdce3.C: Don't skip on*-dec-osf5*.
      	Adapt line numbers.
      	* g++.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
      	handling.
      	* g++.dg/cpp0x/constexpr-rom.C: Likewise.
      	* g++.dg/eh/spbp.C: Likewise.
      	* g++.dg/ext/label13.C: Likewise.
      	* g++.dg/guality/guality.exp: Likewise.
      	* g++.dg/other/anon5.C: Likewise.
      	* g++.dg/other/pragma-ep-1.C: Remove.
      	* g++.dg/warn/miss-format-1.C: Remove alpha*-dec-osf* handling.
      	* g++.dg/warn/pr31246.C: Likewise.
      	* g++.dg/warn/weak1.C: Likewise.
      	* g++.old-deja/g++.eh/badalloc1.C: Likewise.
      	* g++.old-deja/g++.ext/attrib5.C: Likewise.
      	* gcc.c-torture/compile/limits-declparen.c: Likewise.
      	* gcc.c-torture/compile/limits-pointer.c: Likewise.
      	* gcc.c-torture/execute/20001229-1.c: Remove __osf__ handling.
      	* gcc.dg/attr-weakref-1.c: Remove alpha*-dec-osf* handling.
      	* gcc.dg/c99-stdint-6.c: Remove alpha*-dec-osf5* handling.
      	* gcc.dg/c99-tgmath-1.c: Likewise.
      	* gcc.dg/c99-tgmath-2.c: Likewise.
      	* gcc.dg/c99-tgmath-3.c: Likewise.
      	* gcc.dg/c99-tgmath-4.c: Likewise.
      	* gcc.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
      	handling.
      	* gcc.dg/debug/pr49032.c: Likewise.
      	* gcc.dg/guality/guality.exp: Likewise.
      	* gcc.dg/intmax_t-1.c: Likewise.
      	* gcc.dg/pr48616.c: Likewise.
      	* gcc.dg/pragma-ep-1.c: Remove.
      	* gcc.dg/pragma-ep-2.c: Remove.
      	* gcc.dg/pragma-ep-3.c: Remove.
      	* gcc.dg/torture/pr47917.c: Remove alpha*-dec-osf5* handling.
      	* gcc.dg/tree-ssa/pr42585.c: Remove alpha*-dec-osf* handling.
      	* gcc.misc-tests/gcov-14.c: Likewise.
      	* gfortran.dg/guality/guality.exp: Likewise.
      	* lib/target-supports.exp (check_weak_available): Likewise.
      	(add_options_for_tls): Likewise.
      	(check_ascii_locale_available): Likewise.
      	* obj-c++.dg/dwarf-2.mm: Likewise.
      	* objc.dg/dwarf-1.m: Likewise.
      	* objc.dg/dwarf-2.m: Likewise.
      
      	gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
      	handling.
      	* c-pragma.c (handle_pragma_extern_prefix): Remove.
      	(init_pragma): Don't register extern_prefix.
      
      	gcc/po:
      	* EXCLUDES (mips-tdump.c, mips-tfile.c): Remove.
      
      	gcc:
      	* config.gcc (alpha*-dec-osf5.1*): Remove.
      	* config.host (alpha*-dec-osf*): Remove.
      	* configure.ac (*-*-osf*): Remove.
      	(alpha*-dec-osf*): Remove.
      	* configure: Regenerate.
      
      	* config/alpha/host-osf.c, config/alpha/osf5.h,
      	config/alpha/osf5.opt, config/alpha/va_list.h, config/alpha/x-osf:
      	Remove.
      
      	* config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
      	* config/alpha/alpha.c (struct machine_function): Update comment.
      	(alpha_start_function): Remove Tru64 UNIX as handling for
      	max_frame_size.
      	* config/alpha/alpha.md ("exception_receiver"): Remove
      	TARGET_LD_BUGGY_LDGP.
      	("*exception_receiver_2"): Likewise.
      	* except.c (finish_eh_generation): Remove Tru64 reference.
      	* ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
      	* system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
      	* target.def (handle_pragma_extern_prefix): Remove.
      
      	* Makefile.in (mips-tfile.o-warn): Remove.
      	(ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
      	(mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
      	* mips-tdump.c, mips-tfile.c: Remove.
      
      	* doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
      	extern_prefix.
      	* doc/install.texi (Binaries): Remove Tru64 UNIX reference.
      	(Specific, alpha*-dec-osf5.1): Note removal.
      	* doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
      	Remove.
      	* doc/tm.texi: Regenerate.
      	* doc/trouble.texi (Cross-Compiler Problems): Remove.
      
      	gcc/ada:
      	* gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
      	* a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
      	s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
      	s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
      	system-tru64.ads: Remove.
      
      	* adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
      	Remove.
      	[IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
      	* env.c [__alpha__ && __osf__]: Remove.
      	* gsocket.h (_OSF_SOURCE): Remove.
      	(HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
      	* init.c [__alpha__ && __osf__]: Remove.
      	* link.c [__osf__]: Remove.
      	* s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
      	[__osf__ && !_SS_MAXSIZE]: Remove.
      	* sysdep.c [__osf__]: Remove.
      	* terminals.c [__alpha__ && __osf__]: Remove.
      	[OSF1]: Remove.
      
      	* g-traceb.ads: Remove Tru64 reference.
      	* g-trasym.ads: Likewise.
      	* gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
      	(Summary of Run-Time Configurations): Likewise.
      	* memtrack.adb: Likewise.
      
      	fixincludes:
      	* inclhack.def (alpha___extern_prefix): Remove.
      	(alpha___extern_prefix_standards): Remove.
      	(alpha___extern_prefix_sys_stat): Remove.
      	(alpha_bad_lval): Remove.
      	(alpha_pthread): Remove.
      	(alpha_pthread_gcc): Remove.
      	(alpha_pthread_init): Remove.
      	* fixincl.x: Regenerate.
      	* tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: Remove.
      	[ALPHA_PTHREAD_GCC_CHECK]: Remove.
      	[ALPHA_PTHREAD_INIT_CHECK]: Remove.
      	* tests/base/standards.h: Remove.
      	* tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK]:
      	Remove.
      	* tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: Remove.
      	[ALPHA_BAD_LVAL_CHECK]: Remove.
      
      	contrib:
      	* config-list.mk (LIST): Remove alpha-dec-osf5.1.
      
      	config:
      	* weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove
      	alpha*-dec-osf*.
      
      	toplevel:
      	* MAINTAINERS (OS Port Maintainers): Remove osf.
      	* configure.ac (enable_libgomp): Remove *-*-osf*.
      	(with_stabs): Remove alpha*-*-osf*.
      	* configure: Regenerate.
      
      From-SVN: r185240
      Rainer Orth committed
  2. 29 Feb, 2012 1 commit
  3. 14 Feb, 2012 1 commit
    • Add ports for TILE-Gx and TILEPro. · dd552284
      .
      	* MAINTAINERS (tilegx port): Add myself.
      	(tilepro port): Add myself.
      
      contrib
      	* config-list.mk (LIST): Add tilegx-linux-gnu and
      	tilepro-linux-gnu.
      	* gcc_update (gcc/config/tilegx/mul-tables.c): New dependencies.
      	(gcc/config/tilepro/mul-tables.c): New dependencies.
      
      gcc
      	* config.gcc: Handle tilegx and tilepro.
      	* configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
      	tilegx and tilepro.
      	Add HAVE_AS_TLS check for tilegx and tilepro.
      	* configure: Regenerate.
      	* doc/contrib.texi: Add Mat Hostetter and self.
      	* doc/extend.texi (TILE-Gx Built-in Functions): New node.
      	Document instruction intrinsics and network accessing intrinsics.
      	(TILEPro Built-in Functions): New node.	 Document instruction
      	intrinsics and network accessing intrinsics.
      	* doc/install.texi (Specific, tilegx-*-linux*): Document it.
      	(Specific, tilepro-*-linux*): Likewise.
      	* doc/invoke.texi (TILE-Gx Options): New section.
      	(TILEPro Options): New section.
      	* doc/md.texi (TILE-Gx): New section.
      	(TILEPro): New section.
      	* common/config/tilegx: New directory for tilegx.
      	* common/config/tilepro: New directory for tilepro.
      	* config/tilegx: New directory for tilegx.
      	* config/tilepro: New directory for tilepro.
      
      gcc/testsuite
      	* g++.dg/other/PR23205.C: Disable test on tile.
      	* g++.dg/other/pr23205-2.C: Disable test on tile.
      	* gcc.dg/20020312-2.c: Add a condition for __tile__.
      	* gcc.dg/20040813-1.c: Disable test on tile.
      	* gcc.dg/lower-subreg-1.c: Disable test on tilegx.
      	* gcc.misc-tests/linkage.exp: Handle tilegx.
      
      libcpp
      	* configure.ac: Require 64-bit hwint for tilegx and tilepro.
      	* configure: Regenerate.
      
      libgcc
      	* config.host: Handle tilegx and tilepro.
      	* config/tilegx: New directory for tilegx.
      	* config/tilepro: New directory for tilepro.
      
      libgomp
      	* configure.tgt: Handle tilegx and tilepro.
      	* config/linux/tile: New directory for tilegx and tilepro.
      
      Added:
           trunk/gcc/common/config/tilegx/tilegx-common.c
           trunk/gcc/common/config/tilepro/tilepro-common.c
           trunk/gcc/config/tilegx/constraints.md
           trunk/gcc/config/tilegx/linux.h
           trunk/gcc/config/tilegx/mul-tables.c
           trunk/gcc/config/tilegx/predicates.md
           trunk/gcc/config/tilegx/sync.md
           trunk/gcc/config/tilegx/t-tilegx
           trunk/gcc/config/tilegx/tilegx-builtins.h
           trunk/gcc/config/tilegx/tilegx-c.c
           trunk/gcc/config/tilegx/tilegx-generic.md
           trunk/gcc/config/tilegx/tilegx-modes.def
           trunk/gcc/config/tilegx/tilegx-multiply.h
           trunk/gcc/config/tilegx/tilegx-protos.h
           trunk/gcc/config/tilegx/tilegx.c
           trunk/gcc/config/tilegx/tilegx.h
           trunk/gcc/config/tilegx/tilegx.md
           trunk/gcc/config/tilegx/tilegx.opt
           trunk/gcc/config/tilepro/constraints.md
           trunk/gcc/config/tilepro/gen-mul-tables.cc
           trunk/gcc/config/tilepro/linux.h
           trunk/gcc/config/tilepro/mul-tables.c
           trunk/gcc/config/tilepro/predicates.md
           trunk/gcc/config/tilepro/t-tilepro
           trunk/gcc/config/tilepro/tilepro-builtins.h
           trunk/gcc/config/tilepro/tilepro-c.c
           trunk/gcc/config/tilepro/tilepro-generic.md
           trunk/gcc/config/tilepro/tilepro-modes.def
           trunk/gcc/config/tilepro/tilepro-multiply.h
           trunk/gcc/config/tilepro/tilepro-protos.h
           trunk/gcc/config/tilepro/tilepro.c
           trunk/gcc/config/tilepro/tilepro.h
           trunk/gcc/config/tilepro/tilepro.md
           trunk/gcc/config/tilepro/tilepro.opt
           trunk/libgcc/config/tilegx/sfp-machine.h
           trunk/libgcc/config/tilegx/sfp-machine32.h
           trunk/libgcc/config/tilegx/sfp-machine64.h
           trunk/libgcc/config/tilegx/t-crtstuff
           trunk/libgcc/config/tilegx/t-softfp
           trunk/libgcc/config/tilegx/t-tilegx
           trunk/libgcc/config/tilepro/atomic.c
           trunk/libgcc/config/tilepro/atomic.h
           trunk/libgcc/config/tilepro/linux-unwind.h
           trunk/libgcc/config/tilepro/sfp-machine.h
           trunk/libgcc/config/tilepro/softdivide.c
           trunk/libgcc/config/tilepro/softmpy.S
           trunk/libgcc/config/tilepro/t-crtstuff
           trunk/libgcc/config/tilepro/t-tilepro
           trunk/libgomp/config/linux/tile/futex.h
      Modified:
           trunk/MAINTAINERS
           trunk/contrib/config-list.mk
           trunk/contrib/gcc_update
           trunk/gcc/config.gcc
           trunk/gcc/configure
           trunk/gcc/configure.ac
           trunk/gcc/doc/contrib.texi
           trunk/gcc/doc/extend.texi
           trunk/gcc/doc/install.texi
           trunk/gcc/doc/invoke.texi
           trunk/gcc/doc/md.texi
           trunk/gcc/testsuite/g++.dg/other/PR23205.C
           trunk/gcc/testsuite/g++.dg/other/pr23205-2.C
           trunk/gcc/testsuite/gcc.dg/20020312-2.c
           trunk/gcc/testsuite/gcc.dg/20040813-1.c
           trunk/gcc/testsuite/gcc.dg/lower-subreg-1.c
           trunk/gcc/testsuite/gcc.misc-tests/linkage.exp
           trunk/libcpp/configure
           trunk/libcpp/configure.ac
           trunk/libgcc/config.host
           trunk/libgomp/configure.tgt
      
      From-SVN: r184203
      Walter Lee committed
  4. 02 Dec, 2011 1 commit
    • affinity.c: Use atomic rather than sync builtin. · 45608a43
      	* config/linux/affinity.c: Use atomic rather than sync builtin.
      	* config/linux/lock.c: Likewise.
      	* config/linux/ptrlock.h: Likewise.
      	* config/linux/ptrlock.c: Likewise.
      	* config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
      	* config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
      	* config/linux/futex.h (atomic_write_barrier): Delete unused function.
      	* config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
      	* config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
      	* config/linux/mips/futex.h (atomic_write_barrier): Likewise.
      	* config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
      	* config/linux/s390/futex.h (atomic_write_barrier): Likewise.
      	* config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
      	* config/linux/x86/futex.h (atomic_write_barrier): Likewise.
      
      From-SVN: r181906
      Alan Modra committed
  5. 30 Nov, 2011 3 commits
  6. 08 Aug, 2011 1 commit
    • configure.ac (THREADS): Remove posix95. · ddaad3c8
      	boehm-gc:
      	* configure.ac (THREADS): Remove posix95.
      	* configure: Regenerate.
      
      	gcc:
      	* gthr-posix95.h: Remove.
      	* gthr.h [_PTHREADS95]: Remove.
      	* configure.ac (enable_threads): Remove posix95.
      	* configure: Regenerate.
      	* doc/install.texi (Configuration, --enable-threads): Remove
      	posix95.
      
      	libgomp:
      	* config/posix95/lock.c, posix95/omp-lock.h: Remove.
      
      	libjava:
      	* configure.ac (THREADS): Remove posix95.
      	* configure: Regenerate.
      
      From-SVN: r177568
      Rainer Orth committed
  7. 03 Aug, 2011 1 commit
    • proc.h: New. · e0b23d9f
      	* config/linux/proc.h: New.
      	* config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
      	(gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
      	(gomp_init_num_threads): Update call to cpuset_popcount.
      	(get_num_procs): Ditto.
      	* config/linux/affinity.c (gomp_init_affinity): Call
      	gomp_cpuset_popcount.
      
      From-SVN: r177265
      Uros Bizjak committed
  8. 02 Aug, 2011 2 commits
    • backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable… · 20906c66
      backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable array in firstprivate clause)
      
      Merge from gomp-3_1-branch branch:
      
      2011-08-02  Jakub Jelinek  <jakub@redhat.com>
      
      gcc/
      	* c-parser.c (enum c_parser_prec): New enum, moved from within
      	c_parser_binary_expression.
      	(c_parser_binary_expression): Add PREC argument.  Stop parsing
      	if operator has lower or equal precedence than PREC.
      	(c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
      	callers.
      	(c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
      	Adjust c_finish_omp_atomic caller.
      	(c_parser_omp_taskyield): New function.
      	(c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
      	(c_parser_omp_clause_name): Handle final and mergeable clauses.
      	(c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
      	functions.
      	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
      	and PRAGMA_OMP_CLAUSE_MERGEABLE.
      	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
      	(c_parser_omp_clause_reduction): Handle min and max.
      	* c-typeck.c (c_finish_omp_clauses): Don't complain about
      	const qualified predetermined vars in firstprivate clause.
      	andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	Handle MIN_EXPR and MAX_EXPR.
      	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
      	and OMP_CLAUSE_MERGEABLE.
      	(dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
      	and OMP_ATOMIC_CAPTURE_NEW.
      	* tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	(omp_clause_code_name): Likewise.
      	(walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	* tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
      	and OMP_CLAUSE_MERGEABLE.
      	(OMP_CLAUSE_FINAL_EXPR): Define.
      	* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	(expand_task_call): Likewise.
      	(expand_omp_atomic_load, expand_omp_atomic_store): New functions.
      	(expand_omp_atomic_fetch_op): Handle cases where old or new
      	value is needed afterwards.
      	(expand_omp_atomic): Call expand_omp_atomic_load resp.
      	expand_omp_atomic_store.
      	* gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
      	OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
      	(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
      	OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      	* tree-nested.c (convert_nonlocal_omp_clauses,
      	convert_local_omp_clauses): Likewise.
      	* tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
      	OMP_ATOMIC_CAPTURE_NEW): New.
      	* gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
      	(gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
      	New inlines.
      	* omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
      	* doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
      	OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
      gcc/c-family/
      	* c-common.h (c_finish_omp_atomic): Adjust prototype.
      	(c_finish_omp_taskyield): New prototype.
      	* c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
      	arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
      	OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC.  If LHS1
      	or RHS1 have side-effects, evaluate those too in the right spot,
      	if it is a decl and LHS is also a decl, error out if they
      	aren't the same.
      	(c_finish_omp_taskyield): New function.
      	* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
      	* c-pragma.c (omp_pragmas): Add taskyield.
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
      	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
      	PRAGMA_OMP_CLAUSE_MERGEABLE.
      gcc/cp/
      	* cp-tree.h (finish_omp_atomic): Adjust prototype.
      	(cxx_omp_const_qual_no_mutable): New prototype.
      	(finish_omp_taskyield): New prototype.
      	* parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
      	parsing OpenMP 3.1 atomics.  Adjust finish_omp_atomic caller.
      	(cp_parser_omp_clause_name): Handle final and mergeable clauses.
      	(cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
      	functions.
      	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
      	and PRAGMA_OMP_CLAUSE_MERGEABLE.
      	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
      	(cp_parser_omp_taskyield): New function.
      	(cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
      	(cp_parser_omp_clause_reduction): Handle min and max.
      	* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
      	(tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
      	OMP_CLAUSE_MERGEABLE.
      	* semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
      	arguments.  Handle OpenMP 3.1 atomics.  Adjust c_finish_omp_atomic
      	caller.
      	(finish_omp_clauses): Don't complain about const qualified
      	predetermined vars and static data members in firstprivate clause.
      	Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
      	and MAX_EXPR.
      	(finish_omp_taskyield): New function.
      	* cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
      	(cxx_omp_predetermined_sharing): Use it.
      gcc/fortran/
      	PR fortran/46752
      	* cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
      	* openmp.c (gfc_free_omp_clauses): Free also final_expr.
      	(OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
      	(gfc_match_omp_clauses): Handle parsing final and mergeable
      	clauses.
      	(OMP_TASK_CLAUSES): Allow final and mergeable clauses.
      	(gfc_match_omp_taskyield): New function.
      	(resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
      	Cray pointers in clauses other than REDUCTION.
      	(gfc_match_omp_atomic): Match optional
      	read/write/update/capture keywords after !$omp atomic.
      	(resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
      	* dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
      	print final and mergeable clauses.
      	(show_code_node): Handle EXEC_OMP_TASKYIELD.
      	* trans-openmp.c (gfc_trans_omp_clauses): Handle final and
      	mergeable clauses.
      	(gfc_trans_omp_taskyield): New function.
      	(gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
      	(gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
      	(gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
      	(gfc_omp_predetermined_sharing): Adjust comment.
      	* gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
      	ST_OMP_END_ATOMIC.
      	(gfc_omp_clauses): Add final_expr and mergeable fields.
      	(gfc_exec_op): Add EXEC_OMP_TASKYIELD.
      	(gfc_omp_atomic_op): New enum typedef.
      	(struct gfc_code): Add ext.omp_atomic.
      	* trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
      	* frontend-passes.c (gfc_code_walker): Also walk final_expr.
      	* resolve.c (gfc_resolve_blocks, resolve_code): Handle
      	EXEC_OMP_TASKYIELD.
      	* st.c (gfc_free_statement): Likewise.
      	* match.h (gfc_match_omp_taskyield): New prototype.
      	* parse.c (decode_omp_directive): Handle taskyield directive.
      	Handle !$omp end atomic.
      	(case_executable): Add ST_OMP_TASKYIELD case.
      	(gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
      	(parse_omp_atomic): Return gfc_statement instead of void.
      	For !$omp atomic capture parse two assignments instead of
      	just one and require !$omp end atomic afterwards, for
      	other !$omp atomic forms just allow !$omp end atomic at the
      	end.
      	(parse_omp_structured_block, parse_executable): Adjust
      	parse_omp_atomic callers.
      
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
      	* intrinsic.c (OMP_LIB): Updated openmp_version's
      	value to 201107.
      	* gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
      	* intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
      	remove deleted omp_integer_kind and omp_logical_kind constants.
      gcc/testsuite/
      	PR fortran/46752
      	* gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics.
      	* gcc.dg/gomp/atomic-15.c: New test.
      	* g++.dg/gomp/atomic-5.C: Adjust expected diagnostics.
      	* g++.dg/gomp/atomic-15.C: New test.
      	* g++.dg/gomp/private-1.C: New test.
      	* g++.dg/gomp/sharing-2.C: New test.
      	* gfortran.dg/gomp/crayptr1.f90: Don't expect error
      	about Cray pointer in FIRSTPRIVATE/LASTPRIVATE.
      	* gfortran.dg/gomp/omp_atomic2.f90: New test.
      libgomp/
      	PR fortran/42041
      	PR fortran/46752
      	* omp.h.in (omp_in_final): New prototype.
      	* omp_lib.f90.in (omp_in_final): New interface.
      	(omp_integer_kind, omp_logical_kind): Remove
      	and replace all its uses in the module with 4.
      	(openmp_version): Change to 201107.
      	* omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
      	omp_sched_guided, omp_sched_auto): Use omp_sched_kind
      	kind for the parameters.
      	(omp_in_final): New external.
      	(openmp_version): Change to 201107.
      	* task.c (omp_in_final): New function.
      	(gomp_init_task): Initialize final_task.
      	(GOMP_task): Remove unused attribute from flags.  Handle final
      	tasks.
      	(GOMP_taskyield): New function.
      	(omp_in_final): Return true if if (false) or final (true) task
      	or descendant of final (true).
      	* fortran.c (omp_in_final_): New function.
      	* libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
      	(GOMP_3.0): Export GOMP_taskyield.
      	* env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
      	variables.
      	(parse_unsigned_long_list): New function.
      	(initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
      	with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
      	even if parse_affinity returned false.
      	* config/linux/affinity.c (gomp_init_affinity): Handle
      	gomp_cpu_affinity_len == 0.
      	* libgomp_g.h (GOMP_taskyield): New prototype.
      	* libgomp.h (struct gomp_task): Add final_task field.
      	(gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
      	* team.c (gomp_team_start): Override new task's nthreads_var icv
      	if list form OMP_NUM_THREADS has been used and it has value for
      	the new nesting level.
      
      	* testsuite/libgomp.c/atomic-11.c: New test.
      	* testsuite/libgomp.c/atomic-12.c: New test.
      	* testsuite/libgomp.c/atomic-13.c: New test.
      	* testsuite/libgomp.c/atomic-14.c: New test.
      	* testsuite/libgomp.c/reduction-6.c: New test.
      	* testsuite/libgomp.c/task-5.c: New test.
      	* testsuite/libgomp.c++/atomic-2.C: New test.
      	* testsuite/libgomp.c++/atomic-3.C: New test.
      	* testsuite/libgomp.c++/atomic-4.C: New test.
      	* testsuite/libgomp.c++/atomic-5.C: New test.
      	* testsuite/libgomp.c++/atomic-6.C: New test.
      	* testsuite/libgomp.c++/atomic-7.C: New test.
      	* testsuite/libgomp.c++/atomic-8.C: New test.
      	* testsuite/libgomp.c++/atomic-9.C: New test.
      	* testsuite/libgomp.c++/task-8.C: New test.
      	* testsuite/libgomp.c++/reduction-4.C: New test.
      	* testsuite/libgomp.fortran/allocatable7.f90: New test.
      	* testsuite/libgomp.fortran/allocatable8.f90: New test.
      	* testsuite/libgomp.fortran/crayptr3.f90: New test.
      	* testsuite/libgomp.fortran/omp_atomic3.f90: New test.
      	* testsuite/libgomp.fortran/omp_atomic4.f90: New test.
      	* testsuite/libgomp.fortran/pointer1.f90: New test.
      	* testsuite/libgomp.fortran/pointer2.f90: New test.
      	* testsuite/libgomp.fortran/task4.f90: New test.
      
      2011-08-02  Tobias Burnus  <burnus@net-b.de>
      
      	* libgomp.texi: Update OpenMP spec references to 3.1.
      	(omp_in_final,OMP_PROC_BIND): New sections.
      	(OMP_NUM_THREADS): Document that the value can be now a list.
      	(GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
      
      From-SVN: r177194
      Jakub Jelinek committed
    • Check __x86_64__ instead of __LP64__ for x86 futex. · c01ecafc
      2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* config/linux/x86/futex.h: Check __x86_64__ instead of
      	__LP64__.
      
      From-SVN: r177166
      H.J. Lu committed
  9. 25 Jul, 2011 1 commit
  10. 15 Jul, 2011 1 commit
    • wait.h (do_spin): New inline... · bfee0724
      	* config/linux/wait.h (do_spin): New inline, largely copied
      	from do_wait, just don't do futex_wait here, instead return true if
      	it should be done.
      	(do_wait): Implement using do_spin.
      	* config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
      	to prototype.
      	(gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
      	__sync_bool_compare_and_swap, pass the oldval to
      	gomp_mutex_lock_slow.
      	* config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
      	If all mutex contenders are just spinning and not sleeping, don't
      	change state to 2 unnecessarily.  Optimize the loop when state has
      	already become 2 to use just one atomic operation per loop instead
      	of two.
      	* config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
      	to prototype.
      	(gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
      	__sync_bool_compare_and_swap, pass the oldval to
      	gomp_mutex_lock_slow.
      
      From-SVN: r176326
      Jakub Jelinek committed
  11. 14 Feb, 2011 1 commit
  12. 06 Oct, 2010 1 commit
    • futex.h: New. · d213e92e
      2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
      
      	* config/linux/futex.h: New.
      	* config/linux/arm/mutex.h: New.
      	* configure.tgt (arm*-*-linux*): Add config path.
      
      From-SVN: r165054
      Marcus Shawcroft committed
  13. 20 Apr, 2010 1 commit
  14. 04 Aug, 2009 1 commit
  15. 09 Apr, 2009 1 commit
  16. 02 Dec, 2008 1 commit
  17. 13 Nov, 2008 1 commit
  18. 19 Sep, 2008 1 commit
    • proc.c: New file. · e2b34106
      2008-09-19  Jakub Jelinek  <jakub@redhat.com>
      	    Andreas Tobler  <a.tobler@schweiz.org>
      
      	* config/bsd/proc.c: New file.
      	* configure.tgt (*-*-darwin*): Use config_path "darwin posix".
      	* configure.ac: Check for header <sys/sysctl.h>
      	* configure: Regenerate.
      	* config.h.in: Likewise.
      
      Co-Authored-By: Andreas Tobler <a.tobler@schweiz.org>
      
      From-SVN: r140497
      Jakub Jelinek committed
  19. 28 Jul, 2008 1 commit
  20. 06 Jun, 2008 1 commit
    • c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805. · a68ab351
      	* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
      	200805.
      	* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
      	Add omp_private_outer_ref hook, add another argument to
      	omp_clause_default_ctor hook.
      	* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
      	(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
      	(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
      	hook_tree_tree_tree_tree_null.
      	(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
      	LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
      	* hooks.c (hook_tree_tree_tree_tree_null): New function.
      	* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
      	* tree.def (OMP_TASK): New tree code.
      	* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
      	OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
      	OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
      	OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
      	OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
      	OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
      	OMP_CLAUSE_COLLAPSE_EXPR): Define.
      	(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
      	(OMP_DIRECTIVE_P): Add OMP_TASK.
      	(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
      	(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
      	* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
      	and OMP_CLAUSE_UNTIED entries.
      	(omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
      	num_ops to 2.
      	(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
      	Walk OMP_CLAUSE_LASTPRIVATE_STMT.
      	* tree-pretty-print.c (dump_omp_clause): Handle
      	OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
      	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
      	(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
      	* c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
      	warning about unsigned iterators.  Change decl/init/cond/incr
      	arguments to TREE_VECs, check arguments for all collapsed loops.
      	(c_finish_omp_taskwait): New function.
      	(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
      	ws_clauses.
      	* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
      	default_function_array_conversion on init.  Add par_clauses argument.
      	If decl is present in parallel's lastprivate clause, change it to
      	shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
      	Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
      	collapse count in clauses.
      	(c_parser_omp_for, c_parser_omp_parallel): Adjust
      	c_parser_omp_for_loop callers.
      	(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
      	(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
      	(c_parser_omp_clause_name): Handle collapse and untied clauses.
      	(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
      	functions.
      	(c_parser_omp_clause_schedule): Handle schedule(auto).
      	Include correct location in the error message.
      	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
      	and PRAGMA_OMP_CLAUSE_UNTIED.
      	(OMP_TASK_CLAUSE_MASK): Define.
      	(c_parser_omp_task, c_parser_omp_taskwait): New functions.
      	(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
      	* tree-nested.c (convert_nonlocal_omp_clauses,
      	convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
      	OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
      	OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
      	Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
      	OMP_CLAUSE_DECL.
      	(conver_nonlocal_reference, convert_local_reference,
      	convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
      	OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
      	(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
      	* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
      	* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
      	(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
      	* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
      	(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
      	OMP_CLAUSE_UNTIED.
      	* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
      	* c-common.h (c_finish_omp_taskwait): New prototype.
      	* gimple-low.c (lower_stmt): Handle OMP_TASK.
      	* tree-parloops.c (create_parallel_loop): Create 1 entry
      	vectors for OMP_FOR_{INIT,COND,INCR}.
      	* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
      	(make_edges): Handle OMP_TASK.
      	* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
      	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
      	* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
      	BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
      	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
      	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
      	* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
      	BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
      	* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
      	handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
      	original iterator is present in lastprivate clause or if
      	collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
      	OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
      	(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
      	(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
      	if it is set, lookup var in outer contexts too.  Handle
      	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
      	to be implicitly determined firstprivate for task regions.
      	(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
      	if it is set, lookup var in outer contexts too.  Set
      	OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
      	Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
      	OMP_CLAUSE_UNTIED.  Take region_type as last argument
      	instead of in_parallel and in_combined_parallel.
      	(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
      	Adjust callers.
      	(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
      	GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause
      	langhook.
      	(new_omp_context): Set default_kind to
      	OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
      	(omp_region_type): New enum.
      	(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
      	fields, add region_type.
      	(new_omp_context): Take region_type as argument instead of is_parallel
      	and is_combined_parallel.
      	(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
      	omp_is_private, omp_check_private): Adjust ctx->is_parallel and
      	ctx->is_combined_parallel checks.
      	(gimplify_omp_task): New function.
      	(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
      	OMP_CLAUSE_UNTIED.
      	* omp-low.c (extract_omp_for_data): Use schedule(static)
      	for schedule(auto).  Handle pointer and unsigned iterators.
      	Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
      	Add loops argument.  Extract data for collapsed OMP_FOR loops.
      	(expand_parallel_call): Assert sched_kind isn't auto,
      	map runtime schedule to index 3.
      	(struct omp_for_data_loop): New type.
      	(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
      	Add loop, loops, collapse and iter_type fields.
      	(workshare_safe_to_combine_p): Disallow combined for if
      	iter_type is unsigned long long.  Don't combine collapse > 1 loops
      	unless all bounds and steps are constant.  Adjust extract_omp_for_data
      	caller.
      	(expand_omp_for_generic): Handle pointer, unsigned and long long
      	iterators.  Handle collapsed OMP_FOR loops.  Adjust
      	for struct omp_for_data changes.  If libgomp function doesn't return
      	boolean_type_node, add comparison of the return value with 0.
      	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
      	pointer, unsigned and long long iterators.  Adjust for struct
      	omp_for_data changes.
      	(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
      	to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
      	unsigned long long.  Allocate loops array, pass it to
      	extract_omp_for_data.  For collapse > 1 loops use always
      	expand_omp_for_generic.
      	(omp_context): Add sfield_map and srecord_type fields.
      	(is_task_ctx, lookup_sfield): New functions.
      	(use_pointer_for_field): Use is_task_ctx helper.  Change first
      	argument's type from const_tree to tree.  Clarify comment.
      	In OMP_TASK disallow copy-in/out sharing.
      	(build_sender_ref): Call lookup_sfield instead of lookup_field.
      	(install_var_field): Add mask argument.  Populate both record_type
      	and srecord_type if needed.
      	(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
      	in srecord_type.
      	(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
      	and DECL_FIELD_OFFSET.
      	(scan_sharing_clauses): Adjust install_var_field callers.  For
      	firstprivate clauses on explicit tasks allocate the var by value in
      	record_type unconditionally, rather than by reference.
      	Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
      	Use is_taskreg_ctx instead of is_parallel_ctx.
      	Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
      	(create_omp_child_function_name): Add task_copy argument, use
      	*_omp_cpyfn* names if it is true.
      	(create_omp_child_function): Add task_copy argument, if true create
      	*_omp_cpyfn* helper function.
      	(scan_omp_parallel): Adjust create_omp_child_function callers.
      	Rename parallel_nesting_level to taskreg_nesting_level.
      	(scan_omp_task): New function.
      	(lower_rec_input_clauses): Don't run constructors for firstprivate
      	explicit task vars which are initialized by *_omp_cpyfn*.  
      	Pass outer var ref to omp_clause_default_ctor hook if
      	OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
      	Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
      	OMP_CLAUSE_REDUCTION_INIT.
      	(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
      	avoid duplicate setting of fields.  Handle
      	OMP_CLAUSE_PRIVATE_OUTER_REF.
      	(lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
      	copy-out if TREE_READONLY, only copy-in.
      	(expand_task_copyfn): New function.
      	(expand_task_call): New function.
      	(struct omp_taskcopy_context): New type.
      	(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
      	New functions.
      	(lower_omp_parallel): Rename to...
      	(lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
      	Call create_task_copyfn if srecord_type is needed.  Adjust
      	sender_decl type.
      	(task_shared_vars): New variable.
      	(check_omp_nesting_restrictions): Warn if work-sharing,
      	barrier, master or ordered region is closely nested inside OMP_TASK.
      	Add warnings for barrier if closely nested inside of work-sharing,
      	ordered, or master region.
      	(scan_omp_1): Call check_omp_nesting_restrictions even for
      	GOMP_barrier calls.  Rename parallel_nesting_level to
      	taskreg_nesting_level.  Handle OMP_TASK.
      	(lower_lastprivate_clauses): Even if some lastprivate is found on a
      	work-sharing construct, continue looking for them on parent parallel
      	construct.
      	(lower_omp_for_lastprivate): Add lastprivate clauses
      	to the beginning of dlist rather than end.  Adjust for struct
      	omp_for_data changes.
      	(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
      	not after it.  Handle collapsed OMP_FOR loops, adjust for
      	OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
      	caller.
      	(get_ws_args_for): Adjust extract_omp_for_data caller.
      	(scan_omp_for): Handle collapsed OMP_FOR
      	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	(lower_omp_single_simple): If libgomp function doesn't return
      	boolean_type_node, add comparison of the return value with 0.
      	(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
      	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
      	(parallel_nesting_level): Rename to...
      	(taskreg_nesting_level): ... this.
      	(is_taskreg_ctx): New function.
      	(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
      	of is_parallel_ctx.
      	(execute_lower_omp): Rename parallel_nesting_level to
      	taskreg_nesting_level.
      	(expand_omp_parallel): Rename to...
      	(expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
      	Call omp_task_call for OMP_TASK regions.
      	(expand_omp): Adjust caller, handle OMP_TASK.
      	(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
      
      	* bitmap.c (bitmap_default_obstack_depth): New variable.
      	(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
      	if argument is NULL and bitmap_default_obstack is already initialized.
      	* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
      	at the end.
      	* matrix-reorg.c (matrix_reorg): Likewise.
      cp/
      	* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
      	dependent_omp_for_p, begin_omp_task, finish_omp_task,
      	finish_omp_taskwait): New prototypes.
      	(cxx_omp_clause_default_ctor): Add outer argument.
      	(finish_omp_for): Add new clauses argument.
      	* cp-gimplify.c (cxx_omp_finish_clause): New function.
      	(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
      	(cxx_omp_clause_default_ctor): Add outer argument.
      	(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
      	* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
      	* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
      	Add par_clauses argument.  If decl is present in parallel's
      	lastprivate clause, change that clause to shared and add
      	a lastprivate clause for decl to OMP_FOR_CLAUSES.
      	Fix wording of error messages.  Adjust finish_omp_for caller.
      	Add clauses argument.  Parse loops with random access iterators.
      	(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
      	functions.
      	(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
      	cp_parser_omp_for_loop callers.
      	(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
      	functions.
      	(cp_parser_omp_clause_name): Handle collapse and untied
      	clauses.
      	(cp_parser_omp_clause_schedule): Handle auto schedule.
      	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
      	and PRAGMA_OMP_CLAUSE_UNTIED.
      	(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
      	(OMP_TASK_CLAUSE_MASK): Define.
      	(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
      	(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
      	(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
      	PRAGMA_OMP_TASKWAIT.
      	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
      	OMP_CLAUSE_UNTIED.  Handle OMP_CLAUSE_LASTPRIVATE_STMT.
      	(tsubst_omp_for_iterator): New function.
      	(dependent_omp_for_p): New function.
      	(tsubst_expr) <case OMP_FOR>: Use it.  Handle collapsed OMP_FOR
      	loops.  Adjust finish_omp_for caller.  Handle loops with random
      	access iterators.  Adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	(tsubst_expr): Handle OMP_TASK.
      	* semantics.c (cxx_omp_create_clause_info): New function.
      	(finish_omp_clauses): Call it.  Handle OMP_CLAUSE_UNTIED and
      	OMP_CLAUSE_COLLAPSE.
      	(cxx_omp_predetermined_sharing): Removed.
      	* semantics.c (finish_omp_for): Allow pointer iterators.  Use
      	handle_omp_for_class_iterator and dependent_omp_for_p.  Handle
      	collapsed for loops.  Adjust c_finish_omp_for caller.  Add new
      	clauses argument.  Fix check for type dependent cond or incr.
      	Set OMP_FOR_CLAUSES to clauses.  Use cp_convert instead of
      	fold_convert to convert incr amount to difference_type.  Only
      	fold if not in template.  If decl is mentioned in lastprivate
      	clause, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle loops with random
      	access iterators.  Adjust for OMP_FOR_{INIT,COND,INCR}
      	changes.
      	(finish_omp_threadprivate): Allow static class members of the
      	current class.
      	(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
      	finish_omp_taskwait): New functions.
      
      	* parser.c (cp_parser_binary_expression): Add prec argument.
      	(cp_parser_assignment_expression): Adjust caller.
      	* cp-tree.h (outer_curly_brace_block): New prototype.
      	* decl.c (outer_curly_brace_block): No longer static.
      fortran/
      	* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
      	* parse.c (next_free): Allow tab after !$omp.
      	(decode_omp_directive): Handle !$omp task, !$omp taskwait
      	and !$omp end task.
      	(case_executable): Add ST_OMP_TASKWAIT.
      	(case_exec_markers): Add ST_OMP_TASK.
      	(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
      	ST_OMP_TASKWAIT.
      	(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
      	* gfortran.h (gfc_find_sym_in_expr): New prototype.
      	(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
      	(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
      	OMP_DEFAULT_FIRSTPRIVATE to default_sharing.  Add collapse and
      	untied fields.
      	(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
      	* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
      	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
      	LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
      	* trans.h (gfc_omp_clause_default_ctor): Add another argument.
      	(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
      	gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
      	* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
      	BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
      	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
      	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
      	BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
      	(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
      	than boolean_type_node.
      	* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
      	EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
      	untied and collapse clauses.
      	(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
      	* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
      	EXEC_OMP_TASKWAIT.
      	* st.c (gfc_free_statement): Likewise.
      	* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
      	(find_sym_in_expr): Rename to...
      	(gfc_find_sym_in_expr): ... this.  No longer static.
      	(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
      	* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
      	prototypes.
      	* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
      	firstprivate, lastprivate, reduction, copyprivate and copyin
      	clauses.
      	(omp_current_do_code): Made static.
      	(omp_current_do_collapse): New variable.
      	(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
      	clear omp_current_do_code and omp_current_do_collapse on return.
      	(gfc_resolve_do_iterator): Handle collapsed do loops.
      	(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
      	(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
      	(gfc_match_omp_clauses): Handle default (firstprivate),
      	schedule (auto), untied and collapse (n) clauses.
      	(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
      	(OMP_TASK_CLAUSES): Define.
      	(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
      	* trans-openmp.c (gfc_omp_private_outer_ref): New function.
      	(gfc_omp_clause_default_ctor): Add outer argument.  For allocatable
      	arrays allocate them with the bounds of the outer var if outer
      	var is allocated.
      	(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
      	gfc_omp_clause_dtor): New functions.
      	(gfc_trans_omp_array_reduction): If decl is allocatable array,
      	allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
      	and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
      	(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
      	for assumed-size arrays.
      	(gfc_trans_omp_do): Add par_clauses argument.  If dovar is
      	present in lastprivate clause and do loop isn't simple,
      	set OMP_CLAUSE_LASTPRIVATE_STMT.  If dovar is present in
      	parallel's lastprivate clause, change it to shared and add
      	lastprivate clause to OMP_FOR_CLAUSES.  Handle collapsed do loops.
      	(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
      	(gfc_trans_omp_parallel_do): Likewise.  Move collapse clause to
      	OMP_FOR from OMP_PARALLEL.
      	(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
      	OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
      	(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
      	(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
      	EXEC_OMP_TASKWAIT.
      gcc/testsuite/
      	* gcc.dg/gomp/collapse-1.c: New test.
      	* gcc.dg/gomp/nesting-1.c: New test.
      	* g++.dg/gomp/task-1.C: New test.
      	* g++.dg/gomp/predetermined-1.C: New test.
      	* g++.dg/gomp/tls-4.C: New test.
      	* gfortran.dg/gomp/collapse1.f90: New test.
      	* gfortran.dg/gomp/sharing-3.f90: New test.
      	* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
      	* g++.dg/gomp/pr27499.C (foo): Likewise.
      	* g++.dg/gomp/for-16.C (foo): Likewise.
      	* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
      	* g++.dg/gomp/pr34607.C: Adjust dg-error location.
      	* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
      	* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
      	* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
      	* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
      	* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
      	* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
      	* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
      	about allocatable array.
      	* gfortran.dg/gomp/reduction1.f90: Likewise.
      libgomp/
      	* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
      	Substitute also OMP_*LOCK_25*.
      	* configure: Regenerated.
      	* config.h.in: Regenerated.
      	* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
      	ptrlock.c and task.c.
      	* Makefile.in: Regenerated.
      	* testsuite/Makefile.in: Regenerated.
      	* task.c: New file.
      	* loop_ull.c: New file.
      	* iter_ull.c: New file.
      	* libgomp.h: Include ptrlock.h.
      	(enum gomp_task_kind): New type.
      	(struct gomp_team): Add task_lock, task_queue, task_count,
      	task_running_count, single_count fields.  Add
      	work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
      	Remove work_share_lock, generation_mask,
      	oldest_live_gen, num_live_gen and init_work_shares fields, add
      	work work_share_list_alloc, work_share_list_free and work_share_chunk
      	fields.  Change work_shares from pointer to pointers into an array.
      	Change ordered_release field into gomp_sem_t ** from flexible array
      	member.  Add implicit_task and initial_work_shares fields.
      	Move close to the end of the struct.
      	(struct gomp_team_state): Add single_count, last_work_share,
      	active_level and level fields, remove work_share_generation.
      	(gomp_barrier_handle_tasks): New prototype.
      	(gomp_finish_task): New inline function.
      	(struct gomp_work_share): Move chunk_size, end, incr into
      	transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
      	next_ll fields.  Reshuffle fields.  Add next_alloc,
      	next_ws, next_free and inline_ordered_team_ids fields, change
      	ordered_team_ids into pointer from flexible array member.
      	Add mode field.  Put lock and next into a different cache line
      	from most of the write-once fields.
      	(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
      	gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
      	gomp_iter_ull_guided_next): New prototypes.
      	(gomp_new_icv): New prototype.
      	(struct gomp_thread): Add thread_pool and task fields.
      	(struct gomp_thread_pool): New type.
      	(gomp_new_team): New prototype.
      	(gomp_team_start): Change type of last argument.
      	(gomp_new_work_share): Removed.
      	(gomp_init_work_share, gomp_fini_work_share): New prototypes.
      	(gomp_work_share_init_done): New static inline.
      	(gomp_throttled_spin_count_var, gomp_available_cpus,
      	gomp_managed_threads): New extern decls.
      	(gomp_init_task): New prototype.
      	(gomp_spin_count_var): New extern var decl.
      	(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
      	or no alias support, or if not PIC.
      	(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
      	gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
      	gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
      	gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
      	gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
      	gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
      	gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
      	gomp_test_nest_lock_25): New prototypes.
      	(omp_lock_symver, strong_alias): Define.
      	(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
      	decls.
      	(gomp_end_task): New.
      	(struct gomp_task_icv, gomp_global_icv): New.
      	(gomp_thread_limit_var, gomp_max_active_levels_var): New.
      	(struct gomp_task): New.
      	(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
      	gomp_run_sched_var, gomp_run_sched_chunk): Remove.
      	(gomp_icv): New.
      	(gomp_schedule_type): Reorder enum to match
      	omp_sched_t.
      	* team.c (struct gomp_thread_start_data): Add thread_pool and task
      	fields.
      	(gomp_thread_start): Add gomp_team_barrier_wait call.
      	For non-nested case remove clearing of docked thread thr fields.
      	Use pool fields instead of global gomp_* variables.  Use
      	gomp_barrier_wait_last when needed.  Initialize ts.active_level.
      	Create tasks for each member thread.
      	(free_team): Only destroy team barrier, task_lock here and free it.
      	(gomp_free_thread): Free last_team if non-NULL.
      	(gomp_team_end): Call gomp_team_barrier_wait instead of
      	gomp_barrier_wait.  For nested case call one extra
      	gomp_barrier_wait.  Move here some destruction from free_team.
      	Call free_team on pool->last_team if any, rather than freeing
      	current team.  Destroy work_share_list_free_lock ifndef
      	HAVE_SYNC_BUILTINS.
      	(gomp_new_icv): New function.
      	(gomp_threads, gomp_threads_size, gomp_threads_used,
      	gomp_threads_dock): Removed.
      	(gomp_thread_destructor): New variable.
      	(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
      	functions.
      	(gomp_team_start): Create new pool if current thread doesn't have
      	one.  Use pool fields instead of global gomp_* variables. 
      	Initialize thread_pool field for new threads.  Clear single_count.
      	Change last argument from ws to team, don't create
      	new team, set ts.work_share to &team->work_shares[0] and clear
      	ts.last_work_share.  Don't clear ts.work_share_generation.
      	If number of threads changed, adjust atomically gomp_managed_threads.
      	Use gomp_init_task instead of gomp_new_task,
      	set thr->task to the corresponding implicit_task array entry.
      	Create tasks for each member thread.  Initialize ts.level.
      	(initialize_team): Call pthread_key_create on
      	gomp_thread_destructor.
      	(team_destructor): New function.
      	(new_team): Removed.
      	(gomp_new_team): New function.
      	(free_team): Free gomp_work_share blocks chained through next_alloc,
      	instead of freeing work_shares and destroying work_share_lock.
      	(gomp_team_end): Call gomp_fini_work_share.  If number of threads
      	changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
      	* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
      	of gomp_barrier_wait.
      	* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
      	instead of gomp_barrier_wait.  Call gomp_work_share_init_done
      	if gomp_work_share_start returned true.  Don't unlock ws->lock.
      	(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
      	of gomp_barrier_wait.
      	(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
      	gomp_work_share_init_done if gomp_work_share_start returned true.
      	Don't unlock ws->lock.
      	* work.c: Include stddef.h.
      	(free_work_share): Use work_share_list_free_lock instead
      	of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
      	Call gomp_fini_work_share and then either free ws if orphaned, or
      	put it into work_share_list_free list of the current team.
      	(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
      	functions.
      	(gomp_work_share_start, gomp_work_share_end,
      	gomp_work_share_end_nowait): Rewritten.
      	* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
      	(openmp_version): Set to 200805.
      	(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
      	omp_sched_guided, omp_sched_auto): New parameters.
      	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
      	omp_set_max_active_levels, omp_get_max_active_levels,
      	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
      	omp_get_active_level): New interfaces.
      	* omp_lib.h.in (openmp_version): Set to 200805.
      	(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
      	omp_sched_guided, omp_sched_auto): New parameters.
      	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
      	omp_set_max_active_levels, omp_get_max_active_levels,
      	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
      	omp_get_active_level): New externals.
      	* loop.c: Include limits.h.
      	(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
      	GFS_AUTO.
      	(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
      	Likewise.  Use gomp_icv.
      	(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
      	ts.static_trip here.
      	(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
      	gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
      	(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
      	gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
      	don't unlock ws->lock, otherwise lock it.
      	(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
      	gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
      	(gomp_parallel_loop_start): Call gomp_new_team instead of
      	gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
      	Adjust gomp_team_start caller.  Pass 0 as second argument to
      	gomp_resolve_num_threads.
      	(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
      	If adding ws->chunk_size nthreads + 1 times after end won't
      	overflow, set ws->mode to 1.
      	* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
      	GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
      	GOMP_loop_ull_ordered_static_start,
      	GOMP_loop_ull_ordered_dynamic_start,
      	GOMP_loop_ull_ordered_guided_start,
      	GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
      	GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
      	GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
      	GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
      	GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
      	prototypes.
      	* libgomp.map: Export lock routines also @@OMP_2.0.
      	(GOMP_loop_ordered_dynamic_first,
      	GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
      	GOMP_loop_ordered_static_first): Remove.
      	(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
      	GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
      	GOMP_loop_ull_ordered_dynamic_next,
      	GOMP_loop_ull_ordered_dynamic_start,
      	GOMP_loop_ull_ordered_guided_next,
      	GOMP_loop_ull_ordered_guided_start,
      	GOMP_loop_ull_ordered_runtime_next,
      	GOMP_loop_ull_ordered_runtime_start,
      	GOMP_loop_ull_ordered_static_next,
      	GOMP_loop_ull_ordered_static_start,
      	GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
      	GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
      	GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
      	(omp_set_schedule, omp_get_schedule,
      	omp_get_thread_limit, omp_set_max_active_levels,
      	omp_get_max_active_levels, omp_get_level,
      	omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
      	omp_set_schedule_, omp_set_schedule_8_,
      	omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
      	omp_set_max_active_levels_, omp_set_max_active_levels_8_,
      	omp_get_max_active_levels_, omp_get_level_,
      	omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
      	omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
      	New exports @@OMP_3.0.
      	* omp.h.in (omp_sched_t): New type.
      	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
      	omp_set_max_active_levels, omp_get_max_active_levels,
      	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
      	omp_get_active_level): New prototypes.
      	* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
      	gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
      	gomp_thread_limit_var, gomp_remaining_threads_count,
      	gomp_remaining_threads_lock): New variables.
      	(parse_spincount): New function.
      	(initialize_env): Call gomp_init_num_threads unconditionally.
      	Initialize gomp_available_cpus.  Call parse_spincount,
      	initialize gomp_{,throttled_}spin_count_var
      	depending on presence and value of OMP_WAIT_POLICY and
      	GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
      	Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
      	OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
      	for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
      	gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
      	(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
      	gomp_run_sched_var, gomp_run_sched_chunk): Remove.
      	(gomp_global_icv): New.
      	(parse_schedule): Use it.  Parse "auto".
      	(omp_set_num_threads): Use gomp_icv.
      	(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
      	Likewise.
      	(omp_get_max_threads): Move from parallel.c.
      	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
      	omp_set_max_active_levels, omp_get_max_active_levels): New functions,
      	add ialias.
      	(parse_stacksize, parse_wait_policy): New functions.
      	* fortran.c: Rewrite lock wrappers, if symbol versioning provide
      	both wrappers for compatibility and new locks.
      	(omp_set_schedule, omp_get_schedule,
      	omp_get_thread_limit, omp_set_max_active_levels,
      	omp_get_max_active_levels, omp_get_level,
      	omp_get_ancestor_thread_num, omp_get_team_size,
      	omp_get_active_level): New ialias_redirect.
      	(omp_set_schedule_, omp_set_schedule_8_,
      	omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
      	omp_set_max_active_levels_, omp_set_max_active_levels_8_,
      	omp_get_max_active_levels_, omp_get_level_,
      	omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
      	omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
      	New functions.
      	* parallel.c: Include limits.h.
      	(gomp_resolve_num_threads): Add count argument.  Rewritten.
      	(GOMP_parallel_start): Call gomp_new_team and pass that as last
      	argument to gomp_team_start.  Pass 0 as second argument to
      	gomp_resolve_num_threads.
      	(GOMP_parallel_end): Decrease gomp_remaining_threads_count
      	if gomp_thread_limit_var != ULONG_MAX.
      	(omp_in_parallel): Implement using ts.active_level.
      	(omp_get_max_threads): Move to env.c.
      	(omp_get_level, omp_get_ancestor_thread_num,
      	omp_get_team_size, omp_get_active_level): New functions,
      	add ialias.
      	* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
      	after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
      	gomp_iter_dynamic_next instead of the _locked variant and don't take
      	lock around it, otherwise acquire it before calling
      	gomp_iter_dynamic_next_locked.
      	(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
      	gomp_iter_dynamic_next instead of the _locked variant and don't take
      	lock around it.
      	(GOMP_parallel_sections_start): Call gomp_new_team instead of
      	gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
      	Adjust gomp_team_start caller.  Pass count as second argument to
      	gomp_resolve_num_threads, don't adjust num_threads after the call.
      	Use gomp_icv.
      	* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
      	ws->chunk_size by incr.
      	(gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
      	code.
      	* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
      	types.
      	(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
      	(omp_check_defines): Check even the compat defines.
      	* config/linux/ptrlock.c: New file.
      	* config/linux/ptrlock.h: New file.
      	* config/linux/wait.h: New file.
      	* config/posix/ptrlock.c: New file.
      	* config/posix/ptrlock.h: New file.
      	* config/linux/bar.h (gomp_team_barrier_wait,
      	gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
      	(gomp_team_barrier_set_task_pending,
      	gomp_team_barrier_clear_task_pending,
      	gomp_team_barrier_set_waiting_for_tasks,
      	gomp_team_barrier_waiting_for_tasks,
      	gomp_team_barrier_done): New inlines.
      	(gomp_barrier_t): Rewritten.
      	(gomp_barrier_state_t): New typedef.
      	(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
      	gomp_barrier_wait_start): Rewritten.
      	(gomp_barrier_wait_end): Change second argument to
      	gomp_barrier_state_t.
      	(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
      	inlines.
      	* config/linux/bar.c: Include wait.h instead of libgomp.h and
      	futex.h.
      	(gomp_barrier_wait_end): Rewritten.
      	(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
      	gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
      	* config/posix/bar.h (gomp_barrier_t): Add generation field.
      	(gomp_barrier_state_t): New typedef.
      	(gomp_team_barrier_wait,
      	gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
      	(gomp_barrier_wait_start): Or all but low 2 bits from generation
      	into the return value.  Return gomp_barrier_state_t.
      	(gomp_team_barrier_set_task_pending,
      	gomp_team_barrier_clear_task_pending,
      	gomp_team_barrier_set_waiting_for_tasks,
      	gomp_team_barrier_waiting_for_tasks,
      	gomp_team_barrier_done): New inlines.
      	(gomp_barrier_wait_end): Change second argument to
      	gomp_barrier_state_t.
      	(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
      	inlines.
      	* config/posix/bar.c (gomp_barrier_init): Clear generation field.
      	(gomp_barrier_wait_end): Change second argument to
      	gomp_barrier_state_t. 
      	(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
      	gomp_team_barrier_wake): New functions.
      	* config/linux/mutex.c: Include wait.h instead of libgomp.h and
      	futex.h.
      	(gomp_futex_wake, gomp_futex_wait): New variables.
      	(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
      	* config/linux/lock.c: Rewrite to make locks task owned,
      	for backwards compatibility provide the old entrypoints
      	if symbol versioning.  Include wait.h instead of libgomp.h and
      	futex.h.
      	(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
      	* config/posix95/lock.c: Rewrite to make locks task owned,
      	for backwards compatibility provide the old entrypoints
      	if symbol versioning.
      	* config/posix/lock.c: Rewrite to make locks task owned,
      	for backwards compatibility provide the old entrypoints
      	if symbol versioning.
      	* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
      	(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
      	* config/posix/proc.c, config/mingw32/proc.c: Similarly.
      	* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/sem.c: Include wait.h instead of libgomp.h and
      	futex.h.
      	(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
      	* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
      	* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
      	types.
      	(omp_nest_lock_t): Change owner into void *, add lock field.
      	* config/posix95/omp-lock.h: Include semaphore.h.
      	(omp_lock_25_t, omp_nest_lock_25_t): New types.
      	(omp_lock_t): Use sem_t instead of mutex if semaphores
      	aren't broken.
      	(omp_nest_lock_t): Likewise.  Change owner to void *.
      	* config/posix/omp-lock.h: Include semaphore.h.
      	(omp_lock_25_t, omp_nest_lock_25_t): New types.
      	(omp_lock_t): Use sem_t instead of mutex if semaphores
      	aren't broken.
      	(omp_nest_lock_t): Likewise.  Add owner field.
      
      	* testsuite/libgomp.c/collapse-1.c: New test.
      	* testsuite/libgomp.c/collapse-2.c: New test.
      	* testsuite/libgomp.c/collapse-3.c: New test.
      	* testsuite/libgomp.c/icv-1.c: New test.
      	* testsuite/libgomp.c/icv-2.c: New test.
      	* testsuite/libgomp.c/lib-2.c: New test.
      	* testsuite/libgomp.c/lock-1.c: New test.
      	* testsuite/libgomp.c/lock-2.c: New test.
      	* testsuite/libgomp.c/lock-3.c: New test.
      	* testsuite/libgomp.c/loop-4.c: New test.
      	* testsuite/libgomp.c/loop-5.c: New test.
      	* testsuite/libgomp.c/loop-6.c: New test.
      	* testsuite/libgomp.c/loop-7.c: New test.
      	* testsuite/libgomp.c/loop-8.c: New test.
      	* testsuite/libgomp.c/loop-9.c: New test.
      	* testsuite/libgomp.c/nested-3.c: New test.
      	* testsuite/libgomp.c/nestedfn-6.c: New test.
      	* testsuite/libgomp.c/sort-1.c: New test.
      	* testsuite/libgomp.c/task-1.c: New test.
      	* testsuite/libgomp.c/task-2.c: New test.
      	* testsuite/libgomp.c/task-3.c: New test.
      	* testsuite/libgomp.c/task-4.c: New test.
      	* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
      	to C++ testsuite default compiler options.
      	* testsuite/libgomp.c++/collapse-1.C: New test.
      	* testsuite/libgomp.c++/collapse-2.C: New test.
      	* testsuite/libgomp.c++/ctor-10.C: New test.
      	* testsuite/libgomp.c++/for-1.C: New test.
      	* testsuite/libgomp.c++/for-2.C: New test.
      	* testsuite/libgomp.c++/for-3.C: New test.
      	* testsuite/libgomp.c++/for-4.C: New test.
      	* testsuite/libgomp.c++/for-5.C: New test.
      	* testsuite/libgomp.c++/loop-8.C: New test.
      	* testsuite/libgomp.c++/loop-9.C: New test.
      	* testsuite/libgomp.c++/loop-10.C: New test.
      	* testsuite/libgomp.c++/task-1.C: New test.
      	* testsuite/libgomp.c++/task-2.C: New test.
      	* testsuite/libgomp.c++/task-3.C: New test.
      	* testsuite/libgomp.c++/task-4.C: New test.
      	* testsuite/libgomp.c++/task-5.C: New test.
      	* testsuite/libgomp.c++/task-6.C: New test.
      	* testsuite/libgomp.fortran/allocatable1.f90: New test.
      	* testsuite/libgomp.fortran/allocatable2.f90: New test.
      	* testsuite/libgomp.fortran/allocatable3.f90: New test.
      	* testsuite/libgomp.fortran/allocatable4.f90: New test.
      	* testsuite/libgomp.fortran/collapse1.f90: New test.
      	* testsuite/libgomp.fortran/collapse2.f90: New test.
      	* testsuite/libgomp.fortran/collapse3.f90: New test.
      	* testsuite/libgomp.fortran/collapse4.f90: New test.
      	* testsuite/libgomp.fortran/lastprivate1.f90: New test.
      	* testsuite/libgomp.fortran/lastprivate2.f90: New test.
      	* testsuite/libgomp.fortran/lib4.f90: New test.
      	* testsuite/libgomp.fortran/lock-1.f90: New test.
      	* testsuite/libgomp.fortran/lock-2.f90: New test.
      	* testsuite/libgomp.fortran/nested1.f90: New test.
      	* testsuite/libgomp.fortran/nestedfn4.f90: New test.
      	* testsuite/libgomp.fortran/strassen.f90: New test.
      	* testsuite/libgomp.fortran/tabs1.f90: New test.
      	* testsuite/libgomp.fortran/tabs2.f: New test.
      	* testsuite/libgomp.fortran/task1.f90: New test.
      	* testsuite/libgomp.fortran/task2.f90: New test.
      	* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
      	* testsuite/libgomp.fortran/vla5.f90: Likewise.
      	* testsuite/libgomp.c/pr26943-2.c: Likewise.
      	* testsuite/libgomp.c/pr26943-3.c: Likewise.
      	* testsuite/libgomp.c/pr26943-4.c: Likewise.
      
      Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
      Co-Authored-By: Richard Henderson <rth@redhat.com>
      Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
      
      From-SVN: r136433
      Jakub Jelinek committed
  21. 10 Sep, 2007 1 commit
  22. 02 Jul, 2007 1 commit
  23. 04 May, 2007 1 commit
  24. 04 Apr, 2007 1 commit
    • libgomp.h (gomp_cpu_affinity, [...]): New extern decls. · a0884cf0
      	* libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
      	decls.
      	(gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
      	* env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
      	(parse_affinity): New function.
      	(initialize_env): Call it and gomp_init_affinity.
      	* team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
      	create new pthread_attr_t and call gomp_init_thread_affinity
      	on it for each thread before passing the attribute to pthread_create.
      	* config/linux/affinity.c: New file.
      	* config/posix/affinity.c: New file.
      	* configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
      	* configure: Rebuilt.
      	* config.h.in: Rebuilt.
      	* Makefile.am (libgomp_la_SOURCES): Add affinity.c.
      	* Makefile.in: Rebuilt.
      
      From-SVN: r123494
      Jakub Jelinek committed
  25. 24 Oct, 2006 1 commit
  26. 06 Jun, 2006 1 commit
  27. 25 Feb, 2006 1 commit
    • [multiple changes] · d349482e
      2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
      
      	* config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
      	* config/posix/sem.c: Implement the above.
      
      2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
      
      	* configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
      	define HAVE_BROKEN_POSIX_SEMAPHORES.
      	* configure: Rebuilt.
      	* config.h.in: Rebuilt.
      
      From-SVN: r111441
      Andreas Tobler committed
  28. 23 Jan, 2006 1 commit
  29. 18 Jan, 2006 1 commit
    • [multiple changes] · 953ff289
      2006-01-18  Richard Henderson  <rth@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* libgomp: New directory.
      	* Makefile.def: Add target_module libgomp.
      	* Makefile.in: Regenerate.
      	* configure.in (target_libraries): Add target-libgomp.
      	* configure: Regenerate.
      
      
      contrib/
      
      2006-01-18  Richard Henderson  <rth@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* gcc_update (files_and_dependencies): Add libgomp files.
      
      
      gcc/
      
      2006-01-18  Richard Henderson  <rth@redhat.com>
                  Aldy Hernandez  <aldyh@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* omp-low.c: New file.
      	* c-omp.c: New file.
      
      2006-01-18  Richard Henderson  <rth@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* doc/invoke.texi: Document -fopenmp.
      	* tree-dump.h (debug_function): Declare.
      
      	* hooks.c (hook_bool_tree_bool_false): New function.
      	(hook_tree_tree_null): Remove.
      	(hook_tree_tree_tree_null): New.
      	* hooks.h: Update to match.
      
      	* tree-pretty-print.c (debug_tree_chain): New.
      	(print_generic_expr): Handle TDF_CHAIN.
      	(dump_generic_node): Handle BLOCK.
      	Do not abort with incomplete SWITCH_EXPRs.
      	Do not dump body of an OpenMP directive if TDF_SLIM is given.
      	<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
      	print space after directive name.
      	<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
      	Handle OMP_MASTER and OMP_ORDERED.
      	Handle printing of OMP_BODY just in one place, goto
      	dump_omp_body in the rest of OMP_* nodes that have
      	OMP_BODY.
      	Don't handle clause nodes here.  Update omp statements to
      	use dump_omp_clauses.
      	Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
      	OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
      	OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
      	GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
      	GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
      	GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
      	Adjust output for GOMP_PARALLEL.
      	(dump_omp_clauses): New.
      	(print_declaration): Dump DECL_VALUE_EXPR.
      	(op_symbol_1): Split out of op_symbol.
      	(dumping_stmts): Remove.  Update all users.
      
      	* cgraph.c (cgraph_analyze_queue): New.
      	(cgraph_add_new_function): New.
      	* cgraph.h (cgraph_analyze_queue): Declare.
      	(cgraph_add_new_function): Declare.
      	(cgraph_lower_function): Remove.
      
      	* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
      	nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
      	and TYPE_P nodes in its default clause.
      	(empty_body_p): New.
      	(tree_range_check_failed): New.
      	(build5_stat): New.
      
      	* tree.h (OMP_CLAUSE_REDUCTION_INIT,
      	OMP_CLAUSE_REDUCTION_MERGE,
      	OMP_CLAUSE_REDUCTION_PLACEHOLDER,
      	OMP_CLAUSE_PRIVATE_DEBUG,
      	OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
      	OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
      	OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
      	OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
      	OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
      	OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
      	OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
      	OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
      	OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
      	OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
      	OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
      	OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
      	OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
      	OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
      	(TREE_RANGE_CHECK): New.
      	(empty_body_p): Declare.
      	(enum omp_clause_default_kind): New.
      	(build_string_literal): Declare.
      	(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
      	(build5_stat, build5): Declare.
      
      	* tree-pass.h (TDF_CHAIN): Define.
      	* tree-pass.h (PROP_gimple_lomp): Define.
      	(pass_lower_omp): Declare.
      
      	* diagnostic.h (debug_tree_chain): Declare.
      
      	* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
      	mode_for_size.
      	(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
      	* builtins.c (build_string_literal): Make extern.
      
      	* gcc.c (include_spec_function): New.
      	(static_spec_functions): Add it.
      	(main): Move load of libgomp.spec ...
      	(LINK_COMMAND_SPEC): ... here.
      	(link_gomp_spec): New.
      	(static_specs): Include it.
      	(LINK_COMMAND_SPEC): Add link_gomp.
      	(GOMP_SELF_SPECS): New.
      	(driver_self_specs): Include it.
      	(switch_matches): Don't mark inline.
      	(main): Load libgomp.spec.
      
      	* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
      	OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
      	and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
      
      	* tree-gimple.h (enum omp_parallel): Declare.
      	(determine_parallel_type): Declare.
      	(omp_firstprivatize_variable): Declare.
      	(omp_reduction_init): Declare.
      	(diagnose_omp_structured_block_errors): Declare.
      	(struct walk_stmt_info): Add want_return_expr.
      	(struct walk_stmt_info): Add want_bind_expr, want_locations.
      	(find_omp_clause): Declare.
      	(insert_field_into_struct): Declare.
      	(struct walk_stmt_info): Move from tree-nested.c
      	(walk_stmts): Declare.
      
      	* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
      	to 200505.
      
      	* cgraphunit.c (cgraph_lower_function): Make static.
      	(cgraph_finalize_pending_functions): New.
      	(cgraph_finalize_function): Call it.
      	(cgraph_finalize_compilation_unit): Likewise.
      
      	* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
      	BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
      	(BT_FN_UINT_UINT): New.
      	(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
      	DEF_FUNCTION_TYPE_VAR_4): Document.
      	(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
      	BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
      	BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
      	BT_FN_VOID_OMPFN_PTR_UINT_UINT,
      	BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
      	BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
      
      	* builtins.def: Update DEF_BUILTIN comment to include COND argument.
      	Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
      	into separate files.
      	(DEF_GOMP_BUILTIN): New.
      	(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
      	BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
      	BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
      	BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
      	BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
      	BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
      	BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
      	BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
      	BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
      	BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
      	BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
      	BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
      	BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
      	BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
      	* sync-builtins.def: New file, moved from builtins.def.
      	* omp-builtins.def: New file, moved from builtins.def.
      
      	* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
      
      	* gimple-low.c (lower_function_body): Clear data.
      	(lower_stmt): Do not handle COMPOUND_EXPR.
      	Remove call to print_node_brief.
      
      	* c-tree.h (c_finish_omp_clauses): New prototype.
      	(C_DECL_THREADPRIVATE_P): Define.
      	(lookup_name_no_remap, c_omp_remap_private): Remove
      	(c_begin_omp_parallel, c_finish_omp_parallel): Update.
      	(check_for_loop_decls): Update decl.
      	(lookup_name_no_remap, c_omp_remap_private): Declare.
      	(build_indirect_ref, build_modify_expr, pushdecl,
      	pushdecl_top_level): Move to c-common.h.
      
      	* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
      	before the switch, but just in the 2 places that need it.
      
      	* c-decl.c (diagnose_mismatched_decls): Do not check for
      	mismatched thread-local attributes when OLDDECL is marked
      	threadprivate and NEWDECL has no thread-local attributes.
      	(merge_decls): Merge C_DECL_THREADPRIVATE_P.
      	(c_gimple_diagnostics_recursively): Rename from
      	c_warn_unused_result_recursively.  Invoke
      	diagnose_omp_structured_block_errors.
      	(check_for_loop_decls): Return a singular decl found.
      
      	* langhooks.c (lhd_omp_predetermined_sharing): Return
      	OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
      	(lhd_omp_firstprivatize_type_sizes): New.
      	(lhd_omp_assignment): New.
      	(lhd_omp_predetermined_sharing): New.
      
      	* langhooks.h (struct gimplify_omp_ctx): Forward declare.
      	(struct lang_hooks_for_types): Add
      	omp_firstprivatize_type_sizes, omp_privatize_by_reference,
      	omp_predetermined_sharing, omp_disregard_value_expr,
      	omp_private_debug_clause, omp_clause_default_ctor,
      	omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
      
      	(c_finish_omp_clauses): New.
      	(c_finish_bc_stmt): Diagnose break within omp for.
      	(c_begin_omp_parallel, c_finish_omp_parallel): New.
      	(build_unary_op): Return error_mark after reporting
      	a readonly_error.
      	(build_modify_expr): Likewise.
      
      	* gimplify.c: Include optabs.h and pointer-set.h.
      	(enum gimplify_omp_var_data): Declare.
      	(struct gimplify_omp_ctx): Declare.
      	(struct gimplify_ctx): Add fields prev_context, combined_pre_p
      	and combined_ctxp.
      	(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
      	(push_gimplify_context, pop_gimplify_context): Allow nesting.
      	(splay_tree_compare_decl_uid): New.
      	(new_omp_context): New.
      	(delete_omp_context): New.
      	(gimple_add_tmp_var): Call omp_add_variable.
      	(gimplify_bind_expr): Likewise.
      	(gimplify_var_or_parm_decl): If omp_notice_variable returned
      	true, disregard DECL_VALUE_EXPR on the decl if any.
      	(gimplify_expr_in_ctx): New.
      	(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
      	omp_add_variable, omp_notice_variable, omp_is_private
      	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
      	gimplify_adjust_omp_clauses, gimplify_omp_parallel
      	gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
      	gimplify_omp_atomic_fetch_op, goa_stabilize_expr
      	gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
      	gimplify_omp_atomic): New.
      	(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
      	OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
      	OMP_CRITICAL and OMP_ATOMIC.
      	(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
      
      	* c-pragma.h (enum pragma_kind): Add
      	PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
      	PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
      	PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
      	PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
      	PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
      	PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
      	PRAGMA_OMP_THREADPRIVATE.
      
      	* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
      	OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
      	OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
      	OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
      	OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
      	OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
      	OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
      	OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
      	OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
      
      	* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
      
      	* tree-ssa-dce.c (find_control_dependence): Do not assume that
      	ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
      
      	* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
      	OpenMP directives.
      	(struct nesting_info): Add field_map,
      	suppress_expansion, debug_var_chain.
      	(create_nesting_tree): Initialize them.
      	(lookup_field_for_decl): Use field_map.
      	(get_nonlocal_debug_decl, get_local_debug_decl): New.
      	(convert_local_omp_clauses): New.
      	(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
      	(walk_body): Split out of walk_function.
      	(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
      	(convert_nonlocal_reference): Handle omp statements.
      	(convert_local_reference): Likewise.
      	(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
      	(unnest_nesting_tree): New.
      	(lower_nested_functions): Call it.
      	(insert_field_into_struct): Make extern.
      	(struct walk_stmt_info): Move to tree-gimple.h.
      	(walk_stmts): Make extern.
      
      	* omp-builtins.def: New file.
      
      	* tree-iterator.c (expr_only): Clarify comment.
      
      	* c-common.h (pushdecl_top_level, pushdecl,
      	build_modify_expr, build_indirect_ref,
      	c_finish_omp_master, c_finish_omp_critical,
      	c_finish_omp_ordered, c_finish_omp_barrier,
      	c_finish_omp_atomic, c_finish_omp_flush,
      	c_finish_omp_for, c_split_parallel_clauses,
      	omp_clause_default_kind, c_omp_sharing_predetermined,
      	c_omp_remap_decl): Declare.
      
      	* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
      	(OBJS-common): Add omp-low.o.
      	(c-omp.o, omp-low.o): Add.
      	(gimplify.o): Add dependency on $(OPTABS_H).
      	(GTFILES): Add omp-low.c.
      	(gt-stringpool.h): Add.
      
      	* tree-cfg.c (set_bb_for_stmt): Do not update the
      	block-to-labels map if we are currently expanding to RTL.
      	(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
      	checks.
      	Handle IDENTIFIER_NODE.
      	(tree_verify_flow_info): Do not ICE when emitting error
      	messages about invalid labels.
      	(dump_function_to_file): Reset CFUN before emitting the body
      	of the function.
      	(debug_function): New.
      
      	* passes.c (init_optimization_passes): Schedule
      	pass_lower_omp.
      
      	* langhooks-def.h (lhd_omp_predetermined_sharing,
      	lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
      	Declare.
      	(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
      	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
      	(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
      	LANG_HOOKS_OMP_PREDETERMINED_SHARING,
      	LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
      	LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
      	LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
      	LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
      	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
      	LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
      	(LANG_HOOK_DECLS): Use them.
      
      
      2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
      	    Richard Henderson  <rth@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* c-parser.c (pragma_omp_clause): Define.
      	(c_parser_declaration_or_fndef): Document OpenMP syntax.
      	(c_parser_compound_statement): Likewise.
      	(c_parser_statement): Likewise.
      	(c_parser_pragma): Handle omp pragmas.
      	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
      	OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
      	(c_parser_omp_clause_name, check_no_duplicate_clause,
      	c_parser_omp_variable_list,
      	c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
      	c_parser_omp_clause_copyprivate,
      	c_parser_omp_clause_default,
      	c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
      	c_parser_omp_clause_lastprivate,
      	c_parser_omp_clause_nowait,
      	c_parser_omp_clause_num_threads,
      	c_parser_omp_clause_ordered, c_parser_omp_clause_private,
      	c_parser_omp_clause_reduction,
      	c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
      	c_parser_omp_all_clauses, c_parser_omp_structured_block,
      	c_parser_omp_atomic, c_parser_omp_barrier,
      	c_parser_omp_critical, c_parser_omp_flush,
      	c_parser_omp_for_loop, c_parser_omp_for,
      	c_parser_omp_master, c_parser_omp_ordered,
      	c_parser_omp_sections_scope, c_parser_omp_sections,
      	c_parser_omp_parallel, c_parser_omp_single,
      	c_parser_omp_construct, c_parser_omp_threadprivate): New.
      	* c-pragma.c (init_pragma): Do omp pragma registration here.
      	* c.opt (fopenmp): New flag.
      
      
      2006-01-18  Eric Christopher  <echristo@apple.com>
      
      	* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
      	* config/darwin.h (GOMP_SELF_SPECS): Define.
      
      
      testsuite/
      
      2006-01-18  Richard Henderson  <rth@redhat.com>
                  Aldy Hernandez  <aldyh@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
                  Uros Bizjak  <uros@kss-loka.si>
      
      	* testsuite/gcc.dg/gomp: New directory.
      
      From-SVN: r109902
      Diego Novillo committed