[vmkit-commits] [vmkit] r54679 - in /vmkit/trunk: Makefile.common.in Makefile.config.in Makefile.rules lib/JnJVM/LLVMRuntime/Makefile lib/JnJVM/VMCore/JnjvmModule.cpp lib/Mvm/Runtime/JIT.cpp lib/Mvm/Runtime/Makefile

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Aug 12 03:52:28 PDT 2008


Author: geoffray
Date: Tue Aug 12 05:52:13 2008
New Revision: 54679

URL: http://llvm.org/viewvc/llvm-project?rev=54679&view=rev
Log:
Only generate a LLVMRuntime.inc file for the LLVM runtime of
individual projects: jnjvm has different .ll files depending
on the vm configuration.


Modified:
    vmkit/trunk/Makefile.common.in
    vmkit/trunk/Makefile.config.in
    vmkit/trunk/Makefile.rules
    vmkit/trunk/lib/JnJVM/LLVMRuntime/Makefile
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
    vmkit/trunk/lib/Mvm/Runtime/JIT.cpp
    vmkit/trunk/lib/Mvm/Runtime/Makefile

Modified: vmkit/trunk/Makefile.common.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.common.in?rev=54679&r1=54678&r2=54679&view=diff

==============================================================================
--- vmkit/trunk/Makefile.common.in (original)
+++ vmkit/trunk/Makefile.common.in Tue Aug 12 05:52:13 2008
@@ -33,11 +33,6 @@
 
 # GC configuration
 LIBS += -lz
-GCLIB = @GC_LIBS@
-GC_MULTI_MMAP = @GC_MULTI_MMAP@
-GC_SINGLE_MMAP = @GC_SINGLE_MMAP@
-GC_BOEHM = @GC_BOEHM@
-GC_MMAP2 = @GC_MMAP2@
 
 ifeq ($(GCLIB), BoehmGC)
   LIBS += -lgc

Modified: vmkit/trunk/Makefile.config.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.config.in?rev=54679&r1=54678&r2=54679&view=diff

==============================================================================
--- vmkit/trunk/Makefile.config.in (original)
+++ vmkit/trunk/Makefile.config.in Tue Aug 12 05:52:13 2008
@@ -3,3 +3,7 @@
 WITH_N3_MONO = @WITH_N3_MONO@
 WITH_JNJVM = @WITH_JNJVM@
 N3_LIB = @N3_LIB@
+GC_MULTI_MMAP = @GC_MULTI_MMAP@
+GC_SINGLE_MMAP = @GC_SINGLE_MMAP@
+GC_BOEHM = @GC_BOEHM@
+GC_MMAP2 = @GC_MMAP2@

Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=54679&r1=54678&r2=54679&view=diff

==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Tue Aug 12 05:52:13 2008
@@ -1,24 +1,19 @@
 ifdef VMKIT_RUNTIME
 
