if LOADED_LLVM
lib_LTLIBRARIES += libmono-llvm.la
-libmono_llvm_la_SOURCES = mini-llvm.c mini-llvm-cpp.cpp
+libmono_llvm_la_SOURCES = mini-llvm.c mini-llvm-cpp.cpp llvm-jit.cpp
libmono_llvm_la_LIBADD = $(GLIB_LIBS) $(LLVM_LIBS) $(LLVM_LDFLAGS)
if PLATFORM_DARWIN
libmono_llvm_la_LDFLAGS=-Wl,-undefined -Wl,suppress -Wl,-flat_namespace
mono_sgen_LDFLAGS = $(static_flags) -export-dynamic $(monobinldflags) $(monobin_platform_ldflags)
+if BITCODE
+libmonoldflags += -no-undefined
+endif
+
# if SUPPORT_SGEN
#
# mono_LDADD = $(mono_sgen_LDADD)
llvm_sources = \
mini-llvm.c \
mini-llvm-loaded.c \
- mini-llvm-cpp.cpp
+ mini-llvm-cpp.cpp \
+ llvm-jit.cpp
+endif
+endif
+
+if ENABLE_LLVM
+llvm_runtime_sources = \
+ llvm-runtime.cpp
+else
+if ENABLE_LLVM_RUNTIME
+llvm_runtime_sources = \
+ llvm-runtime.cpp
endif
endif
driver.c \
debug-mini.c \
linear-scan.c \
+ aot-compiler.h \
aot-compiler.c \
aot-runtime.c \
graph.c \
debugger-agent.h \
debugger-agent.c \
xdebug.c \
+ mini-llvm.h \
mini-llvm-cpp.h \
alias-analysis.c \
- mini-cross-helpers.c
+ mini-cross-helpers.c \
+ arch-stubs.c \
+ llvm-runtime.h
test_sources = \
basic-calls.cs \
basic.cs \
exceptions.cs \
devirtualization.cs \
- iltests.il.in \
+ iltests.il \
test.cs \
generics.cs \
generics-variant-types.il\
monobin_platform_ldflags=-framework CoreFoundation -framework Foundation
endif
-libmini_la_SOURCES = $(common_sources) $(llvm_sources) $(arch_sources) $(os_sources)
+libmini_la_SOURCES = $(common_sources) $(llvm_sources) $(llvm_runtime_sources) $(arch_sources) $(os_sources)
libmini_la_CFLAGS = $(mono_CFLAGS)
libmonoboehm_2_0_la_SOURCES =
%.exe: %.cs TestDriver.dll
$(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll
-iltests.il: iltests.il.in Makefile.am
- echo '// DO NOT EDIT: This file has been generated from iltests.il.in' > iltests.il
- cpp -Darch=$(arch_define) < $(srcdir)/iltests.il.in | sed 's/^#.*//' >> iltests.il
-
%.exe: %.il
$(ILASM) -output=$@ $<
rcheck2: mono $(regtests)
$(MINI_RUNTIME) --regression $(regtests)
+if ARM
+check-seq-points:
+else
check-seq-points: mono $(regtests)
- rm -f TestResults_op_il_seq_point.xml
+ rm -f TestResult-op_il_seq_point.xml
for i in $(regtests); do $(srcdir)/test_op_il_seq_point.sh $$i || ($(srcdir)/test_op_il_seq_point_headerfooter.sh; exit 1) || exit 1; done
for i in $(regtests); do $(srcdir)/test_op_il_seq_point.sh $$i --aot || ($(srcdir)/test_op_il_seq_point_headerfooter.sh; exit 1) || exit 1; done
$(srcdir)/test_op_il_seq_point_headerfooter.sh
+endif
gctest: mono gc-test.exe
MONO_DEBUG_OPTIONS=clear-nursery-at-gc $(MINI_RUNTIME) --regression gc-test.exe
fullaotcheck: mono $(fullaot_regtests)
rm -rf fullaot-tmp
mkdir fullaot-tmp
- $(MAKE) fullaot-libs AOT_FLAGS=full
+ $(MAKE) fullaot-libs AOT_FLAGS=full GSHAREDVT=$(GSHAREDVT)
cp $(regtests) $(fullaot_regtests) generics-variant-types.dll TestDriver.dll fullaot-tmp/
MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper $(LLVM_AOT_RUNTIME_OPTS) $(GSHAREDVT_RUNTIME_OPTS) --aot=full fullaot-tmp/{generics-variant-types.dll,TestDriver.dll,*.exe} || exit 1
ln -s $$PWD/mono fullaot-tmp/
fullaot-tmp/%.dylib: $(CLASS)/%
cp $(CLASS)/$* fullaot-tmp/
mkdir fullaot-tmp/$*-tmp
- MONO_PATH=fullaot-tmp/:$(CLASS) $(top_builddir)/runtime/mono-wrapper --aot=$(AOT_FLAGS),temp-path=fullaot-tmp/$*-tmp fullaot-tmp/$*
+ MONO_PATH=fullaot-tmp/:$(CLASS) $(top_builddir)/runtime/mono-wrapper $(if $(GSHAREDVT),-O=gsharedvt) --aot=$(AOT_FLAGS),temp-path=fullaot-tmp/$*-tmp fullaot-tmp/$*
rm -rf fullaot-tmp/$*-tmp
llvmfullaotcheck:
$(MAKE) fullaotcheck LLVM=1
+llvmonly_regtests = $(fullaot_regtests) gshared.exe
+
+llvmonlycheck: mono $(llvmonly_regtests)
+ rm -rf fullaot-tmp
+ mkdir fullaot-tmp
+ $(MAKE) fullaot-libs AOT_FLAGS=llvmonly
+ cp $(llvmonly_regtests) generics-variant-types.dll TestDriver.dll fullaot-tmp/
+ MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper --aot=llvmonly fullaot-tmp/{generics-variant-types.dll,TestDriver.dll,*.exe} || exit 1
+ ln -s $$PWD/mono fullaot-tmp/
+ for i in $(llvmonly_regtests); do echo $$i; MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper --llvmonly fullaot-tmp/$$i --exclude '!FULLAOT' --exclude '!BITCODE' $(ARCH_FULLAOT_EXCLUDE) || exit 1; done
+
gccheck: gc-test.exe
MONO_GC_PARAMS=stack-mark=precise MONO_GC_DEBUG=clear-at-gc ./mono-sgen gc-test.exe
check-local: rcheck check-seq-points
clean-local:
- rm -f mono a.out gmon.out *.o buildver-boehm.h buildver-sgen.h test.exe regressionexitcode.out TestResults_op_il_seq_point.xml*
+ rm -f mono a.out gmon.out *.o buildver-boehm.h buildver-sgen.h test.exe regressionexitcode.out TestResult-op_il_seq_point.xml*
pkgconfigdir = $(libdir)/pkgconfig