Skip to content

Commit

Permalink
Added Cilk runtime library (libcilkrts) into GCC.
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204173 138bc75d-0d04-0410-961f-82ee72b054a4
  • Loading branch information
bviyer committed Oct 29, 2013
1 parent d037099 commit 4710dd5
Show file tree
Hide file tree
Showing 112 changed files with 58,908 additions and 1 deletion.
9 changes: 9 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>

* Makefile.def: Add libcilkrts to target_modules. Make libcilkrts
depend on libstdc++ and libgcc.
* configure: Regenerate.
* configure.ac: Added libcilkrts to target binaries. Also, restrict
libcilkrts for POSIX and i*86, and x86_64 architectures.
* Makefile.in: Added libcilkrts related fields to support building it.

2013-10-26 Jeff Law <law@redhat.com>

* Makefile.def (target_modules): Remove libmudflap
Expand Down
5 changes: 5 additions & 0 deletions Makefile.def
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ target_modules = { module= libvtv;
bootstrap=true;
lib_path=.libs;
raw_cxx=true; };
target_modules = { module= libcilkrts;
lib_path=.libs; };
target_modules = { module= libssp; lib_path=.libs; };
target_modules = { module= newlib; };
target_modules = { module= libgcc; bootstrap=true; no_check=true; };
Expand Down Expand Up @@ -491,6 +493,7 @@ dependencies = { module=all-m4; on=all-build-texinfo; };
// on libgcc and newlib/libgloss.
lang_env_dependencies = { module=libjava; cxx=true; };
lang_env_dependencies = { module=libitm; cxx=true; };
lang_env_dependencies = { module=libcilkrts; cxx=true; };
lang_env_dependencies = { module=newlib; no_c=true; };
lang_env_dependencies = { module=libgloss; no_c=true; };
lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; };
Expand Down Expand Up @@ -531,6 +534,8 @@ dependencies = { module=install-target-libsanitizer; on=install-target-libstdc++
dependencies = { module=install-target-libsanitizer; on=install-target-libgcc; };
dependencies = { module=install-target-libvtv; on=install-target-libstdc++-v3; };
dependencies = { module=install-target-libvtv; on=install-target-libgcc; };
dependencies = { module=install-target-libcilkrts; on=install-target-libstdc++-v3; };
dependencies = { module=install-target-libcilkrts; on=install-target-libgcc; };
dependencies = { module=install-target-libjava; on=install-target-libgcc; };
dependencies = { module=install-target-libitm; on=install-target-libgcc; };
dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
Expand Down
1,000 changes: 999 additions & 1 deletion Makefile.in

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -2772,6 +2772,7 @@ target_libraries="target-libgcc \
target-libgloss \
target-newlib \
target-libgomp \
target-libcilkrts \
target-libatomic \
target-libitm \
target-libstdc++-v3 \
Expand Down Expand Up @@ -3164,6 +3165,25 @@ $as_echo "yes" >&6; }
fi
fi

# Disable libcilkrts on unsupported systems.
if test -d ${srcdir}/libcilkrts; then
if test x$enable_libcilkrts = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcilkrts support" >&5
$as_echo_n "checking for libcilkrts support... " >&6; }
if (srcdir=${srcdir}/libcilkrts; \
. ${srcdir}/configure.tgt; \
test -n "$UNSUPPORTED")
then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
noconfigdirs="$noconfigdirs target-libcilkrts"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
fi
fi

# Disable libitm on unsupported systems.
if test -d ${srcdir}/libitm; then
if test x$enable_libitm = x; then
Expand Down
17 changes: 17 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ target_libraries="target-libgcc \
target-libgloss \
target-newlib \
target-libgomp \
target-libcilkrts \
target-libatomic \
target-libitm \
target-libstdc++-v3 \
Expand Down Expand Up @@ -506,6 +507,22 @@ if test -d ${srcdir}/libatomic; then
fi
fi

