Skip to content

Commit

Permalink
cccl: Ability to enable compiler optimization.
Browse files Browse the repository at this point in the history
MSVC has a '-O2' compiler optimization flag which makes code run
fast and is the recommended option for released code. For e.g.,
running "./tests/ovstest.exe test-cmap benchmark 1000000 3 1"
shows a 3x improvement for some cmap micro-benchmarks.

In the Visual Studio world, there is a concept of "release" build
(fast code, harder to debug) and a "debug" build (easier to debug).
The IDE provides this option and the IDE users expect something similar
for command line build.

So this commit, introduces a "--with-debug" configure option for Windows
and does not use '-O2' as a compiler option when specified. This can
be extended further if there are more compiler options that distinguish
a "release" build vs "debug" build.

Signed-off-by: Gurucharan Shetty <[email protected]>
Acked-by: Saurabh Shah <[email protected]>
  • Loading branch information
shettyg committed Sep 5, 2014
1 parent 6b846da commit b0e1bce
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 0 deletions.
4 changes: 4 additions & 0 deletions INSTALL.Windows
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ or from a distribution tar ball.
--prefix="C:/openvswitch/usr" --localstatedir="C:/openvswitch/var" \
--sysconfdir="C:/openvswitch/etc" --with-pthread="C:/pthread"

By default, the above enables compiler optimization for fast code.
For default compiler optimization, pass the "--with-debug" configure
option.

* Run make for the ported executables in the top source directory, e.g.:

% make
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ if WIN32
AM_CPPFLAGS += -I $(top_srcdir)/include/windows
AM_CPPFLAGS += -I $(top_srcdir)/datapath-windows/include
AM_CPPFLAGS += $(PTHREAD_INCLUDES)
AM_CPPFLAGS += $(MSVC_CFLAGS)
AM_LDFLAGS += $(PTHREAD_LDFLAGS)
endif

Expand Down
8 changes: 8 additions & 0 deletions build-aux/cccl
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,14 @@ EOF
linkopt="$linkopt ${slash}DEBUG"
;;

-O0)
clopt="$clopt ${slash}Ot"
;;

-O2)
clopt="$clopt ${slash}O2"
;;

-L*)
path=`echo "$1" | sed 's/-L//'`
linkopt="$linkopt ${slash}LIBPATH:$path"
Expand Down
11 changes: 11 additions & 0 deletions m4/openvswitch.m4
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,17 @@ AC_DEFUN([OVS_CHECK_WIN32],
AC_MSG_ERROR([pthread directory not specified])
]
)
AC_ARG_WITH([debug],
[AS_HELP_STRING([--with-debug],
[Build without compiler optimizations])],
[
MSVC_CFLAGS="-O0"
AC_SUBST([MSVC_CFLAGS])
], [
MSVC_CFLAGS="-O2"
AC_SUBST([MSVC_CFLAGS])
]
)
AC_DEFINE([WIN32], [1], [Define to 1 if building on WIN32.])
AH_BOTTOM([#ifdef WIN32
Expand Down

0 comments on commit b0e1bce

Please sign in to comment.