Rap-P treeherder group for Raptor power tests.
Emit separate PERFHERDER_DATA for power in addition to the performance measurements.
Use magic --host HOST_IP value to have framework load host ip from environment
variable HOST_IP.
We add support for the wasm "anyref" type to the TypedObject system,
so that TypedObjects can represent wasm objects faithfully and we can
get proper boxing/unboxing when JS writes and reads these properties.
The new type is a reference type named "WasmAnyRef" / TYPE_WASM_ANYREF
internally, and it also appears as TypedObject.WasmAnyRef in JS.
Accesses to AnyRef fields are not optimized by the JIT at the moment,
but call into intrinsic functions in the wasm subsystem for sundry
predicates and boxing and unboxing. More can be done here.
Currently the code knows that an anyref in wasm is a possibly-null
JSObject* representing either an Object or a boxed value. More
complexity will appear when we box more values in the pointer. There
are "TODO/AnyRef-boxing" comments left in the code to mark places that
must definitely be adapted.
--HG--
extra : rebase_source : a08443ee58d2f4dd5fdc52f998e30c6a4d24be21
This is stage 0 of the anyref boxing/unboxing work.
At the JS->wasm boundary, when a JS value flows into an anyref, we box
everything that isn't already an Object or null into a WasmValueBox (a
distinguished NativeObject subclass with a null prototype). At the
wasm->JS boundary, when an anyref value flows out from wasm, we unbox
it back into the proper JS value. Note that strings and atoms and
other non-Object reference types are also boxed/unboxed this way.
This patch handles boxing and unboxing for function anyref parameters
and anyref returns (on the interpreter-only stubs path, since the JIT
stubs path is not used for reference types at this time), for wasm
globals-of-anyref, and for wasm tables-of-anyref. We don't have to
handle (ref T) parameters, returns, or globals, since they are not
exported to JS so as not to expose their types. And there are no
tables of (ref T) type.
The patch does *not* handle boxing/unboxing for values flowing into
and out of anyref struct fields for the prototype GC work. Doing so
will require work on our TypedObject implementation and can be
deferred to a later patch: the current system will simply fail to box
some JS values that flow into an anyref field or will incorrectly
convert those values to JS Object types; it may also reveal the
WasmValueBox object to JS in some cases when an anyref field is read.
This is annoying but safe.
The many "TODO/AnyRef-boxing" comments and accompanying asserts left
in the code mark places that we have to update when we implement an
optimized boxing, which will use a tagged format to avoid allocation
for small immediate values (integers, booleans, undefined) and
probably strings. Generally, the TypedObjects code that needs to
change to accomodate boxing/unboxing is not tagged in this way.
--HG--
extra : rebase_source : 66e2a3916a17a8eeba64c5ec30f632aa434c0401
This patch slightly speedups origin initialization by having a special column in
the database table for current data usage.
This patch also fixes a problem with length computation of some unicode strings.
Removes RTP stat field isRemote and adds the new types remote-inbound-rtp, and remote-outbound-rtp
Differential Revision: https://phabricator.services.mozilla.com/D15068
--HG--
extra : moz-landing-system : lando
Removes RTP stat field isRemote and adds the new types remote-inbound-rtp, and remote-outbound-rtp
Differential Revision: https://phabricator.services.mozilla.com/D15068
--HG--
extra : moz-landing-system : lando
I should have added this test back in bug 590039 and bug 600428, but I didn't.
Differential Revision: https://phabricator.services.mozilla.com/D14827
--HG--
extra : moz-landing-system : lando