gecko-dev/ipc
Nathan Froyd 37cbcb454b Bug 1397823 - part 4 - reduce codesize for IPDL IPC::Message creation; r=kanru
Each protocol in IPDL has a bunch of autogenerated functions that
instantiate IPC::Message with various parameters.  Each of these
functions, then:

1) Pays the cost of calling malloc()
2) Setting up various parameters
3) Calling IPC::Message()

There's no reason that we should be duplicating 1) across all of these
autogenerated functions.  In step 2), several of the parameters we're
setting up are common across all or nearly all calls: the message
segment size is almost always zero, and we're always indicating that
IPDL-generated messages should be recorded in telemetry.

Instead of duplicating that code several thousand times, we can add a
small helper function that takes the only interesting parameters for an
IPDL message.  This helper function can then deal with calling malloc in
a single place and setting up the common parameters.  For messages that
require a custom segment size, we'll have to use the old scheme, but
such messages are uncommon.

The previous changes are not required for this scheme to work, but they
do help significantly, as the helper function (Message::IPDLMessage) can
now take four parameters, which ensures that its arguments are passed
solely in registers on Win64 and ARM.  The wins from this change are
also larger than they would be without the previous parts: ~100K on
x86-64 Linux (!)  and ~80K on ARM Android.
2017-09-15 08:06:11 -04:00
..
app Bug 1380690 - Part 1 - Save repo and object dir paths in Mac bundle Info.plist files. r=gps 2017-07-17 17:13:18 -07:00
chromium Bug 1397823 - part 4 - reduce codesize for IPDL IPC::Message creation; r=kanru 2017-09-15 08:06:11 -04:00
contentproc Bug 1391803 - Use nsStringFwd.h for forward declaring string classes. r=froydnj 2017-08-16 16:48:52 -07:00
dbus Bug 1389598 - Part 4: Remove remaining gonk refs. r=froydnj 2017-08-11 17:45:18 -07:00
glue Bug 1397823 - part 3 - do a better job setting IPC::Message flags; r=kanru 2017-09-15 08:06:11 -04:00
ipdl Bug 1397823 - part 4 - reduce codesize for IPDL IPC::Message creation; r=kanru 2017-09-15 08:06:11 -04:00
mscom merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-09-12 11:35:15 +02:00
ril Bug 1382099 - Remove MOZ_WIDGET_GONK from ipc/. r=jld. 2017-07-21 10:45:49 +10:00
testshell Bug 1393790 part 1 - Remove JS_STUBGETTER and JS_STUBSETTER. r=jorendorff 2017-08-28 10:39:57 +02:00
moz.build Bug 1357323 - Remove support for gonk in the build system. r=gps 2017-04-18 16:56:09 +09:00
pull-chromium.py