Tuesday, September 23, 2008

PGO Build Problems

Failed to Build
Last night I worked on creating a profile build of Firefox. From the comment on this bug suggest others were able to successfully to build Firefox using pgo, unfortunately I am having issues.

Initial Build Successful
I was able to complete the initial profile build of Firefox. This build adds extra instructions to Firefox to watch for: the functions that are used the most, which branches of if/else or switches get hit the most and anything else that can be used to optimize the build. The data collected gets stored in files. To gather the data, the client.mk file runs a script after the initial build to run scenario's to gather the data.

Errors and Crashes
The script I used only opened the browser. I tried to go to a website but an assertion was triggered. I chose to retry which brought me into debug mode so I chose to continue and the browser closed. The make file proceeded to compile the optimized build using the profile data but failed with errors. I tried the process again but this time I closed the browser after it opened and an assertion was triggered on closure and the optimized build failed again.

Output and Help
I have posted the build output here. I'm going to look at some newsgroups to find out if my experience is expected since others have created successful pgo builds. I might need to disable more features to be able to create a successful build. More research is needed.

1 comment:

Ted Mielczarek said...

I would not --enable-debug, that's the source of the assertions you're seeing. In an ideal world, we wouldn't hit any debug assertions, but we do. I'm not sure if PGO will play nicely with a debug-enabled build in general, given the type of optimization the compiler is doing. Try building without --enable-debug and see how it goes!