Closed Bug 1296642 Opened 8 years ago Closed 8 years ago

avoid compiling {Read,Write}Sentinel calls in non-sentinel checking builds

Categories

(Core :: IPC, defect)

49 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla51
Tracking Status
firefox49 + fixed
firefox50 + fixed
firefox51 --- fixed

People

(Reporter: froydnj, Assigned: froydnj)

References

Details

(Keywords: regression)

Attachments

(1 file)

Pickle::{Read,Write}Sentinel were introduced as a way of catching
problems with corrupted IPDL messages at the point of message
serialization, rather than the point of use of the bad data.  The
checking itself is only done on debug or non-release builds, but the
calls to the functions are compiled in regardless of whether checking is
done.  While LTO could plausibly optimize away all the calls, we don't
have LTO on all of our platforms, particularly mobile.  Therefore, we
should move the non-checking versions of the calls inline, so the
compiler can eliminate those calls entirely, even in non-LTO builds.
This change saves ~280K of .text on x86-64 Linux.
Attachment #8782932 - Flags: review?(wmccloskey)
Attachment #8782932 - Flags: review?(wmccloskey) → review+
[Tracking Requested - why for this release]: This is a decent-sized size regression, which is particularly important for our Android builds.
Pushed by nfroyd@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/9140ec44d27b
avoid compiling {Read,Write}Sentinel calls in non-sentinel checking builds; r=billm
Blocks: fatfennec
https://hg.mozilla.org/mozilla-central/rev/9140ec44d27b
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla51
Comment on attachment 8782932 [details] [diff] [review]
avoid compiling {Read,Write}Sentinel calls in non-sentinel checking builds

Approval Request Comment
[Feature/regressing bug #]: bug 1262671
[User impact if declined]: larger binaries, slightly worse performance
[Describe test coverage new/current, TreeHerder]: e10s tests run this code pretty comprehensively.
[Risks and why]: This is a low-risk patch; it's essentially restoring us to the same code we produce on the 48 branch, and eliminating a few no-op function calls.
[String/UUID change made/needed]: none
Attachment #8782932 - Flags: approval-mozilla-beta?
Attachment #8782932 - Flags: approval-mozilla-aurora?
Comment on attachment 8782932 [details] [diff] [review]
avoid compiling {Read,Write}Sentinel calls in non-sentinel checking builds

Recent regression, let's uplift to Aurora50, has stabilized on Nightly for a few days.
Attachment #8782932 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment on attachment 8782932 [details] [diff] [review]
avoid compiling {Read,Write}Sentinel calls in non-sentinel checking builds

Fix for regression from 49, let's uplift this for beta 7.
Attachment #8782932 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Version: unspecified → 49 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: