Closed Bug 1594961 Opened 1 year ago Closed 1 year ago

Split up vm/Stack.h so that touching jit/*.h doesn't have to essentially rebuild the world


(Core :: JavaScript Engine, task)

Not set



Tracking Status
firefox72 --- fixed


(Reporter: Waldo, Assigned: Waldo)



(1 file)

vm/Stack.h depends on jit/Registers.h which depends on jit/*/Architecture-*.h and jit/IonTypes.h. Therefore it's pretty easy to touch the wrong jit/ header and end up having to rebuild the world...all because js::jit::JitActivation (a class with very few users) contains a single field of JIT-related type.

This is silly.

vm/Stack.h should be split up a bit so the JIT-specific parts are in a narrow header that only its few users need depend upon.

Debatably, less splitting-up could have been done in that patch. But it seems better to me to have more smaller files, generally, and this is how it ended up end of day.

This builds in FPUF=1 mode for me locally, Linux 64-bit. I hazarded guesses at the files that probably need changing on other platforms. A try-push will have to be the final arbiter:

(Note, however, that this patch as phabricator sees it was a version of that patch purely atop mozilla-central.)

I tried to keep relative locations of things the same, and I tried to hg cp existing files wherever possible -- or hg cp --after --force if I forgot initially. If I missed one somewhere, please do point it out.

Pushed by
Split FrameIter-related functionality out of vm/Stack.h to vm/FrameIter.h, Activation-related functionality to vm/Activation.h, and JitActivation functionality to vm/JitActivation.h.  r=jandem CLOSED TREE
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
You need to log in before you can comment on or make changes to this bug.