[vmkit-commits] [vmkit] r180422 - optimized versions are ok
Peter Senna Tschudin
peter.senna at gmail.com
Thu Apr 25 10:09:55 PDT 2013
Author: peter.senna
Date: Thu Apr 25 12:08:22 2013
New Revision: 180422
URL: http://llvm.org/viewvc/llvm-project?rev=180422&view=rev
Log:
optimized versions are ok
(cherry picked from commit a345025fde63ea666933bb000e195882a7290c3d)
Modified:
vmkit/trunk/Makefile.rules
Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=180422&r1=180421&r2=180422&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Thu Apr 25 12:08:22 2013
@@ -1,7 +1,8 @@
.PHONY: all tidy clean distclean confclean
.SECONDARY:
-.SUFFIXES: .c .cpp .cxx .cc .h .hpp .o .a .bc .ll .jar $(SHLIBEXT) $(EXEEXT)
+.SUFFIXES:
+#.SUFFIXES: .c .cpp .cxx .cc .h .hpp .o .a .bc .ll .jar $(SHLIBEXT) $(EXEEXT)
all::
@@ -23,6 +24,8 @@ endif
ifeq ($(ASSERT),1)
BUILD_NAME:=$(BUILD_NAME)+Asserts
+else
+ COMMON_CFLAGS+=-DNDEBUG
endif
ifeq ($(DEBUG),1)
@@ -30,21 +33,14 @@ ifeq ($(DEBUG),1)
endif
ifeq ($(OPTIMIZED),1)
- OPT_MSG="Optimizing"
- OPT_ID=-opt
LLC_FLAGS+= -O=3 -disable-cfi -disable-fp-elim
- OPT_FLAGS+= -disable-cfi -disable-fp-elim #-std-compile-opts #-O3 # #-std-link-opts
COMMON_CFLAGS+= -O3 -fno-strict-aliasing -fno-omit-frame-pointer
else
- OPT_MSG="Performing GC pass on"
- OPT_ID=-gc
LLC_FLAGS+= -O0
- OPT_FLAGS+= -disable-opt
COMMON_CFLAGS+= -O0
endif
LLC_FLAGS+=-relocation-model=pic
-OPT_FLAGS+=
OPT_MMTK_FLAGS= -std-compile-opts -strip-debug
@@ -166,6 +162,19 @@ NEED_GC=1
endif
###############################################################################
+# GC passes
+###############################################################################
+ifdef NEED_GC
+LLC_FLAGS+=-load=$(PREPARE_CODE_LIB)
+GC_ID=-gc
+
+%$(GC_ID).bc: %.bc
+ $(Echo) "Performing GC pass on '$(notdir $<)'"
+ $(Verb) $(LOPT) $< -load=$(PREPARE_CODE_LIB) -StaticGCPass -disable-cfi -disable-fp-elim -disable-opt -o $@
+
+endif
+
+###############################################################################
# Module
###############################################################################
ifdef MODULE
@@ -190,29 +199,24 @@ CLANG_FILES=$(patsubst %.c,$(BUILD_DIR)/
BC_FILES=$(addsuffix .bc,$(CLANG_FILES)) $(addprefix $(BUILD_DIR)/,$(filter %.bc, $(GEN)))
-ifdef NEED_GC
-LLC_FLAGS+=-load=$(PREPARE_CODE_LIB)
-OPT_FLAGS+=-load=$(PREPARE_CODE_LIB) -StaticGCPass
-endif
-
ifdef NEED_BC
# if we need bytecode, we link a module with all the bc in the build_dir directory, optimize this module
# assemble this module and finally create the archive
all:: $(LIB_DIR)/$(MODULE).bc
-$(LIB_DIR)/$(MODULE).bc $(LIB_DIR)/$(MODULE)-inliner.bc: $(LIB_DIR)/%.bc: $(BUILD_DIR)/%$(OPT_ID).bc $(LIB_DIR)/.dir
+$(LIB_DIR)/$(MODULE).bc $(LIB_DIR)/$(MODULE)-inliner.bc: $(LIB_DIR)/%.bc: $(BUILD_DIR)/%$(GC_ID).bc $(LIB_DIR)/.dir
$(Verb) $(CP) $< $@
$(BUILD_DIR)/$(MODULE).bc: $(BC_FILES) $(patsubst %, $(LIB_DIR)/%.bc,$(MODULE_USE))
$(Echo) "Linking module '$(notdir $@)'"
$(Verb) $(LLVMLINK) $^ -o $@
-MODULE_A_DEP+=$(BUILD_DIR)/$(MODULE)$(OPT_ID).o
+MODULE_A_DEP+=$(BUILD_DIR)/$(MODULE)$(GC_ID).o
else
# for most of the module, we avoid a full module creation, mainly because I have bugs in llc
# in this case, we build a set of .o files and archive them together
# each .o is optimized and assembled
-MODULE_A_DEP=$(patsubst %.bc,%$(OPT_ID).o,$(BC_FILES)) $(patsubst %, $(LIB_DIR)/lib%.a,$(MODULE_USE))
+MODULE_A_DEP=$(patsubst %.bc,%$(GC_ID).o,$(BC_FILES)) $(patsubst %, $(LIB_DIR)/lib%.a,$(MODULE_USE))
endif
$(MODULE_A): $(MODULE_A_DEP) $(LIB_DIR)/.dir
@@ -221,20 +225,12 @@ $(MODULE_A): $(MODULE_A_DEP) $(LIB_DIR)/
$(Verb) $(Archive) $@ $(MODULE_A_DEP)
$(Verb) $(Ranlib) $@
-%.o: %.bc
- $(Echo) "Assembling '$(notdir $<)'"
- $(Verb) $(LLC) $(LLC_FLAGS) -filetype=obj $< -o $@
-
-%$(OPT_ID).bc: %.bc
- $(Echo) "$(OPT_MSG) '$(notdir $<)'"
- $(Verb) $(LOPT) $< $(OPT_FLAGS) -o $@
-
endif
###############################################################################
# Inliner
###############################################################################
-$(BUILD_DIR)/$(MODULE)-inliner.cc: $(BUILD_DIR)/$(MODULE)$(OPT_ID).bc $(SELF)
+$(BUILD_DIR)/$(MODULE)-inliner.cc: $(BUILD_DIR)/$(MODULE)$(GC_ID).bc $(SELF)
# cppgen doesn't like debug info
$(Echo) "Generating inliner $(notdir $@)"
$(Verb) doit() { \
@@ -259,9 +255,9 @@ $(BUILD_DIR)/$(MODULE)-inliner.cc: $(BUI
###############################################################################
DEP_LIBS=$(patsubst %,$(LIB_DIR)/lib%.a,$(LINK_USE))
-$(BIN_DIR)/$(TOOL)$(EXEEXT): $(MODULE_A) $(DEP_LIBS) $(BUILD_DIR)/frametables$(OPT_ID).o $(SELF) $(BIN_DIR)/.dir
+$(BIN_DIR)/$(TOOL)$(EXEEXT): $(MODULE_A) $(DEP_LIBS) $(BUILD_DIR)/frametables.o $(SELF) $(BIN_DIR)/.dir
$(Echo) "Linking executable '$(notdir $@)'"
- $(Verb) $(CLANGXX) -o $@ $(LDFLAGS) $(MODULE_A) $(BUILD_DIR)/frametables$(OPT_ID).o $(DEP_LIBS) $(DEP_LIBS) $(LIBS)
+ $(Verb) $(CLANGXX) -o $@ $(LDFLAGS) $(MODULE_A) $(BUILD_DIR)/frametables.o $(DEP_LIBS) $(DEP_LIBS) $(LIBS)
$(LIB_DIR)/$(LIBRARY)$(SHLIBEXT): $(MODULE_A) $(DEP_LIBS) $(SELF) $(LIB_DIR)/.dir
$(Echo) "Linking shared library '$(notdir $@)'"
@@ -300,8 +296,12 @@ endif
###############################################################################
# object rules
###############################################################################
+%.o: %.bc
+ $(Echo) "Assembling '$(notdir $<)'"
+ $(Verb) $(LLC) $(LLC_FLAGS) -filetype=obj $< -o $@
+
define define_compile_rule
-$(BUILD_DIR)/%.bc: %$1 $(SELF) $(BUILT_INC) $(BUILD_DIR)/.dir
+$(BUILD_DIR)/%.bc: %$1 $(BUILT_INC) $(SELF) $(BUILD_DIR)/.dir
$(Echo) "Compiling '$$(notdir $$<)'"
$(Verb) if $2 $3 $(DEPEND_OPTIONS) -emit-llvm -c "$$<" -o $$@; $(DOM)
More information about the vmkit-commits
mailing list