build config fixes for profile-guided optimization on mac

RESOLVED FIXED

Status

defect
RESOLVED FIXED
12 years ago
2 years ago

People

(Reporter: ted, Assigned: ted)

Tracking

(Blocks 1 bug)

Trunk
x86
macOS
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments, 1 obsolete attachment)

Mac needs a few tweaks for PGO.
Blocks: 419344
xpidl doesn't work at all with PGO enabled, and we don't really want it there anyway, so this uses the new NO_PROFILE_GUIDED_OPTIMIZE make var I added in some other patch.
Assignee: nobody → ted.mielczarek
Status: NEW → ASSIGNED
Attachment #305394 - Flags: review?(benjamin)
This doesn't get us all the way there.  My builds with this don't start, so I never get to the second build pass.  Might need to make MOZ_PROFILE_MODULES work with PGO builds so we can restrict the set of modules we enable this on.  sayrer says he was able to build spidermonkey with PGO and it worked.
Attachment #305394 - Flags: review?(benjamin) → review+
Attachment #305394 - Flags: approval1.9?
Comment on attachment 305394 [details] [diff] [review]
fix xpidl [checked in]

a1.9+=damons
Attachment #305394 - Flags: approval1.9? → approval1.9+
Comment on attachment 305394 [details] [diff] [review]
fix xpidl [checked in]

More investigation needed to figure out what modules are breaking us here.  We could either conditionally add makefile variables to disable PGO in certain modules, or hack --enable-profile-modules to allow us to specify a whitelist of modules for PGO.
Attachment #305394 - Attachment description: fix xpidl → fix xpidl [checked in]
This is going to be a prerequisite to using PGO on mac, since we're doing universal builds there. This would also be necessary for doing other multi-pass builds with PGO, like FF-on-XR.
Attachment #307032 - Flags: review?(benjamin)
This is also useful, since we can disable PGO on the ppc half of the build (since we won't be running that code in the profiling anyway). This will save us a clobber and rebuild on that half of the build, which is nice.
Attachment #307054 - Flags: review?(benjamin)
Comment on attachment 307032 [details] [diff] [review]
make profiledbuild work for universal builds

This isn't quite right. I can't use $(OBJDIR) there, since in the MOZ_BUILD_PROJECTS case it's explicitly set to error out. Need a little special casing for this.
Attachment #307032 - Attachment is obsolete: true
Attachment #307032 - Flags: review?(benjamin)
Right, this should actually work.
Attachment #307056 - Flags: review?(benjamin)
Attachment #307056 - Flags: review?(benjamin) → review+
Attachment #307054 - Flags: review?(benjamin) → review+
Attachment #307054 - Flags: approval1.9?
Attachment #307056 - Flags: approval1.9?
Comment on attachment 307054 [details] [diff] [review]
allow disabling PGO from configure [checked in]

a1.9=beltzner
Attachment #307054 - Flags: approval1.9? → approval1.9+
Comment on attachment 307056 [details] [diff] [review]
make profiledbuild work on universal builds [checked in]

a1.9=beltzner
Attachment #307056 - Flags: approval1.9? → approval1.9+
Attachment #307054 - Attachment description: allow disabling PGO from configure → allow disabling PGO from configure [checked in]
Attachment #307056 - Attachment description: slightly better → make profiledbuild work on universal builds [checked in]
Closing this out to get it off the radar, we'll look at additional fixes in other bugs.
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Depends on: 603574
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.