# Disable libcilkrts on unsupported systems.
if test -d ${srcdir}/libcilkrts; then
if test x$enable_libcilkrts = x; then
AC_MSG_CHECKING([for libcilkrts support])
if (srcdir=${srcdir}/libcilkrts; \
. ${srcdir}/configure.tgt; \
test -n "$UNSUPPORTED")
then
AC_MSG_RESULT([no])
noconfigdirs="$noconfigdirs target-libcilkrts"
else
AC_MSG_RESULT([yes])
fi
fi
fi

# Disable libitm on unsupported systems.
if test -d ${srcdir}/libitm; then
if test x$enable_libitm = x; then
Expand Down
105 changes: 105 additions & 0 deletions libcilkrts/ChangeLog
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
2013-10-23 Balaji V. Iyer <balaji.v.iyer@intel.com>

* libcilkrts/Makefile.am: New file. Libcilkrts version 3902.
* libcilkrts/Makefile.in: Likewise
* libcilkrts/README: Likewise
* libcilkrts/aclocal.m4: Likewise
* libcilkrts/configure: Likewise
* libcilkrts/configure.ac: Likewise
* libcilkrts/include/cilk/cilk.h: Likewise
* libcilkrts/include/cilk/cilk_api.h: Likewise
* libcilkrts/include/cilk/cilk_api_linux.h: Likewise
* libcilkrts/include/cilk/cilk_stub.h: Likewise
* libcilkrts/include/cilk/cilk_undocumented.h: Likewise
* libcilkrts/include/cilk/common.h: Likewise
* libcilkrts/include/cilk/holder.h: Likewise
* libcilkrts/include/cilk/hyperobject_base.h: Likewise
* libcilkrts/include/cilk/metaprogramming.h: Likewise
* libcilkrts/include/cilk/reducer.h: Likewise
* libcilkrts/include/cilk/reducer_file.h: Likewise
* libcilkrts/include/cilk/reducer_list.h: Likewise
* libcilkrts/include/cilk/reducer_max.h: Likewise
* libcilkrts/include/cilk/reducer_min.h: Likewise
* libcilkrts/include/cilk/reducer_min_max.h: Likewise
* libcilkrts/include/cilk/reducer_opadd.h: Likewise
* libcilkrts/include/cilk/reducer_opand.h: Likewise
* libcilkrts/include/cilk/reducer_opmul.h: Likewise
* libcilkrts/include/cilk/reducer_opor.h: Likewise
* libcilkrts/include/cilk/reducer_opxor.h: Likewise
* libcilkrts/include/cilk/reducer_ostream.h: Likewise
* libcilkrts/include/cilk/reducer_string.h: Likewise
* libcilkrts/include/cilktools/cilkscreen.h: Likewise
* libcilkrts/include/cilktools/cilkview.h: Likewise
* libcilkrts/include/cilktools/fake_mutex.h: Likewise
* libcilkrts/include/cilktools/lock_guard.h: Likewise
* libcilkrts/include/internal/abi.h: Likewise
* libcilkrts/include/internal/cilk_fake.h: Likewise
* libcilkrts/include/internal/cilk_version.h: Likewise
* libcilkrts/include/internal/inspector-abi.h: Likewise
* libcilkrts/include/internal/metacall.h: Likewise
* libcilkrts/include/internal/rev.mk: Likewise
* libcilkrts/mk/cilk-version.mk: Likewise
* libcilkrts/mk/unix-common.mk: Likewise
* libcilkrts/runtime/acknowledgements.dox: Likewise
* libcilkrts/runtime/bug.cpp: Likewise
* libcilkrts/runtime/bug.h: Likewise
* libcilkrts/runtime/c_reducers.c: Likewise
* libcilkrts/runtime/cilk-abi-cilk-for.cpp: Likewise
* libcilkrts/runtime/cilk-abi-vla-internal.c: Likewise
* libcilkrts/runtime/cilk-abi-vla-internal.h: Likewise
* libcilkrts/runtime/cilk-abi-vla.c: Likewise
* libcilkrts/runtime/cilk-abi.c: Likewise
* libcilkrts/runtime/cilk-ittnotify.h: Likewise
* libcilkrts/runtime/cilk-tbb-interop.h: Likewise
* libcilkrts/runtime/cilk_api.c: Likewise
* libcilkrts/runtime/cilk_fiber-unix.cpp: Likewise
* libcilkrts/runtime/cilk_fiber-unix.h: Likewise
* libcilkrts/runtime/cilk_fiber.cpp: Likewise
* libcilkrts/runtime/cilk_fiber.h: Likewise
* libcilkrts/runtime/cilk_malloc.c: Likewise
* libcilkrts/runtime/cilk_malloc.h: Likewise
* libcilkrts/runtime/component.h: Likewise
* libcilkrts/runtime/doxygen-layout.xml: Likewise
* libcilkrts/runtime/doxygen.cfg: Likewise
* libcilkrts/runtime/except-gcc.cpp: Likewise
* libcilkrts/runtime/except-gcc.h: Likewise
* libcilkrts/runtime/except.h: Likewise
* libcilkrts/runtime/frame_malloc.c: Likewise
* libcilkrts/runtime/frame_malloc.h: Likewise
* libcilkrts/runtime/full_frame.c: Likewise
* libcilkrts/runtime/full_frame.h: Likewise
* libcilkrts/runtime/global_state.cpp: Likewise
* libcilkrts/runtime/global_state.h: Likewise
* libcilkrts/runtime/jmpbuf.c: Likewise
* libcilkrts/runtime/jmpbuf.h: Likewise
* libcilkrts/runtime/local_state.c: Likewise
* libcilkrts/runtime/local_state.h: Likewise
* libcilkrts/runtime/metacall_impl.c: Likewise
* libcilkrts/runtime/metacall_impl.h: Likewise
* libcilkrts/runtime/os-unix.c: Likewise
* libcilkrts/runtime/os.h: Likewise
* libcilkrts/runtime/os_mutex-unix.c: Likewise
* libcilkrts/runtime/os_mutex.h: Likewise
* libcilkrts/runtime/pedigrees.c: Likewise
* libcilkrts/runtime/pedigrees.h: Likewise
* libcilkrts/runtime/record-replay.cpp: Likewise
* libcilkrts/runtime/record-replay.h: Likewise
* libcilkrts/runtime/reducer_impl.cpp: Likewise
* libcilkrts/runtime/reducer_impl.h: Likewise
* libcilkrts/runtime/rts-common.h: Likewise
* libcilkrts/runtime/scheduler.c: Likewise
* libcilkrts/runtime/scheduler.h: Likewise
* libcilkrts/runtime/signal_node.c: Likewise
* libcilkrts/runtime/signal_node.h: Likewise
* libcilkrts/runtime/spin_mutex.c: Likewise
* libcilkrts/runtime/spin_mutex.h: Likewise
* libcilkrts/runtime/stacks.h: Likewise
* libcilkrts/runtime/stats.c: Likewise
* libcilkrts/runtime/stats.h: Likewise
* libcilkrts/runtime/symbol_test.c: Likewise
* libcilkrts/runtime/sysdep-unix.c: Likewise
* libcilkrts/runtime/sysdep.h: Likewise
* libcilkrts/runtime/unix_symbols.t: Likewise
* libcilkrts/runtime/worker_mutex.c: Likewise
* libcilkrts/runtime/worker_mutex.h: Likewise

