Of course, it would be more uniform if we didn't use a different calling convention for RecordWrite, but it's important for both performance on the fast-path and generated code size: By using a mostly callee-save calling convention, we can avoid many spills and unspills in generated code and do them instead in the slow-path of the RecordWrite builtin. We don't generally support a callee-saved calling convention since it's difficult to support that in the presence of GC-triggering calls, but RecordWrite can never trigger allocation, so it's easier to do a callee-saved calling convention there. The restricted register allocation is essentially a hack to ensure that most registers are not modified by RecordWrite while still using Turbofan to generate the code.
On Mon, Dec 2, 2019 at 2:35 PM Yang Guo <[email protected]> wrote: > +Michael Stanton <[email protected]> +Tobias Tebbi <[email protected]> > +Georg > Neis <[email protected]> > > On Mon, Dec 2, 2019 at 4:42 AM <[email protected]> wrote: > >> Currently, the Store IR has the barrier built-in, like >> Store[(kRepTaggedSigned : NoWriteBarrier)](10, 43, 46, 36, 59). >> And rely one the OutOfLineRecordWrite to lower the barrier. >> >> Should we change it into simple Store without any built-in, and call >> RecordWrite builtin using turbofan? >> That approach will make RecordWrite's calling convention more consistent, >> rather than saving all the float-points registers itself or restrict the >> register allocation. >> >> >> -- >> -- >> v8-dev mailing list >> [email protected] >> http://groups.google.com/group/v8-dev >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/v8-dev/70d469ee-4ab7-452e-a5f8-04a80c438a5c%40googlegroups.com >> <https://groups.google.com/d/msgid/v8-dev/70d469ee-4ab7-452e-a5f8-04a80c438a5c%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/CAN54oN7J16igemDAa1iJMUeR_ueGOqeV0hTucS5gku1%3DP8z%2B3w%40mail.gmail.com.
