The Pale Moon Project - Custom-built and optimized Firefox browsers for Windows Operating Systems

[ <-- Back ]

CC bug 20110410

Crash on startup with Win opt PGO/SSE2. Other crashes/instabilities.
Reported in Bugzilla as Bug 595653, marked "WORKSFORME" - doesn't work for me, though ;)
Seems to also be the root cause of 20110406-PRBug. (unrelated, even completely disabling SSE2 fr the entire JS engine didn't fix that)

Reporters: n/a

Affects the following:

Builds: All 4.0 builds except x64.

Cause: Compiler issues for the new Jägermonkey engine when using PGO combined with SSE2.

Details:
The linking phase of javascript when combining PGO with SSE2 causes memory access errors in certain conditions in the Jägermonkey JS engine. This is (yet another) PGO compiler bug in MSVC :/
As a result, full optimizations created an instantly crashing browser (memory access error).

Solution:
Re-build, replacing arch:SSE2 by arch:SSE specifically for the JS module RegexCompiler.
This will cause a small performance hit compared to full SSE2 optimizations, but is not going to be noticeable in a real-world environment (not even in tests, most likely).

Implementation:
Makefile edit in /js/src/Makefile.in:
@end:
+# Optimizer bug with MSVC PGO (Bug 595653)
+ifeq (WINNT_1,$(OS_ARCH)_$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE))
+RegexCompiler.$(OBJ_SUFFIX): RegexCompiler.cpp $(GLOBAL_DEPS)
+    $(REPORT_BUILD)
+    @$(MAKE_DEPS_AUTO_CXX)
+    $(ELOG) $(CCC) $(OUTOPTION)$@ -c $(COMPILE_CXXFLAGS:arch:SSE2=arch:SSE) $(_VPATH_SRCS)
+endif

[ <-- Back ]

Firefox, Mozilla Firefox and Mozilla are registered trademarks of the Mozilla Corporation.
Site and contents © 2009-2014 Moonchild Productions - All rights reserved
Pale Moon's distribution is subject to the following redistribution policy