Closed
Bug 677191
Opened 14 years ago
Closed 14 years ago
PGO has very few profile data on incremental builds - NSPR part
Categories
(NSPR :: NSPR, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
4.9
People
(Reporter: glandium, Assigned: glandium)
References
Details
Attachments
(1 file, 2 obsolete files)
+++ This bug was initially created as a clone of Bug #676252 +++
We don't rebuild the objects that are already in the objdir, and they are final objects, not ones with instrumentation... (doh)
So we end up running the profile without instrumentation in most object files.
The easy solution would be to clobber before the profile generate pass, but that would be a huge waste of time. I think an easy way to avoid this problem, while keeping fast(ish) builds is to change the object file extension in one of the passes so that we effectively never overwrite object files from the profile generate pass in the profile use pass. That would double disk usage for object files, though.
On the other hand, we could probably skip debugging symbols in the profile generate pass, which would make the object files smaller. (though they might be useful in the case running firefox for the profile crashes)
Assignee | ||
Comment 1•14 years ago
|
||
Attachment #551434 -
Flags: review?(ted.mielczarek)
Assignee | ||
Updated•14 years ago
|
Assignee: wtc → mh+mozilla
Updated•14 years ago
|
Target Milestone: --- → 4.9
Comment 2•14 years ago
|
||
Comment on attachment 551434 [details] [diff] [review]
Use a different object file extension for the first PGO build pass with GCC. NSPR part
Review of attachment 551434 [details] [diff] [review]:
-----------------------------------------------------------------
::: nsprpub/config/config.mk
@@ +177,5 @@
> RELEASE_LIB_DIR = $(RELEASE_DIR)/$(BUILD_NUMBER)/$(OBJDIR_NAME)/lib
> +
> +ifdef MOZ_PROFILE_GENERATE
> +ifdef NS_USE_GCC
> +OBJ_SUFFIX := i_o
As with the other patch, this could stand a comment.
Attachment #551434 -
Flags: review?(ted.mielczarek) → review+
Assignee | ||
Comment 3•14 years ago
|
||
Updated with a comment. Ted, could you land this on nspr?
Assignee | ||
Updated•14 years ago
|
Attachment #551434 -
Attachment is obsolete: true
Assignee | ||
Comment 4•14 years ago
|
||
Attachment #554315 -
Flags: review?(ted.mielczarek)
Assignee | ||
Updated•14 years ago
|
Attachment #553398 -
Attachment is obsolete: true
Comment 5•14 years ago
|
||
Comment on attachment 554315 [details] [diff] [review]
Use a different object file extension for the first PGO build pass with GCC. NSPR part
Review of attachment 554315 [details] [diff] [review]:
-----------------------------------------------------------------
::: nsprpub/config/rules.mk
@@ +381,5 @@
> +ifdef NS_USE_GCC
> +# Force rebuilding libraries and programs in both passes because each
> +# pass uses different object files.
> +$(PROGRAM) $(SHARED_LIBRARY) $(LIBRARY): pgo.relink
> +.PHONY: pgo.relink
I think I'd prefer if you used FORCE here, since we use that in the Moz build system, and pgo.relink is used as an actual file on Windows.
Attachment #554315 -
Flags: review?(ted.mielczarek) → review+
Assignee | ||
Comment 6•14 years ago
|
||
Please feel free to change that when you land it on NSPR.
Comment 7•14 years ago
|
||
Checking in config/autoconf.mk.in;
/cvsroot/mozilla/nsprpub/config/autoconf.mk.in,v <-- autoconf.mk.in
new revision: 1.44; previous revision: 1.43
done
Checking in config/config.mk;
/cvsroot/mozilla/nsprpub/config/config.mk,v <-- config.mk
new revision: 3.35; previous revision: 3.34
done
Checking in config/rules.mk;
/cvsroot/mozilla/nsprpub/config/rules.mk,v <-- rules.mk
new revision: 3.83; previous revision: 3.82
done
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•