PERFORCE change 593392 for review
Brooks Davis
brooks at FreeBSD.org
Thu Sep 5 18:50:04 UTC 2013
http://p4web.freebsd.org/@@593392?ac=10
Change 593392 by brooks at brooks_zenith on 2013/09/05 18:49:16
Make WITH_SOAAP imply WITH_LLVM_INSTRUMENTED for now. Break up
the rules to create *.soaap_cg and *.soaap_perf versions so the
intermediate files don't collide and are generated by their own
rules thus allowing conditional compiliation.
Affected files ...
.. //depot/projects/ctsrd/tesla/src/share/mk/bsd.own.mk#11 edit
.. //depot/projects/ctsrd/tesla/src/share/mk/bsd.prog.mk#16 edit
.. //depot/projects/ctsrd/tesla/src/share/mk/sys.mk#17 edit
Differences ...
==== //depot/projects/ctsrd/tesla/src/share/mk/bsd.own.mk#11 (text+ko) ====
@@ -628,8 +628,8 @@
# Some targets require a different build process in order to allow LLVM
# instrumentation passes to be applied.
#
-# XXX: The current construction allow an empty insturmentation path or
-# a tesla one.
+# XXX: The current construction allow an empty instrumentation path or
+# a TESLA one.
#
.if defined(WITH_LLVM_INSTRUMENTED) && defined(WITHOUT_LLVM_INSTRUMENTED)
.error WITH_LLVM_INSTRUMENTED and WITHOUT_LLVM_INSTRUMENTED can't both be set.
@@ -637,15 +637,28 @@
.if defined(MK_LLVM_INSTRUMENTED)
.error MK_LLVM_INSTRUMENTED can't be set by a user.
.endif
-.if ${MK_TESLA} == "no"
-LLVM_INSTR_DEP?=
-LLVM_INSTR_COMMAND?= cp ${.IMPSRC} ${.TARGET}
+
+.if ${MK_TESLA} == "no" && ${MK_SOAAP} == "no"
.if defined(WITH_LLVM_INSTRUMENTED)
MK_LLVM_INSTRUMENTED:= yes
.else
MK_LLVM_INSTRUMENTED:= no
.endif
+.endif
+
+.if ${MK_SOAAP} != "no"
+CFLAGS+= -I${SOAAP_SOURCE_DIR}/include
+.if defined(WITHOUT_LLVM_INSTRUMENTED)
+.error WITHOUT_LLVM_INSTRUMENTED and WITH_SOAAP can't both be set.
.else
+MK_LLVM_INSTRUMENTED:= yes
+.endif
+.endif
+
+.if ${MK_TESLA} == "no"
+LLVM_INSTR_DEP?=
+LLVM_INSTR_COMMAND?= cp ${.IMPSRC} ${.TARGET}
+.else
LLVM_INSTR_DEP= tesla.manifest
.if ${LLVM_IR_TYPE} == "bc"
LLVM_INSTR_COMMAND= ${TESLA} instrument -verify-each -tesla-manifest \
@@ -663,10 +676,6 @@
.endif
.endif
-.if defined(WITH_LLVM_INSTRUMENTED) && defined(WITH_SOAAP)
-CFLAGS+= -I${SOAAP_SOURCE_DIR}/include
-.endif
-
.if ${MK_CTF} != "no"
CTFCONVERT_CMD= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
.elif defined(.PARSEDIR) || (defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300)
==== //depot/projects/ctsrd/tesla/src/share/mk/bsd.prog.mk#16 (text+ko) ====
@@ -5,7 +5,6 @@
.SUFFIXES: .out .o .c .cc .cpp .cxx .C .m .y .l .ln .s .S .asm
-
# XXX The use of COPTS in modern makefiles is discouraged.
.if defined(COPTS)
CFLAGS+=${COPTS}
@@ -69,7 +68,7 @@
INSTR_IRS= ${LLVM_CFILES:R:S/$/.instr${LLVM_IR_TYPE}/}
INSTR_OBJS= ${LLVM_CFILES:R:S/$/.instro/}
OBJS+= ${INSTR_OBJS}
-CLEANFILES+= ${OIRS} ${INSTR_IRS} ${INSTR_OBJS} ${PROG}.${LLVM_IR_TYPE}-a
+CLEANFILES+= ${OIRS} ${INSTR_IRS} ${INSTR_OBJS}
.if ${MK_TESLA} != "no"
TESLA_FILES= ${LLVM_CFILES:R:S/$/.tesla/}
CLEANFILES+= ${TESLA_FILES} tesla.manifest
@@ -119,17 +118,18 @@
.endif
.endif # defined(PROG)
-.if defined(WITH_LLVM_INSTRUMENTED)
-all: objwarn ${PROG} ${PROG}.${LLVM_IR_TYPE}-a ${SCRIPTS}
-.else
all: objwarn ${PROG} ${SCRIPTS}
-.endif
.if ${MK_MAN} != "no"
all: _manpages
.endif
.if defined(PROG)
CLEANFILES+= ${PROG}
+.if ${MK_SOAAP} != "no"
+CLEANFILES+= ${PROG}.${LLVM_IR_TYPE}-a \
+ ${PROG}.bc_cep ${PROG}.po_cep ${PROG}.soaap_cg \
+ ${PROG}.bc_soaap_perf ${PROG}.po_soaap_perf ${PROG}.soaap_pef
+.endif
.endif
.if defined(OBJS)
==== //depot/projects/ctsrd/tesla/src/share/mk/sys.mk#17 (text+ko) ====
@@ -32,7 +32,7 @@
.if defined(%POSIX)
.SUFFIXES: .o .c .y .l .a .sh .f
.else
-.SUFFIXES: .out .a .dot .bc-a .ll-a .instrbc .instrll .instro .obc .oll .ln .manifest .o .c .cc .cpp .cxx .C .m .F .f .e .r .soaap .soaap_cg .soaap_perf .tesla .y .l .S .asm .s .cl .p .h .sh
+.SUFFIXES: .out .a .ao .dot .bc-a .bc_cep .bc_soaap_perf .ll-a .instrbc .instrll .instro .llvmlinked .obc .oll .po_cep .po_soaap_perf .ln .manifest .o .c .cc .cpp .cxx .C .m .F .f .e .r .soaap .soaap_cg .soaap_perf .tesla .y .l .S .asm .s .cl .p .h .sh
.endif
AR ?= ar
@@ -297,21 +297,37 @@
.error Unknown LLVM IR type ${LLVM_IR_TYPE}
.endif
-.if defined(WITH_SOAAP)
-CLEANFILES+= *.${LLVM_IR_TYPE}-a *.po *.pbc *.soaap_cg *.soaap_perf
.${LLVM_IR_TYPE}-a.soaap:
- ${OPT} -load $(SOAAP_BUILD_DIR)/libsoaap.so -soaap ${SOAAP_FLAGS} -o /dev/null ${.IMPSRC}
+ ${OPT} -load ${SOAAP_BUILD_DIR}/libsoaap.so -soaap ${SOAAP_FLAGS} \
+ -o /dev/null ${.IMPSRC}
+
+.${LLVM_IR_TYPE}-a.bc_cep:
+ ${OPT} -load ${SOAAP_BUILD_DIR}/libcep.so -insert-call-edge-profiling \
+ -o ${.TARGET} ${.IMPSRC}
+
+.bc_cep.po_cep:
+ ${LLC} -filetype=obj ${LLCFLAGS} -o ${.TARGET} ${.IMPSRC}
+
+.po_cep.soaap_cg:
+ ${CC} ${.IMPSRC} -L${SOAAP_BUILD_DIR} -L${LLVM_BUILD_DIR}/lib \
+ -lcep_rt -lprofile_rt ${LDADD} -o ${.TARGET}
+
+.${LLVM_IR_TYPE}-a.bc_soaap_perf:
+ ${OPT} -load ${SOAAP_BUILD_DIR}/libsoaap.so -soaap \
+ -soaap-emulate-performance ${SOAAP_FLAGS} -o ${.TARGET} ${.IMPSRC}
+
+.bc_soaap_perf.po_soaap_perf:
+ ${LLC} -filetype=obj -o ${.TARGET} ${.IMPSRC}
+
+.po_soaap_perf.soaap_perf:
+ ${CC} ${.IMPSRC} ${LDADD} -o ${.TARGET}
-.${LLVM_IR_TYPE}-a.soaap_cg:
- ${OPT} -load $(SOAAP_BUILD_DIR)/libcep.so -insert-call-edge-profiling -o ${.IMPSRC:R}.pbc ${.IMPSRC}
- ${LLC} -filetype=obj -o ${.IMPSRC:R}.po ${.IMPSRC:R}.pbc
- ${CC} -L $(SOAAP_BUILD_DIR) -L $(LLVM_BUILD_DIR)/lib -lcep_rt -lprofile_rt $(LDADD) -o ${.TARGET} ${.IMPSRC:R}.po
+.${LLVM_IR_TYPE}-a.ao:
+ ${LLC} -filetype=obj -o ${.TARGET} ${.IMPSRC}
-.${LLVM_IR_TYPE}-a.soaap_perf:
- ${OPT} -load $(SOAAP_BUILD_DIR)/libsoaap.so -soaap -soaap-emulate-performance ${SOAAP_FLAGS} -o ${.IMPSRC:R}.pbc ${.IMPSRC}
- ${LLC} -filetype=obj -o ${.IMPSRC:R}.po ${.IMPSRC:R}.pbc
- ${CC} $(LDADD) -o ${.TARGET} ${.IMPSRC:R}.po
-.endif
+# XXX: missing non-c objects
+.ao.llvmlinked:
+ ${CC} ${.IMPSRC} ${LDADD} -o ${.TARGET}
.manifest.dot:
${TESLA} graph ${.IMPSRC} -o ${.TARGET}
More information about the p4-projects
mailing list