From owner-p4-projects@FreeBSD.ORG Thu Sep 5 18:50:04 2013 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 53C8AE5F; Thu, 5 Sep 2013 18:50:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 14FFBE5D for ; Thu, 5 Sep 2013 18:50:04 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [8.8.178.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E7BC72885 for ; Thu, 5 Sep 2013 18:50:03 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.7/8.14.7) with ESMTP id r85Io3A9028684 for ; Thu, 5 Sep 2013 18:50:03 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.7/8.14.6/Submit) id r85Io3KM028681 for perforce@freebsd.org; Thu, 5 Sep 2013 18:50:03 GMT (envelope-from brooks@freebsd.org) Date: Thu, 5 Sep 2013 18:50:03 GMT Message-Id: <201309051850.r85Io3KM028681@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis Subject: PERFORCE change 593392 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Sep 2013 18:50:04 -0000 http://p4web.freebsd.org/@@593392?ac=10 Change 593392 by brooks@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}