173 changes: 173 additions & 0 deletions libcilkrts/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# @copyright
# Copyright (C) 2011, 2013, Intel Corporation
# All rights reserved.
#
# @copyright
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Intel Corporation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# @copyright
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

AUTOMAKE_OPTIONS = foreign

# Use when building GCC
ACLOCAL_AMFLAGS = -I .. -I ../config

# Compiler and linker flags.
GENERAL_FLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/runtime -I$(top_srcdir)/runtime/config/$(config_dir) -DIN_CILK_RUNTIME=1
GENERAL_FLAGS += -D_Cilk_spawn="" -D_Cilk_sync="" -D_Cilk_for=for

# Enable Intel Cilk Plus extension
GENERAL_FLAGS += -fcilkplus

AM_CFLAGS = $(GENERAL_FLAGS) -std=c99
AM_CPPFLAGS = $(GENERAL_FLAGS)
AM_LDFLAGS = -lpthread -ldl

# Target list.
toolexeclib_LTLIBRARIES = libcilkrts.la

libcilkrts_la_SOURCES = \
runtime/config/$(config_dir)/cilk-abi-vla.c \
runtime/config/$(config_dir)/os-unix-sysdep.c \
runtime/bug.cpp \
runtime/cilk-abi.c \
runtime/cilk-abi-cilk-for.cpp \
runtime/cilk-abi-vla-internal.c \
runtime/cilk_api.c \
runtime/cilk_fiber.cpp \
runtime/cilk_fiber-unix.cpp \
runtime/cilk_malloc.c \
runtime/c_reducers.c \
runtime/except-gcc.cpp \
runtime/frame_malloc.c \
runtime/full_frame.c \
runtime/global_state.cpp \
runtime/jmpbuf.c \
runtime/local_state.c \
runtime/metacall_impl.c \
runtime/os_mutex-unix.c \
runtime/os-unix.c \
runtime/pedigrees.c \
runtime/record-replay.cpp \
runtime/reducer_impl.cpp \
runtime/scheduler.c \
runtime/signal_node.c \
runtime/spin_mutex.c \
runtime/stats.c \
runtime/symbol_test.c \
runtime/sysdep-unix.c \
runtime/worker_mutex.c


