1
Description: On Linux, use -Os on normal builds and -O3 when PGO is enabled
2
Origin: http://hg.mozilla.org/mozilla-central/rev/0bf1fe7f9be1
3
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=655003
5
--- a/config/autoconf.mk.in
6
+++ b/config/autoconf.mk.in
7
@@ -315,6 +315,7 @@ WARNINGS_AS_ERRORS = @WARNINGS_AS_ERRORS
9
MOZ_OPTIMIZE = @MOZ_OPTIMIZE@
10
MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@
11
+MOZ_PGO_OPTIMIZE_FLAGS = @MOZ_PGO_OPTIMIZE_FLAGS@
12
MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@
13
MOZ_OPTIMIZE_SIZE_TWEAK = @MOZ_OPTIMIZE_SIZE_TWEAK@
15
--- a/config/config.mk
16
+++ b/config/config.mk
17
@@ -422,8 +422,13 @@ ifdef MODULE_OPTIMIZE_FLAGS
18
CFLAGS += $(MODULE_OPTIMIZE_FLAGS)
19
CXXFLAGS += $(MODULE_OPTIMIZE_FLAGS)
21
+ifneq (,$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE))
22
+CFLAGS += $(MOZ_PGO_OPTIMIZE_FLAGS)
23
+CXXFLAGS += $(MOZ_PGO_OPTIMIZE_FLAGS)
25
CFLAGS += $(MOZ_OPTIMIZE_FLAGS)
26
CXXFLAGS += $(MOZ_OPTIMIZE_FLAGS)
27
+endif # neq (,$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE))
28
endif # MODULE_OPTIMIZE_FLAGS
30
CFLAGS += $(MOZ_OPTIMIZE_FLAGS)
33
@@ -2188,10 +2188,12 @@ ia64*-hpux*)
35
# If we're building with --enable-profiling, we need a frame pointer.
36
if test -z "$MOZ_PROFILING"; then
37
- MOZ_OPTIMIZE_FLAGS="-O3 -fomit-frame-pointer"
38
+ MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer"
40
- MOZ_OPTIMIZE_FLAGS="-O3 -fno-omit-frame-pointer"
41
+ MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer"
43
+ MOZ_PGO_OPTIMIZE_FLAGS="-O3 $MOZ_FRAMEPTR_FLAGS"
44
+ MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK $MOZ_FRAMEPTR_FLAGS"
48
@@ -7186,6 +7188,7 @@ AC_SUBST(MOZ_OPTIMIZE)
49
AC_SUBST(MOZ_OPTIMIZE_FLAGS)
50
AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
51
AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK)
52
+AC_SUBST(MOZ_PGO_OPTIMIZE_FLAGS)
54
dnl ========================================================
55
dnl = Enable generation of debug symbols
56
--- a/js/src/config/autoconf.mk.in
57
+++ b/js/src/config/autoconf.mk.in
58
@@ -145,6 +145,7 @@ FAIL_ON_WARNINGS = @FAIL_ON_WARNINGS@
60
MOZ_OPTIMIZE = @MOZ_OPTIMIZE@
61
MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@
62
+MOZ_PGO_OPTIMIZE_FLAGS = @MOZ_PGO_OPTIMIZE_FLAGS@
63
MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@
64
MOZ_OPTIMIZE_SIZE_TWEAK = @MOZ_OPTIMIZE_SIZE_TWEAK@
66
--- a/js/src/config/config.mk
67
+++ b/js/src/config/config.mk
68
@@ -422,8 +422,13 @@ ifdef MODULE_OPTIMIZE_FLAGS
69
CFLAGS += $(MODULE_OPTIMIZE_FLAGS)
70
CXXFLAGS += $(MODULE_OPTIMIZE_FLAGS)
72
+ifneq (,$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE))
73
+CFLAGS += $(MOZ_PGO_OPTIMIZE_FLAGS)
74
+CXXFLAGS += $(MOZ_PGO_OPTIMIZE_FLAGS)
76
CFLAGS += $(MOZ_OPTIMIZE_FLAGS)
77
CXXFLAGS += $(MOZ_OPTIMIZE_FLAGS)
78
+endif # neq (,$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE))
79
endif # MODULE_OPTIMIZE_FLAGS
81
CFLAGS += $(MOZ_OPTIMIZE_FLAGS)
82
--- a/js/src/configure.in
83
+++ b/js/src/configure.in
84
@@ -2102,10 +2102,12 @@ ia64*-hpux*)
86
# If we're building with --enable-profiling, we need a frame pointer.
87
if test -z "$MOZ_PROFILING"; then
88
- MOZ_OPTIMIZE_FLAGS="-O3 -fomit-frame-pointer"
89
+ MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer"
91
- MOZ_OPTIMIZE_FLAGS="-O3 -fno-omit-frame-pointer"
92
+ MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer"
94
+ MOZ_PGO_OPTIMIZE_FLAGS="-O3 $MOZ_FRAMEPTR_FLAGS"
95
+ MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK $MOZ_FRAMEPTR_FLAGS"
99
@@ -4617,6 +4619,7 @@ AC_SUBST(MOZ_OPTIMIZE)
100
AC_SUBST(MOZ_OPTIMIZE_FLAGS)
101
AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
102
AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK)
103
+AC_SUBST(MOZ_PGO_OPTIMIZE_FLAGS)
105
dnl ========================================================
106
dnl = Enable generation of debug symbols
107
--- a/xpcom/io/Makefile.in
108
+++ b/xpcom/io/Makefile.in
109
@@ -51,7 +51,7 @@ MOZILLA_INTERNAL_API = 1
110
# work around bug 408258
112
ifneq ($(OS_ARCH), Darwin)
113
-MODULE_OPTIMIZE_FLAGS = -O3 -fno-strict-aliasing
114
+MODULE_OPTIMIZE_FLAGS = $(MOZ_OPTIMIZE_FLAGS) -fno-strict-aliasing