-LLFiles := $(strip $(wildcard $(PROJ_SRC_DIR)/*.ll))
-INCFiles := $(filter %.inc,$(BUILT_SOURCES))
-.PRECIOUS: $(CPPFiles)
+.PRECIOUS: LLVMRuntime.inc
 
 # All of these files depend on tblgen and the .td files.
-$(INCFiles) : $(LLVMAS) $(LLC) $(LLFiles)
+LLVMRuntime.inc : $(LLVMAS) $(LLC) $(LLFiles)
 
-# CPPFiles rule: All of the tblgen generated files are emitted to 
-# $(ObjDir)/%.inc.tmp, instead of emitting them directly to %.inc.  This allows
-# us to only "touch" the real file if the contents of it change.  IOW, if
-# tblgen is modified, all of the .inc.tmp files are regereated, but no
-# dependencies of the .inc files are, unless the contents of the .inc file
-# changes.
-$(INCFiles) : %.inc : %.ll
-	$(Echo) "Building $(<F) LLVM runtime"
+LLVMRuntime.gen.ll : $(VMKIT_RUNTIME)
+	$(Verb) cat $(VMKIT_RUNTIME) > LLVMRuntime.gen.ll
+
+LLVMRuntime.inc : LLVMRuntime.gen.ll
+	$(Echo) "Building LLVM runtime"
 	$(Verb) $(LLVMAS) -f $(<F) -o - | $(LLC) -march=cpp -cppgen=contents -f -o $@
 
 
 clean-local::
-	$(Verb) $(RM) -f $(INCFiles)
+	$(Verb) $(RM) -f LLVMRuntime.inc LLVMRuntime.gen.ll
 
 endif

Modified: vmkit/trunk/lib/JnJVM/LLVMRuntime/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/LLVMRuntime/Makefile?rev=54679&r1=54678&r2=54679&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/LLVMRuntime/Makefile (original)
+++ vmkit/trunk/lib/JnJVM/LLVMRuntime/Makefile Tue Aug 12 05:52:13 2008
@@ -8,43 +8,30 @@
 ##===----------------------------------------------------------------------===##
 LEVEL = ../../..
 
-include $(LEVEL)/Makefile.common
-
-all = llvmruntime.cpp
-
-llvmruntimebc	: llvmruntimell
-	$(Echo) "Building LLVM runtime with llvm-as"
-	$(Verb) $(LLVMAS) -f LLVMRuntime.ll
+include $(LEVEL)/Makefile.config
 
-all :: llvmruntimebc
-	$(Echo) "Building LLVM runtime with llc"
-	$(Verb) $(LLC) -march=cpp -cppgen=contents -f LLVMRuntime.bc
-
-LL_FILES = runtime-default.ll
+VMKIT_RUNTIME = runtime-default.ll
 
 ifeq ($(ISOLATE_BUILD), 1)
-LL_FILES += runtime-isolate.ll
+VMKIT_RUNTIME += runtime-isolate.ll
 endif
 
 ifeq ($(SERVICE_BUILD), 1)
-LL_FILES += runtime-service.ll runtime-isolate.ll runtime-multi-mmap.ll
+VMKIT_RUNTIME += runtime-service.ll runtime-isolate.ll runtime-multi-mmap.ll
 else
 ifeq ($(GC_MULTI_MMAP), 1)
-LL_FILES += runtime-multi-mmap.ll
+VMKIT_RUNTIME += runtime-multi-mmap.ll
 else
 ifeq ($(GC_SINGLE_MMAP), 1)
-LL_FILES += runtime-single-mmap.ll
+VMKIT_RUNTIME += runtime-single-mmap.ll
 else
 ifeq ($(GC_BOEHM), 1)
-LL_FILES += runtime-boehm.ll
+VMKIT_RUNTIME += runtime-boehm.ll
 endif
 endif
 endif
 endif
 
-llvmruntimell: $(LL_FILES)
-	$(Echo) "Generating LLVM runtime"
-	$(Verb) cat $(LL_FILES) > LLVMRuntime.ll
+BUILT_SOURCES = LLVMRuntime.inc
 
-clean::
-	rm -f LLVMRuntime.ll LLVMRuntime.bc LLVMRuntime.cpp
+include $(LEVEL)/Makefile.common

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=54679&r1=54678&r2=54679&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Tue Aug 12 05:52:13 2008
@@ -965,12 +965,13 @@
 
 #endif
 
-static
-#include "LLVMRuntime.cpp"
+namespace llvm_runtime { 
+  #include "LLVMRuntime.inc"
+}
 
 void JnjvmModule::initialise() {
   Module* module = this;
-  makeLLVMModuleContents(module);
+  llvm_runtime::makeLLVMModuleContents(module);
   
   VTType = module->getTypeByName("VT");
   

Modified: vmkit/trunk/lib/Mvm/Runtime/JIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Runtime/JIT.cpp?rev=54679&r1=54678&r2=54679&view=diff

==============================================================================
--- vmkit/trunk/lib/Mvm/Runtime/JIT.cpp (original)
+++ vmkit/trunk/lib/Mvm/Runtime/JIT.cpp Tue Aug 12 05:52:13 2008
@@ -50,8 +50,9 @@
 
 extern "C" void __register_frame(void*);
 
-static
-#include "LLVMRuntime.inc"
+namespace llvm_runtime {
+  #include "LLVMRuntime.inc"
+}
 
 void mvm::jit::initialise() {
   llvm::NoFramePointerElim = true;
@@ -66,7 +67,7 @@
   std::string str = executionEngine->getTargetData()->getStringRepresentation();
   module->setDataLayout(str);
   
-  makeLLVMModuleContents(module);
+  llvm_runtime::makeLLVMModuleContents(module);
   
   printFloatLLVM = module->getFunction("printFloat");
   printDoubleLLVM = module->getFunction("printDouble");

Modified: vmkit/trunk/lib/Mvm/Runtime/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Runtime/Makefile?rev=54679&r1=54678&r2=54679&view=diff

==============================================================================
--- vmkit/trunk/lib/Mvm/Runtime/Makefile (original)
+++ vmkit/trunk/lib/Mvm/Runtime/Makefile Tue Aug 12 05:52:13 2008
@@ -11,8 +11,7 @@
 include $(LEVEL)/Makefile.config
 
 LIBRARYNAME = Mvm
-VMKIT_RUNTIME = Mvm
-
+VMKIT_RUNTIME = LLVMRuntime.ll
 BUILT_SOURCES = LLVMRuntime.inc
 
 include $(LEVEL)/Makefile.common





More information about the vmkit-commits mailing list