# Load the $(REVISION) value.
include include/internal/rev.mk

#libcilkrts_la_LDFLAGS = -rpath '$(libdir)'
libcilkrts_la_LDFLAGS = -version-info 5:0:0
libcilkrts_la_LDFLAGS += -lpthread -ldl

# If we're building on Linux, use the Linux version script
if LINUX_LINKER_SCRIPT
libcilkrts_la_LDFLAGS += -Wl,--version-script,$(srcdir)/runtime/linux-symbols.ver
endif

# If we're building on MacOS, use the Mac versioning
if MAC_LINKER_SCRIPT
libcilkrts_la_LDFLAGS += -Wl,-exported_symbols_list,$(srcdir)/runtime/mac-symbols.txt
endif


# Hack for Cygwin
libcilkrts_la_LDFLAGS += -no-undefined

# C/C++ header files for Cilk.
cilkincludedir = $(includedir)/cilk
cilkinclude_HEADERS = \
include/cilk/cilk_api.h \
include/cilk/cilk_api_linux.h \
include/cilk/cilk.h \
include/cilk/cilk_stub.h \
include/cilk/cilk_undocumented.h \
include/cilk/common.h \
include/cilk/holder.h \
include/cilk/hyperobject_base.h \
include/cilk/metaprogramming.h \
include/cilk/reducer_file.h \
include/cilk/reducer.h \
include/cilk/reducer_list.h \
include/cilk/reducer_max.h \
include/cilk/reducer_min.h \
include/cilk/reducer_min_max.h \
include/cilk/reducer_opadd.h \
include/cilk/reducer_opand.h \
include/cilk/reducer_opmul.h \
include/cilk/reducer_opor.h \
include/cilk/reducer_opxor.h \
include/cilk/reducer_ostream.h \
include/cilk/reducer_string.h


# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
# friends when we are called from the top level Makefile.
AM_MAKEFLAGS = \
"AR_FLAGS=$(AR_FLAGS)" \
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
"CFLAGS=$(CFLAGS)" \
"CXXFLAGS=$(CXXFLAGS)" \
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
"JC1FLAGS=$(JC1FLAGS)" \
"LDFLAGS=$(LDFLAGS)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
"MAKE=$(MAKE)" \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
"PICFLAG=$(PICFLAG)" \
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
"SHELL=$(SHELL)" \
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
"exec_prefix=$(exec_prefix)" \
"infodir=$(infodir)" \
"libdir=$(libdir)" \
"prefix=$(prefix)" \
"includedir=$(includedir)" \
"AR=$(AR)" \
"AS=$(AS)" \
"LD=$(LD)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"NM=$(NM)" \
"PICFLAG=$(PICFLAG)" \
"RANLIB=$(RANLIB)" \
"DESTDIR=$(DESTDIR)"

MAKEOVERRIDES=

Loading

0 comments on commit 4710dd5

Please sign in to comment.