From: David Greene Date: Fri, 17 Apr 2009 14:49:22 +0000 (+0000) Subject: Add a --enable-profiling option to configure to build Debug+Profile and X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=dbefd0c15be7daa3d74a0a9a04a068ea76c641f8;p=oota-llvm.git Add a --enable-profiling option to configure to build Debug+Profile and Opt+Profile tools. Now we can profile any kind of flavor we build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69351 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Makefile.config.in b/Makefile.config.in index dcc013d0e85..efa8a0b8746 100644 --- a/Makefile.config.in +++ b/Makefile.config.in @@ -215,7 +215,15 @@ RDYNAMIC := @RDYNAMIC@ #ENABLE_OPTIMIZED = 1 @ENABLE_OPTIMIZED@ -# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will +# When ENABLE_PROFILING is enabled, profile instrumentation is done +# and output is put into the "+Profile" directories, where +# is either Debug or Release depending on how other builkd +# flags are set.. Otherwise, output is put in the +# directories. +#ENABLE_PROFILING = 1 +@ENABLE_PROFILING@ + +# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will # exclude assertion checks, otherwise they are included. #DISABLE_ASSERTIONS = 1 @DISABLE_ASSERTIONS@ diff --git a/Makefile.rules b/Makefile.rules index af980d65047..192f8870792 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -237,37 +237,36 @@ else OPTIMIZE_OPTION := -O3 endif -ifdef ENABLE_PROFILING - BuildMode := Profile - CXX.Flags += $(OPTIMIZE_OPTION) -pg -g - C.Flags += $(OPTIMIZE_OPTION) -pg -g - LD.Flags += $(OPTIMIZE_OPTION) -pg -g - KEEP_SYMBOLS := 1 -else - ifeq ($(ENABLE_OPTIMIZED),1) - BuildMode := Release - # Don't use -fomit-frame-pointer on Darwin or FreeBSD. - ifneq ($(OS),FreeBSD) - ifneq ($(OS),Darwin) - OmitFramePointer := -fomit-frame-pointer - endif - endif - - # Darwin requires -fstrict-aliasing to be explicitly enabled. - ifeq ($(OS),Darwin) - EXTRA_OPTIONS += -fstrict-aliasing -Wstrict-aliasing - endif +ifeq ($(ENABLE_OPTIMIZED),1) + BuildMode := Release + # Don't use -fomit-frame-pointer on Darwin or FreeBSD. + ifneq ($(OS),FreeBSD) + ifneq ($(OS),Darwin) + OmitFramePointer := -fomit-frame-pointer + endif + endif - CXX.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer) - C.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer) - LD.Flags += $(OPTIMIZE_OPTION) - else - BuildMode := Debug - CXX.Flags += -g - C.Flags += -g - LD.Flags += -g - KEEP_SYMBOLS := 1 + # Darwin requires -fstrict-aliasing to be explicitly enabled. + ifeq ($(OS),Darwin) + EXTRA_OPTIONS += -fstrict-aliasing -Wstrict-aliasing endif + CXX.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer) + C.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer) + LD.Flags += $(OPTIMIZE_OPTION) +else + BuildMode := Debug + CXX.Flags += -g + C.Flags += -g + LD.Flags += -g + KEEP_SYMBOLS := 1 +endif + +ifeq ($(ENABLE_PROFILING),1) + BuildMode := $(BuildMode)+Profile + CXX.Flags := $(filter-out -fomit-frame-pointer,$(CXX.Flags)) -pg -g + C.Flags := $(filter-out -fomit-frame-pointer,$(C.Flags)) -pg -g + LD.Flags := $(filter-out -fomit-frame-pointer,$(LD.Flags)) -pg -g + KEEP_SYMBOLS := 1 endif #ifeq ($(ENABLE_VISIBILITY_INLINES_HIDDEN),1) diff --git a/autoconf/configure.ac b/autoconf/configure.ac index 6441eaa621f..59d4fa803d8 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -285,6 +285,15 @@ else AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]]) fi +dnl --enable-profiling : check whether they want to do a profile build: +AC_ARG_ENABLE(profiling, AS_HELP_STRING( + [--enable-profiling,Compile with profiling enabled (default is NO)]),,enableval="no") +if test ${enableval} = "no" ; then + AC_SUBST(ENABLE_PROFILING,[[]]) +else + AC_SUBST(ENABLE_PROFILING,[[ENABLE_PROFILING=1]]) +fi + dnl --enable-assertions : check whether they want to turn on assertions or not: AC_ARG_ENABLE(assertions,AS_HELP_STRING( [--enable-assertions,Compile with assertion checks enabled (default is YES)]),, enableval="yes")