diff options
author | Mike Emmel <mike.emmel@gmail.com> | 2006-01-16 23:50:44 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2006-01-16 23:50:44 +0000 |
commit | e068c1c73ac89e6384f310a89a317ccc028c5b85 (patch) | |
tree | cfdd8be8315ad4547bfcb4cf5ee0b77b054e20e3 | |
parent | 181ef064a4e0df1b23c7b2556c35ac59cb910b03 (diff) |
2006-01-16 Mike Emmel <mike.emmel@gmail.com>
* Makefile.in: Rebuilt.
* Makefile.am (gcjx_LDADD): Handle LLVM.
(libgcjx_la_SOURCES): Likewise.
(llvm_cppflags, LLVMLIBPATH, llvm_libs, llvm_sources): New
variables.
* main.cc: Include llvmgen.hh.
(parse_args): Handle '-o llvm'.
* configure, gcjx-config.h.in: Rebuilt.
* configure.ac (--with-llvm): New option.
(--enable-llvmdebug): Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcjx-branch@109777 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcjx/Makefile.am | 32 | ||||
-rw-r--r-- | gcjx/Makefile.in | 120 | ||||
-rwxr-xr-x | gcjx/configure | 60 | ||||
-rw-r--r-- | gcjx/configure.ac | 24 | ||||
-rw-r--r-- | gcjx/gcjx-config.h.in | 3 | ||||
-rw-r--r-- | gcjx/main.cc | 8 |
6 files changed, 235 insertions, 12 deletions
diff --git a/gcjx/Makefile.am b/gcjx/Makefile.am index c6ee8514a67..1fa67cef3b2 100644 --- a/gcjx/Makefile.am +++ b/gcjx/Makefile.am @@ -10,11 +10,19 @@ AUTOMAKE_OPTIONS = subdir-objects foreign gcjx_SOURCES = main.cc gcjx_LDADD = libgcjx.la -lpthread +if ENABLE_LLVM +gcjx_LDADD += $(llvm_libs) +endif + libgcjx_la_SOURCES = $(dot_sources) $(model_sources) $(reader_sources) \ $(source_sources) $(format_sources) $(bytecode_sources) \ $(header_sources) $(fdlibm_c_sources) $(fdlibm_cc_sources) \ $(aot_sources) +if ENABLE_LLVM +libgcjx_la_SOURCES += $(llvm_sources) +endif + BUILT_SOURCES = source/keyword.h source/chartables.h typedefs.hh.gch EXTRA_DIST = source/keyword.gperf source/gen-table.pl @@ -137,3 +145,27 @@ fdlibm/w_sqrt.c fdlibm_cc_sources = fdlibm/classpath.cc aot_sources = aot/aotclass.cc aot/aotfactory.cc aot/mangle.cc + +llvm_cppflags=-I$(LLVMBASELIBPATH)/include -D__STDC_LIMIT_MACROS +LLVMLIBPATH = $(LLVMBASELIBPATH)/$(LLVM_BUILDMODE)/lib + + +llvm_libs = -L$(LLVMLIBPATH) \ + $(LLVMLIBPATH)/LLVMCBackend.o \ + $(LLVMLIBPATH)/LLVMBCReader.o \ + $(LLVMLIBPATH)/LLVMBCWriter.o \ + $(LLVMLIBPATH)/LLVMbzip2.o \ + -lLLVMipa \ + -lLLVMTransforms \ + -lLLVMScalarOpts \ + -lLLVMTransformUtils \ + -lLLVMAnalysis \ + $(LLVMLIBPATH)/LLVMSelectionDAG.o \ + $(LLVMLIBPATH)/LLVMCodeGen.o \ + -lLLVMTarget \ + $(LLVMLIBPATH)/LLVMCore.o \ + -lLLVMSupport \ + -lLLVMSystem \ + -ldl + +llvm_sources = llvm/llvmgen.cc diff --git a/gcjx/Makefile.in b/gcjx/Makefile.in index 42858b29878..fffc84cd036 100644 --- a/gcjx/Makefile.in +++ b/gcjx/Makefile.in @@ -42,6 +42,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = gcjx$(EXEEXT) +@ENABLE_LLVM_TRUE@am__append_1 = $(llvm_libs) +@ENABLE_LLVM_TRUE@am__append_2 = $(llvm_sources) DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \ $(srcdir)/../config.guess $(srcdir)/../config.sub \ $(srcdir)/../depcomp $(srcdir)/../install-sh \ @@ -70,6 +72,59 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libgcjx_la_LIBADD = +am__libgcjx_la_SOURCES_DIST = access.cc classcache.cc compiler.cc \ + conversions.cc defassign.cc directory.cc dump.cc factory.cc \ + fold.cc init.cc location.cc name.cc owner.cc scope.cc unify.cc \ + util.cc warnings.cc model/annotation.cc model/annomember.cc \ + model/annotype.cc model/annovalue.cc model/arrayinit.cc \ + model/arrayref.cc model/arraytype.cc model/assert.cc \ + model/assign.cc model/binary.cc model/block.cc \ + model/blockscope.cc model/break.cc model/bytecode.cc \ + model/cast.cc model/catch.cc model/class.cc model/classinst.cc \ + model/classref.cc model/cond.cc model/constructor.cc \ + model/continue.cc model/declstmt.cc model/do.cc model/empty.cc \ + model/enum.cc model/enumconst.cc model/expr.cc \ + model/exprstmt.cc model/field.cc model/fieldinit.cc \ + model/fieldref.cc model/for.cc model/forenhanced.cc \ + model/fwdtype.cc model/iannotatable.cc model/identifier.cc \ + model/if.cc model/import.cc model/imodifiable.cc model/init.cc \ + model/instanceof.cc model/intersect.cc model/invoke.cc \ + model/javadoc.cc model/label.cc model/literal.cc \ + model/memberref.cc model/method.cc model/modifier.cc \ + model/newarray.cc model/new.cc model/null.cc model/package.cc \ + model/parameters.cc model/primitive.cc model/raw.cc \ + model/return.cc model/stmt.cc model/switch.cc \ + model/synchronized.cc model/this.cc model/throw.cc \ + model/throwsclause.cc model/try.cc model/type.cc \ + model/typemap.cc model/typevar.cc model/unary.cc model/unit.cc \ + model/value.cc model/variable.cc model/varref.cc \ + model/varstmt.cc model/void.cc model/while.cc \ + model/wildcard.cc reader/classbytes.cc reader/fdreader.cc \ + reader/zereader.cc reader/zebuffer.cc reader/mmapbuffer.cc \ + reader/readbuffer.cc reader/source.cc source/iconv.cc \ + source/lex.cc source/parse.cc source/tstream.cc source/ucs2.cc \ + format/format.cc bytecode/attribute.cc bytecode/block.cc \ + bytecode/bridge.cc bytecode/bytegen.cc bytecode/classreader.cc \ + bytecode/classwriter.cc bytecode/cpool.cc bytecode/generate.cc \ + bytecode/glue.cc bytecode/locals.cc bytecode/outpool.cc \ + bytecode/outstream.cc bytecode/poolreader.cc \ + bytecode/relocation.cc bytecode/signature.cc \ + bytecode/verify.cc header/cni.cc header/jni.cc \ + header/jnistub.cc fdlibm/dtoa.c fdlibm/e_acos.c \ + fdlibm/e_asin.c fdlibm/e_atan2.c fdlibm/e_exp.c \ + fdlibm/e_fmod.c fdlibm/e_log.c fdlibm/e_pow.c \ + fdlibm/e_remainder.c fdlibm/e_rem_pio2.c fdlibm/e_scalb.c \ + fdlibm/e_sqrt.c fdlibm/k_cos.c fdlibm/k_rem_pio2.c \ + fdlibm/k_sin.c fdlibm/k_tan.c fdlibm/mprec.c fdlibm/s_atan.c \ + fdlibm/s_ceil.c fdlibm/s_copysign.c fdlibm/s_cos.c \ + fdlibm/s_fabs.c fdlibm/sf_fabs.c fdlibm/s_floor.c \ + fdlibm/sf_rint.c fdlibm/s_rint.c fdlibm/s_scalbn.c \ + fdlibm/s_sin.c fdlibm/s_tan.c fdlibm/strtod.c fdlibm/w_acos.c \ + fdlibm/w_asin.c fdlibm/w_atan2.c fdlibm/w_exp.c \ + fdlibm/w_fmod.c fdlibm/w_log.c fdlibm/w_pow.c \ + fdlibm/w_remainder.c fdlibm/w_sqrt.c fdlibm/classpath.cc \ + aot/aotclass.cc aot/aotfactory.cc aot/mangle.cc \ + llvm/llvmgen.cc am__objects_1 = access.lo classcache.lo compiler.lo conversions.lo \ defassign.lo directory.lo dump.lo factory.lo fold.lo init.lo \ location.lo name.lo owner.lo scope.lo unify.lo util.lo \ @@ -129,16 +184,23 @@ am__objects_8 = fdlibm/dtoa.lo fdlibm/e_acos.lo fdlibm/e_asin.lo \ fdlibm/w_pow.lo fdlibm/w_remainder.lo fdlibm/w_sqrt.lo am__objects_9 = fdlibm/classpath.lo am__objects_10 = aot/aotclass.lo aot/aotfactory.lo aot/mangle.lo +am__objects_11 = llvm/llvmgen.lo +@ENABLE_LLVM_TRUE@am__objects_12 = $(am__objects_11) am_libgcjx_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) $(am__objects_5) \ $(am__objects_6) $(am__objects_7) $(am__objects_8) \ - $(am__objects_9) $(am__objects_10) + $(am__objects_9) $(am__objects_10) $(am__objects_12) libgcjx_la_OBJECTS = $(am_libgcjx_la_OBJECTS) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_gcjx_OBJECTS = main.$(OBJEXT) gcjx_OBJECTS = $(am_gcjx_OBJECTS) -gcjx_DEPENDENCIES = libgcjx.la +am__DEPENDENCIES_1 = $(LLVMLIBPATH)/LLVMCBackend.o \ + $(LLVMLIBPATH)/LLVMBCReader.o $(LLVMLIBPATH)/LLVMBCWriter.o \ + $(LLVMLIBPATH)/LLVMbzip2.o $(LLVMLIBPATH)/LLVMSelectionDAG.o \ + $(LLVMLIBPATH)/LLVMCodeGen.o $(LLVMLIBPATH)/LLVMCore.o +@ENABLE_LLVM_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) +gcjx_DEPENDENCIES = libgcjx.la $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I. -I$(srcdir) -I. depcomp = $(SHELL) $(top_srcdir)/../depcomp am__depfiles_maybe = depfiles @@ -159,7 +221,7 @@ CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgcjx_la_SOURCES) $(gcjx_SOURCES) -DIST_SOURCES = $(libgcjx_la_SOURCES) $(gcjx_SOURCES) +DIST_SOURCES = $(am__libgcjx_la_SOURCES_DIST) $(gcjx_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -181,6 +243,7 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ +BUILDMODE = @BUILDMODE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -195,6 +258,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +ENABLE_LLVM_FALSE = @ENABLE_LLVM_FALSE@ +ENABLE_LLVM_TRUE = @ENABLE_LLVM_TRUE@ EXEEXT = @EXEEXT@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -204,6 +269,8 @@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LLVMBASELIBPATH = @LLVMBASELIBPATH@ +LLVM_BUILDMODE = @LLVM_BUILDMODE@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ @@ -269,12 +336,11 @@ AUTOMAKE_OPTIONS = subdir-objects foreign ################################################################ gcjx_SOURCES = main.cc -gcjx_LDADD = libgcjx.la -lpthread +gcjx_LDADD = libgcjx.la -lpthread $(am__append_1) libgcjx_la_SOURCES = $(dot_sources) $(model_sources) $(reader_sources) \ -$(source_sources) $(format_sources) $(bytecode_sources) \ -$(header_sources) $(fdlibm_c_sources) $(fdlibm_cc_sources) \ -$(aot_sources) - + $(source_sources) $(format_sources) $(bytecode_sources) \ + $(header_sources) $(fdlibm_c_sources) $(fdlibm_cc_sources) \ + $(aot_sources) $(am__append_2) BUILT_SOURCES = source/keyword.h source/chartables.h typedefs.hh.gch EXTRA_DIST = source/keyword.gperf source/gen-table.pl WARNINGS = -Wall -Winvalid-pch -Wreturn-type @@ -376,6 +442,27 @@ fdlibm/w_sqrt.c fdlibm_cc_sources = fdlibm/classpath.cc aot_sources = aot/aotclass.cc aot/aotfactory.cc aot/mangle.cc +llvm_cppflags = -I$(LLVMBASELIBPATH)/include -D__STDC_LIMIT_MACROS +LLVMLIBPATH = $(LLVMBASELIBPATH)/$(LLVM_BUILDMODE)/lib +llvm_libs = -L$(LLVMLIBPATH) \ + $(LLVMLIBPATH)/LLVMCBackend.o \ + $(LLVMLIBPATH)/LLVMBCReader.o \ + $(LLVMLIBPATH)/LLVMBCWriter.o \ + $(LLVMLIBPATH)/LLVMbzip2.o \ + -lLLVMipa \ + -lLLVMTransforms \ + -lLLVMScalarOpts \ + -lLLVMTransformUtils \ + -lLLVMAnalysis \ + $(LLVMLIBPATH)/LLVMSelectionDAG.o \ + $(LLVMLIBPATH)/LLVMCodeGen.o \ + -lLLVMTarget \ + $(LLVMLIBPATH)/LLVMCore.o \ + -lLLVMSupport \ + -lLLVMSystem \ + -ldl + +llvm_sources = llvm/llvmgen.cc all: $(BUILT_SOURCES) gcjx-config.h $(MAKE) $(AM_MAKEFLAGS) all-am @@ -767,6 +854,13 @@ aot/$(DEPDIR)/$(am__dirstamp): aot/aotclass.lo: aot/$(am__dirstamp) aot/$(DEPDIR)/$(am__dirstamp) aot/aotfactory.lo: aot/$(am__dirstamp) aot/$(DEPDIR)/$(am__dirstamp) aot/mangle.lo: aot/$(am__dirstamp) aot/$(DEPDIR)/$(am__dirstamp) +llvm/$(am__dirstamp): + @$(mkdir_p) llvm + @: > llvm/$(am__dirstamp) +llvm/$(DEPDIR)/$(am__dirstamp): + @$(mkdir_p) llvm/$(DEPDIR) + @: > llvm/$(DEPDIR)/$(am__dirstamp) +llvm/llvmgen.lo: llvm/$(am__dirstamp) llvm/$(DEPDIR)/$(am__dirstamp) libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libgcjx_la_LDFLAGS) $(libgcjx_la_OBJECTS) $(libgcjx_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @@ -929,6 +1023,8 @@ mostlyclean-compile: -rm -f header/jni.lo -rm -f header/jnistub.$(OBJEXT) -rm -f header/jnistub.lo + -rm -f llvm/llvmgen.$(OBJEXT) + -rm -f llvm/llvmgen.lo -rm -f model/annomember.$(OBJEXT) -rm -f model/annomember.lo -rm -f model/annotation.$(OBJEXT) @@ -1192,6 +1288,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@header/$(DEPDIR)/cni.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@header/$(DEPDIR)/jni.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@header/$(DEPDIR)/jnistub.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@llvm/$(DEPDIR)/llvmgen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@model/$(DEPDIR)/annomember.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@model/$(DEPDIR)/annotation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@model/$(DEPDIR)/annotype.Plo@am__quote@ @@ -1340,6 +1437,7 @@ clean-libtool: -rm -rf fdlibm/.libs fdlibm/_libs -rm -rf format/.libs format/_libs -rm -rf header/.libs header/_libs + -rm -rf llvm/.libs llvm/_libs -rm -rf model/.libs model/_libs -rm -rf reader/.libs reader/_libs -rm -rf source/.libs source/_libs @@ -1564,6 +1662,8 @@ distclean-generic: -rm -f format/$(am__dirstamp) -rm -f header/$(DEPDIR)/$(am__dirstamp) -rm -f header/$(am__dirstamp) + -rm -f llvm/$(DEPDIR)/$(am__dirstamp) + -rm -f llvm/$(am__dirstamp) -rm -f model/$(DEPDIR)/$(am__dirstamp) -rm -f model/$(am__dirstamp) -rm -f reader/$(DEPDIR)/$(am__dirstamp) @@ -1582,7 +1682,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./$(DEPDIR) aot/$(DEPDIR) bytecode/$(DEPDIR) fdlibm/$(DEPDIR) format/$(DEPDIR) header/$(DEPDIR) model/$(DEPDIR) reader/$(DEPDIR) source/$(DEPDIR) + -rm -rf ./$(DEPDIR) aot/$(DEPDIR) bytecode/$(DEPDIR) fdlibm/$(DEPDIR) format/$(DEPDIR) header/$(DEPDIR) llvm/$(DEPDIR) model/$(DEPDIR) reader/$(DEPDIR) source/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags @@ -1610,7 +1710,7 @@ installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf ./$(DEPDIR) aot/$(DEPDIR) bytecode/$(DEPDIR) fdlibm/$(DEPDIR) format/$(DEPDIR) header/$(DEPDIR) model/$(DEPDIR) reader/$(DEPDIR) source/$(DEPDIR) + -rm -rf ./$(DEPDIR) aot/$(DEPDIR) bytecode/$(DEPDIR) fdlibm/$(DEPDIR) format/$(DEPDIR) header/$(DEPDIR) llvm/$(DEPDIR) model/$(DEPDIR) reader/$(DEPDIR) source/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/gcjx/configure b/gcjx/configure index 2c1cc329d93..1d42b139f2b 100755 --- a/gcjx/configure +++ b/gcjx/configure @@ -274,7 +274,7 @@ PACKAGE_STRING='gcjx 0.1' PACKAGE_BUGREPORT='tromey@redhat.com' ac_unique_file="name.cc" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S RANLIB ac_ct_RANLIB LIBTOOL CXXCPP LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT ENABLE_LLVM_TRUE ENABLE_LLVM_FALSE LLVMBASELIBPATH LLVM_BUILDMODE BUILDMODE CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S RANLIB ac_ct_RANLIB LIBTOOL CXXCPP LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -827,6 +827,7 @@ Optional Features: --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --with-gcjx-debugging enable debugging code + --enable-llvmdebug use debug version of llvm --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared=PKGS build shared libraries default=yes @@ -839,6 +840,7 @@ Optional Packages: --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-booclasspath=PATH set default boot classpath + --with-llvm=PATH enable the LLVM backend installed in path --with-gnu-ld assume the C compiler uses GNU ld default=no --with-pic try to use only PIC/non-PIC objects default=use both @@ -1790,6 +1792,48 @@ _ACEOF fi fi; +# begin LLVM changed to llvmgen to differ from gcc llvm backend + +# Check whether --with-llvm or --without-llvm was given. +if test "${with_llvm+set}" = set; then + withval="$with_llvm" + LLVMBASELIBPATH=$withval + LLVM_BUILDMODE=Debug + +cat >>confdefs.h <<\_ACEOF +#define ENABLE_LLVM_BACKEND 1 +_ACEOF + + +fi; + + +if test x$with_llvm = xyes; then + ENABLE_LLVM_TRUE= + ENABLE_LLVM_FALSE='#' +else + ENABLE_LLVM_TRUE='#' + ENABLE_LLVM_FALSE= +fi + + + + + +# Check whether --enable-llvmdebug or --disable-llvmdebug was given. +if test "${enable_llvmdebug+set}" = set; then + enableval="$enable_llvmdebug" + case ${enableval} in + yes) LLVM_BUILDMODE=Debug;; + *) LLVM_BUILDMODE=Release;; +esac +fi; + + + +# end LLVM + + # Checks for programs. ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' @@ -4148,7 +4192,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 4151 "configure"' > conftest.$ac_ext + echo '#line 4195 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -5353,6 +5397,13 @@ echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${ENABLE_LLVM_TRUE}" && test -z "${ENABLE_LLVM_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"ENABLE_LLVM\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"ENABLE_LLVM\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -5931,6 +5982,11 @@ s,@am__untar@,$am__untar,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t +s,@ENABLE_LLVM_TRUE@,$ENABLE_LLVM_TRUE,;t t +s,@ENABLE_LLVM_FALSE@,$ENABLE_LLVM_FALSE,;t t +s,@LLVMBASELIBPATH@,$LLVMBASELIBPATH,;t t +s,@LLVM_BUILDMODE@,$LLVM_BUILDMODE,;t t +s,@BUILDMODE@,$BUILDMODE,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t diff --git a/gcjx/configure.ac b/gcjx/configure.ac index 312534bf8e5..de5ca2cd564 100644 --- a/gcjx/configure.ac +++ b/gcjx/configure.ac @@ -18,6 +18,30 @@ AC_ARG_ENABLE([gcjx-debugging], AC_DEFINE(_GLIBCXX_DEBUG, 1, [enable libstdc++ checking]) fi]) +# begin LLVM changed to llvmgen to differ from gcc llvm backend +AC_ARG_WITH([llvm], +AC_HELP_STRING([--with-llvm=PATH],[enable the LLVM backend installed in path]), + LLVMBASELIBPATH=$withval + LLVM_BUILDMODE=Debug + AC_DEFINE(ENABLE_LLVM_BACKEND, 1, [enable llvm]) +) +AM_CONDITIONAL(ENABLE_LLVM, test x$with_llvm = xyes) +AC_SUBST(LLVMBASELIBPATH) +AC_SUBST(LLVM_BUILDMODE) + + +AC_ARG_ENABLE(llvmdebug, +AS_HELP_STRING([--enable-llvmdebug],[use debug version of llvm ]), +[case ${enableval} in + yes) LLVM_BUILDMODE=Debug;; + *) LLVM_BUILDMODE=Release;; +esac]) +AC_SUBST(BUILDMODE) + + +# end LLVM + + # Checks for programs. AC_PROG_CXX AC_PROG_CC diff --git a/gcjx/gcjx-config.h.in b/gcjx/gcjx-config.h.in index 9ec369f8187..a83e5824e14 100644 --- a/gcjx/gcjx-config.h.in +++ b/gcjx/gcjx-config.h.in @@ -3,6 +3,9 @@ /* Default -bootclasspath */ #undef BOOTCLASSPATH +/* enable llvm */ +#undef ENABLE_LLVM_BACKEND + /* Define to 1 if you have the `iconv' library (-liconv). */ #undef HAVE_LIBICONV diff --git a/gcjx/main.cc b/gcjx/main.cc index ab86cbb4876..112339d8de7 100644 --- a/gcjx/main.cc +++ b/gcjx/main.cc @@ -21,6 +21,9 @@ #include "typedefs.hh" #include "bytecode/bytegen.hh" +#ifdef ENABLE_LLVM_BACKEND +#include "llvm/llvmgen.hh" +#endif #include "header/jni.hh" #include "header/jnistub.hh" #include "header/cni.hh" @@ -512,6 +515,11 @@ public: else if (otype == "jnistub") comp->add_code_generator (new jni_stub_generator (comp, comp->get_directory_cache ())); +#ifdef ENABLE_LLVM_BACKEND + else if (otype == "llvm") + comp->add_code_generator (new llvm_code_generator (comp, + comp->get_directory_cache ())); +#endif else if (otype == "none") { // Nothing. |