[vmkit-commits] [vmkit] r180416 - better compilation of bootstrap code

Peter Senna Tschudin peter.senna at gmail.com
Thu Apr 25 10:09:39 PDT 2013


Author: peter.senna
Date: Thu Apr 25 12:07:58 2013
New Revision: 180416

URL: http://llvm.org/viewvc/llvm-project?rev=180416&view=rev
Log:
better compilation of bootstrap code
(cherry picked from commit ff5d328310781a71a8a380fb20c2b95de65a1bc1)

Modified:
    vmkit/trunk/Makefile.rules
    vmkit/trunk/mmtk/java/Makefile
    vmkit/trunk/tools/j3/Makefile
    vmkit/trunk/tools/trainer/Makefile

Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=180416&r1=180415&r2=180416&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Thu Apr 25 12:07:58 2013
@@ -116,6 +116,7 @@ BUILD_DIR=$(PROJ_OBJ_CWD)/$(BUILD_NAME)
 
 PREPARE_CODE=$(LIB_DIR)/prepare-code$(SHLIBEXT)
 VMJC=$(BIN_DIR)/vmjc$(EXEEXT)
+PRECOMPILER=$(BIN_DIR)/precompiler
 
 ###############################################################################
 #   Main targets
@@ -195,7 +196,7 @@ $(MODULE_A): $(MODULE_A_DEP) $(LIB_DIR)/
 
 %.o: %.bc
 	$(Echo) "Assembling '$(notdir $<)'"
-	$(Verb) $(LLC) -relocation-model=pic -filetype=obj -disable-cfi -disable-fp-elim $(LLC_GC) $< -o $@
+	$(Verb) $(LLC) $(LLC_OPT) -relocation-model=pic -filetype=obj -disable-cfi -disable-fp-elim $(LLC_GC) $< -o $@
 
 %-opt.bc: %.bc
 	$(Echo) "$(OPT_MSG) '$(notdir $<)'"

Modified: vmkit/trunk/mmtk/java/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/java/Makefile?rev=180416&r1=180415&r2=180416&view=diff
==============================================================================
--- vmkit/trunk/mmtk/java/Makefile (original)
+++ vmkit/trunk/mmtk/java/Makefile Thu Apr 25 12:07:58 2013
@@ -17,7 +17,7 @@ EXTRACT_FUNCTIONS=VTgcmalloc fieldWriteB
 include $(LEVEL)/Makefile.common
 
 $(BUILD_DIR)/%.bc: $(BUILD_DIR)/%-lower.bc $(LIB_DIR)/MMTKMagic$(SHLIBEXT)
-	$(Echo) "Lowering '$(notdir $@)'"
+	$(Echo) "Lowering magic '$(notdir $@)'"
 	$(Verb) $(LOPT) -load=$(LIB_DIR)/MMTKMagic$(SHLIBEXT) $(OPT_MMTK_FLAGS) -LowerJavaRT -f $< -o $@
 
 $(BUILD_DIR)/%-lower.bc: $(BUILD_DIR)/%.jar $(VMJC) $(LIB_DIR)/MMTKRuntime$(SHLIBEXT) $(LIB_DIR)/MMTKMagic$(SHLIBEXT) 
@@ -30,45 +30,3 @@ $(BUILD_DIR)/%-lower.bc: $(BUILD_DIR)/%.
 $(BUILD_DIR)/%.jar: $(PROJ_OBJ_ROOT)/mmtk/java/build.xml $(BUILD_DIR)/.dir #$(SELF)
 	$(Verb) $(ANT) -buildfile $(PROJ_OBJ_ROOT)/mmtk/java/build.xml && mv $(notdir $@) $@
 
