Embed Notice
HTML Code
Corresponding Notice
- Embed this notice@moshibar @Jes for example you might have a loop that goes over 12 objects, but the trace has unrolled the loop to tape which now just has those operations 12 times, and the optimizer might look at this and decide it can rearrange and pack some of the math code to NEON instructions (arm's version of simd), thus vectorizing some math heavy loops that the C compiler couldn't exploit.
of course traces are brittle and take up space, so when one of those objects is destroyed or a new one gets made it has to start inserting forks or throwing out tapes.
i'm mostly just speculating here based on what i've researched of JITs though i've never worked on an emulator for complex chips