Do a win32 build with intel compiler

RESOLVED FIXED

Status

RESOLVED FIXED
10 years ago
5 years ago

People

(Reporter: catlee, Assigned: catlee)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

10 years ago
This bug is to track the progress of attempting to do a win32 build using Intel's compiler, version 11.
(Assignee)

Comment 1

10 years ago
So far to get this working I've had to edit js/src/Makefile to add the following:

CXX:=/d/Intel/Compiler/11.0/072/cpp/bin/ia32/icl
CC:=$(CXX)
LD:=/d/Intel/Compiler/11.0/072/cpp/bin/ia32/xilink
CFLAGS:=-I/d/Intel/Compiler/11.0/072/cpp/include $(CFLAGS)
LDFLAGS+=-SAFESEH:NO 
LIB:=D:/Intel/Compiler/11.0/072/cpp/lib/ia32;$(LIB)
export LIB

Comment 2

10 years ago
please grab the cflags/cppflags from

https://bugzilla.mozilla.org/show_bug.cgi?id=461808

and add --static-intel.

Comment 3

10 years ago
-ipo and PGO (-prof-gen and -prof-use)
PGO is going to be harder, until someone fixes the build system to know what ICC is on Windows.

Comment 5

10 years ago
-ipo and pgo are essential for icc performance, in my experience with building and benchmarking the shell on macosx. Essential as in > 20% speedup.
(Assignee)

Comment 6

10 years ago
If somebody can give me the steps to run by hand, then I can do a manually built PGO build.

Comment 7

10 years ago
https://bugzilla.mozilla.org/show_bug.cgi?id=461808 describes how I did a PGO build for the shell. The browser should be similar.

Comment 8

10 years ago
PGO is something we want in the end, but an ICC non-pgo build is a useful thing to have as a start. That may uncover bugs, and we'll get to see whether computed goto is a huge deal.

Comment 9

10 years ago
The plan is to use ICC initially just for TraceMonkey.

Comment 10

10 years ago
#8: yeah, just don't expect the big speedups until we enable ipo and pgo. Is this a mixed build? My understand was the entire build is icc now.
(Assignee)

Comment 11

10 years ago
(In reply to comment #10)
> #8: yeah, just don't expect the big speedups until we enable ipo and pgo. Is
> this a mixed build? My understand was the entire build is icc now.

This is a mixed build.  Just JS is being done with ICC.

Comment 12

10 years ago
Oh ok. Great. We should be able to use xpcshell then to automate generation of the PGO profile by running sunspider (see ./bench.sh script).
(Assignee)

Comment 13

10 years ago
Created attachment 365882 [details] [diff] [review]
patch to compile js with icl on windows
(Assignee)

Comment 14

10 years ago
This is still dynamically linking libmmd.dll.

http://people.mozilla.org/~catlee/firefox-3.2a1pre.en-US.win32.zip

I generated this build by:
make tier_js USE_INTEL_ICC=1 MOZ_PROFILE_GENERATE=1
open firefox, run sunspider test
make -C js/src clean
make tier_js USE_INTEL_ICC=1 MOZ_PROFILE_USE=1
(Assignee)

Comment 15

10 years ago
I'm seeing some mochitest failures with the latest build.  Here's what 'grep UNEXPECTED-FAIL *.log' gives after running the test suites:

mochitest-chrome.log:1289 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/toolkit/mozapps/downloads/tests/chrome/test_multi_select.xul | Test timed out.
mochitest-chrome.log:1419 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/widget/tests/test_bug462106.xul | Data successfully copied before entering the private browsing mode - got "random number: 0.28187537570318555", expected null
mochitest-chrome.log:1420 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/widget/tests/test_bug462106.xul | Copied data persisted after leaving the private browsing mode - got "random number: 0.28187537570318555", expected null
mochitest-chrome.log:1421 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/chrome/widget/tests/test_bug462106.xul | Data successfully copied inside the private browsing mode - got "another random number: 0.054455582700912775", expected "random number: 0.28187537570318555"
mochitest-plain.log:42101 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<ol><li id=\"paste_here\">X</li></ol>", expected "<ol><li id=\"paste_here\">X<dl><dd>Hello Kitty</dd></dl></li></ol>"
mochitest-plain.log:42102 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<ol><li id=\"paste_here\">X</li></ol>", expected "<ol><li id=\"paste_here\">X</li><li>Hello Kitty</li></ol>"
mochitest-plain.log:42103 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<ol><li id=\"paste_here\">X</li></ol>", expected "<ol><li id=\"paste_here\">X</li><li>Hello Kitty</li></ol>"
mochitest-plain.log:42104 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<ol><li id=\"paste_here\">X</li></ol>", expected "<ol><li id=\"paste_here\">X</li><li>Hello Kitty</li></ol>"
mochitest-plain.log:42105 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<ol><li id=\"paste_here\">X</li></ol>", expected "<ol><li id=\"paste_here\">X</li><li>Hello</li><ul><li>Kitty</li></ul></ol>"
mochitest-plain.log:42106 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<dl><dd id=\"paste_here\">X</dd></dl>", expected "<dl><dd id=\"paste_here\">X</dd><dd>Hello</dd><dd>Kitty</dd></dl>"
mochitest-plain.log:42107 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<dl><dt id=\"paste_here\">X</dt></dl>", expected "<dl><dt id=\"paste_here\">X</dt><dd>Hello</dd><dd>Kitty</dd></dl>"
mochitest-plain.log:42108 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<dl><dd id=\"paste_here\">X</dd></dl>", expected "<dl><dd id=\"paste_here\">X</dd><dt>Hello</dt><dd>Kitty</dd></dl>"
mochitest-plain.log:42109 ERROR TEST-UNEXPECTED-FAIL | /tests/editor/libeditor/html/tests/test_bug478725.html |  - got "<pre id=\"paste_here\">Hello </pre>", expected "<pre id=\"paste_here\">Hello Kitty</pre>"

I also hit a crash during one test, but it hasn't occurred again in subsequent test runs.
(Assignee)

Comment 16

10 years ago
Closing this one out for now.

icc builds were produced, but didn't show huge performance gains over msvc's PGO build.
Status: NEW → RESOLVED
Last Resolved: 10 years ago
Resolution: --- → FIXED

Comment 17

10 years ago
What is the status of the MacOSX builds?
(Assignee)

Comment 18

10 years ago
See bug 483283 for work on mac builds with icc.

Comment 19

10 years ago
(In reply to comment #16)

It would be good to document the current performance comparison, so it can be  verified and also be used for further potential gains from icc.
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.