-
-ifdef ZERO
-#
-#
-# OLD BUILD SYSTEM
-#
-#
-
-# Set the LLVM build file location 
-LLVMBuildTool   := $(LLVM_SRC_ROOT)/utils/llvm-build/llvm-build
-
-MMTkLib = $(LIB_DIR)/libFinalMMTk.a
-
-ifeq ($(shell [ ! -e $(MMTkLib) ] && echo "1"), 1)
-  COMPILE_MMTK = 1
-endif
-
-ifeq ($(COMPILE_MMTK), 1)
-all::
-	$(Verb) $(ANT) -buildfile $(PROJ_OBJ_ROOT)/mmtk/java/build.xml
-	$(Echo) "**[12] Building $(BuildMode) $(JARNAME).jar $(notdir $@) $(OPT_MMTK_FLAGS)"
-	$(Verb) $(LOPT) -load=$(LIB_DIR)/JITGCPass$(SHLIBEXT) $(OPT_MMTK_FLAGS) -JITGCPass -f $(LIB_DIR)/MMTKAlloc.bc -o $(LIB_DIR)/MMTKAlloc.bc
-	$(Verb) $(VMJC) $(VMJC_MMTK_FLAGS) -load=$(LIB_DIR)/MMTKRuntime$(SHLIBEXT) -load=$(LIB_DIR)/MMTKMagic$(SHLIBEXT) -LowerMagic $(PROJ_OBJ_ROOT)/mmtk/java/$(JARNAME).jar -disable-exceptions -disable-cooperativegc -with-clinit=org/mmtk/vm/VM,org/mmtk/utility/*,org/mmtk/policy/*,org/j3/config/* -Dmmtk.hostjvm=org.j3.mmtk.Factory -o $(JARNAME).bc -Dmmtk.properties=$(PROJ_SRC_ROOT)/mmtk/java/vmkit.properties -disable-stubs -assume-compiled
-	$(Verb) $(LOPT) -load=$(LIB_DIR)/MMTKMagic$(SHLIBEXT) $(OPT_MMTK_FLAGS) -LowerJavaRT -f $(JARNAME).bc -o $(JARNAME)-optimized.bc
-	$(Verb) $(LLVMLINK) -o $(LIB_DIR)/FinalMMTk.bc $(LIB_DIR)/MMTKAlloc.bc $(JARNAME)-optimized.bc $(LIB_DIR)/MMTKRuntime.bc
-	$(Verb) $(LOPT) $(LIB_DIR)/FinalMMTk.bc -load=$(PREPARE_CODE) $(OPT_MMTK_FLAGS) -StaticGCPass -o $(LIB_DIR)/FinalMMTk.bc
-	$(Verb) $(MKDIR) $(BUILD_DIR)
-	$(Verb) $(LLC) $(LLC_ASM_FLAGS) -disable-fp-elim -disable-cfi -load=$(PREPARE_CODE) $(LIB_DIR)/FinalMMTk.bc -o $(BUILD_DIR)/FinalMMTk.s
-	$(Verb) $(GREP) -v '\.loc[^0-9]\+[0-9]\+ 0' $(BUILD_DIR)/FinalMMTk.s > $(BUILD_DIR)/FinalMMTk.s.remove_invalid_dot_loc
-	$(Verb) $(MV) -f $(BUILD_DIR)/FinalMMTk.s.remove_invalid_dot_loc $(BUILD_DIR)/FinalMMTk.s
-	$(Verb) $(CLANG) -c $(BUILD_DIR)/FinalMMTk.s -o $(BUILD_DIR)/FinalMMTk.o
-	$(Verb) $(Archive) $(LIB_DIR)/libFinalMMTk.a $(BUILD_DIR)/FinalMMTk.o
-	$(Verb) $(Ranlib) $(LIB_DIR)/libFinalMMTk.a
-	$(Verb) $(LLC) $(LLC_CPP_FLAGS) -march=cpp -cppgen=function -cppfor=VTgcmalloc $(LIB_DIR)/FinalMMTk.bc -o $(PROJ_SRC_ROOT)/mmtk/inline/MMTkMallocInline.inc
-	$(Verb) $(LLC) $(LLC_CPP_FLAGS) -march=cpp -cppgen=function -cppfor=fieldWriteBarrier $(LIB_DIR)/FinalMMTk.bc -o $(PROJ_SRC_ROOT)/mmtk/inline/MMTkFieldWriteInline.inc
-	$(Verb) $(LLC) $(LLC_CPP_FLAGS) -march=cpp -cppgen=function -cppfor=arrayWriteBarrier $(LIB_DIR)/FinalMMTk.bc -o $(PROJ_SRC_ROOT)/mmtk/inline/MMTkArrayWriteInline.inc
-	$(Verb) $(LLC) $(LLC_CPP_FLAGS) -march=cpp -cppgen=function -cppfor=nonHeapWriteBarrier $(LIB_DIR)/FinalMMTk.bc -o $(PROJ_SRC_ROOT)/mmtk/inline/MMTkNonHeapWriteInline.inc
-endif
-
-clean-local::
-	$(Verb) $(RM) -rf classes $(JARNAME).jar $(JARNAME).bc $(JARNAME)-optimized.bc $(BUILD_DIR)
-endif
\ No newline at end of file

Modified: vmkit/trunk/tools/j3/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/j3/Makefile?rev=180416&r1=180415&r2=180416&view=diff
==============================================================================
--- vmkit/trunk/tools/j3/Makefile (original)
+++ vmkit/trunk/tools/j3/Makefile Thu Apr 25 12:07:58 2013
@@ -9,6 +9,6 @@
 LEVEL = ../..
 
 TOOL=j3
-LINK_USE=Classpath J3 J3Compiler Vmkit VmkitCompiler CommonThread FinalMMTk Precompiled BootstrapClasses
+LINK_USE=Classpath J3 J3Compiler Vmkit VmkitCompiler CommonThread FinalMMTk Precompiled
 
 include $(LEVEL)/Makefile.common

Modified: vmkit/trunk/tools/trainer/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/trainer/Makefile?rev=180416&r1=180415&r2=180416&view=diff
==============================================================================
--- vmkit/trunk/tools/trainer/Makefile (original)
+++ vmkit/trunk/tools/trainer/Makefile Thu Apr 25 12:07:58 2013
@@ -8,16 +8,31 @@
 ##===----------------------------------------------------------------------===##
 LEVEL = ../..
 
-all:: Precompiled.bc BootstrapClasses.bc
+MODULE=Precompiled
+GEN=Precompiled.bc BootstrapClasses.bc
+NEED_GC=1
 
 include $(LEVEL)/Makefile.common
 
-PRECOMPILER := $(BIN_DIR)/precompiler$(EXEEXT)
-
 ifndef VERBOSE
   J3.Flags := > /dev/null
 endif
 
+$(BUILD_DIR)/Precompiled.bc: $(BUILD_DIR)/HelloWorld.class $(LIB_DIR)/prepare-code$(SHLIBEXT) $(PRECOMPILER)
+	$(Echo) "Pre-compiling bootstrap code"
+	$(Verb) $(PRECOMPILER) -cp $(dir $<) $(basename $(notdir $<)) $(J3.Flags) && mv generated.bc $@
+
+$(BUILD_DIR)/BootstrapClasses.bc: $(BUILD_DIR)/.dir
+	$(Echo) "Building precompiled classes"
+	$(Verb) $(PRECOMPILER) -emit-class-bytes $(J3.Flags) && mv classes.bc $@
+
+$(BUILD_DIR)/HelloWorld.class: HelloWorld.java $(SELF) $(BUILD_DIR)/.dir
+	$(Echo) "Compiling trainer '$<'"
+	$(Verb) javac -source $(JAVAC_TARGET) -target $(JAVAC_TARGET) $< -d $(dir $@)
+
+LLC_OPT+=-disable-branch-fold -disable-debug-info-print
+
+ifdef ZERO
 HelloWorld.class: HelloWorld.java
 	$(Echo) "Compiling trainer"
 	$(Verb) javac -source $(JAVAC_TARGET) -target $(JAVAC_TARGET) $< -d .
@@ -26,13 +41,13 @@ generated.bc: $(PRECOMPILER) HelloWorld.
 	$(Echo) "Pre-compiling bootstrap code"
 	$(Verb) $(PRECOMPILER) -cp $$PWD HelloWorld $(J3.Flags)
 
-Precompiled.bc: HelloWorld.class $(PREPARE_CODE) generated.bc
+Precompiled.bc: HelloWorld.class $(LibDir)/StaticGCPass$(SHLIBEXT) $(LibDir)/StaticGCPrinter$(SHLIBEXT) generated.bc
 	$(Echo) "Building precompiled bootstrap code"
-	$(Verb) $(MKDIR) $(BUILD_DIR)
-	$(Verb) $(LLC) -disable-branch-fold -disable-cfi -disable-debug-info-print -disable-fp-elim $(PRECOMPILER_FLAGS) -load=$(PREPARE_CODE) generated.bc -o $(BUILD_DIR)/Precompiled.s
-	$(Verb) $(CC) -c $(BUILD_DIR)/Precompiled.s -o $(BUILD_DIR)/Precompiled.o
-	$(Verb) $(Archive) $(LIB_DIR)/libPrecompiled.a $(BUILD_DIR)/Precompiled.o
-	$(Verb) $(Ranlib) $(LIB_DIR)/libPrecompiled.a
+	$(Verb) $(MKDIR) $(ObjDir)
+	$(Verb) $(LLC) -disable-branch-fold -disable-cfi -disable-debug-info-print -disable-fp-elim $(PRECOMPILER_FLAGS) -load=$(LibDir)/StaticGCPrinter$(SHLIBEXT) generated.bc -o $(ObjDir)/Precompiled.s
+	$(Verb) $(CC) -c $(ObjDir)/Precompiled.s -o $(ObjDir)/Precompiled.o
+	$(Verb) $(Archive) $(LibDir)/libPrecompiled.a $(ObjDir)/Precompiled.o
+	$(Verb) $(Ranlib) $(LibDir)/libPrecompiled.a
 	$(Verb) $(CP) generated.bc Precompiled.bc
 
 classes.bc: $(PRECOMPILER)
@@ -41,12 +56,13 @@ classes.bc: $(PRECOMPILER)
 
 BootstrapClasses.bc: classes.bc
 	$(Echo) "Building precompiled classes"
-	$(Verb) $(MKDIR) $(BUILD_DIR)
-	$(Verb) $(LLC) classes.bc -o $(BUILD_DIR)/BootstrapClasses.s
-	$(Verb) $(CC) -c $(BUILD_DIR)/BootstrapClasses.s -o $(BUILD_DIR)/BootstrapClasses.o
-	$(Verb) $(Archive) $(LIB_DIR)/libBootstrapClasses.a $(BUILD_DIR)/BootstrapClasses.o
-	$(Verb) $(Ranlib) $(LIB_DIR)/libBootstrapClasses.a
+	$(Verb) $(MKDIR) $(ObjDir)
+	$(Verb) $(LLC) classes.bc -o $(ObjDir)/BootstrapClasses.s
+	$(Verb) $(CC) -c $(ObjDir)/BootstrapClasses.s -o $(ObjDir)/BootstrapClasses.o
+	$(Verb) $(Archive) $(LibDir)/libBootstrapClasses.a $(ObjDir)/BootstrapClasses.o
+	$(Verb) $(Ranlib) $(LibDir)/libBootstrapClasses.a
 	$(Verb) $(CP) classes.bc BootstrapClasses.bc
 
 clean-local::
 	$(Verb) $(RM) -f HelloWorld.class generated.bc classes.bc Precompiled.bc BootstrapClasses.bc
+endif
\ No newline at end of file





More information about the vmkit-commits mailing list