[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