Description[turbofan] Split CodeGenerator::GenerateCode into AssembleCode and FinishCodeObject.
This CL splits CodeGenerator::GenerateCode into two new functions:
AssembleCode and FinishCodeObject. AssembleCode does not access or
modify the JS heap, which means that AssembleCode can be executed on
background threads. FinishCodeObject allocates the generated code object
on the JS heap and therefore has to be executed on the main thread.
Implementation details:
The GenerateCode function has been split just before out-of-line code is
assembled. The reason is that code stubs may be generated when
out-of-line code is assembled, which potentially allocates these code
stubs on the heap.
- Parts of initialization of the CodeGenerator has been moved from the
constructor to an Initialize function so that we can instantiate an empty
CodeGenerator object in PipelineData.
R=bmeurer@chromium.org, mstarzinger@chromium.org, titzer@chromium.org
Committed: https://crrev.com/03058a2187e32cc4080612181802086527c116a2
Cr-Commit-Position: refs/heads/master@{#38604}
Patch Set 1 #
Total comments: 18
Patch Set 2 : Use the outer zone for code generation instead of the instruction zone for now. #Patch Set 3 : Extend parallel compilation of wasm in a separate CL #
Messages
Total messages: 22 (14 generated)
|