Clean-up jit headers
Categories
(Core :: JavaScript Engine: JIT, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox83 | --- | affected |
People
(Reporter: anba, Assigned: anba)
References
Details
Attachments
(73 files)
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details |
Clean-up jit headers by:
- Remove unnecessary includes resp. replace includes with forward declarations.
- Resolve transitive includes.
- Disentangle VM headers from jit headers.
- Split up headers with disjunctive dependencies.
Assignee | ||
Comment 1•4 years ago
|
||
"jit/BitSet.h" can forward declare TempAllocator
instead of including
"jit/JitAllocPolicy.h".
Also adds missing includes to BitSet.h and BitSet.cpp.
Assignee | ||
Comment 2•4 years ago
|
||
"jit/BytecodeAnalysis.h" doesn't need to be included in these files.
Depends on D92384
Assignee | ||
Comment 3•4 years ago
|
||
Replace includes with forward declarations in "jit/Bailouts.h".
Depends on D92385
Assignee | ||
Comment 4•4 years ago
|
||
Moves most includes from "BaselineDebugModeOSR.h" into its cpp file.
Depends on D92386
Assignee | ||
Comment 5•4 years ago
|
||
These structs are only needed within "VMFunctions.cpp". Moving them will
allow to reduce the includes in "VMFunctions.h" in a later patch.
Depends on D92387
Assignee | ||
Comment 6•4 years ago
|
||
Use sizeof...
from C++17 instead of manually counting the template parameters.
Depends on D92388
Assignee | ||
Comment 7•4 years ago
|
||
AutoDetectInvalidation
needs to include "jit/IonScript.h". And because
"jit/IonScript.h" has many (transitive) includes, everyone including
"jit/VMFunctions.h" (e.g. "jit/MacroAssembler.h") ends up with a large include
list.
Depends on D92389
Assignee | ||
Comment 8•4 years ago
|
||
Additional changes needed:
jit/IonScript.h:
- Include "gc/Barrier.h" for
HeapPtrJitCode
,HeapPtrObject
,PreBarrieredValue
.
jit/Sink.cpp:
- Include "jit/IonOptimizationLevels.h" for
jit::OptimizationInfo
.
vm/JSScript-inl.h and vm/TypeInference-inl.h:
- Include "jit/IonScript.h" for
jit::IonScript
.
wasm/WasmIonCompile.cpp:
- Include "jit/IonOptimizationLevels.h" for
jit::OptimizationLevel
andjit::IonOptimizations
.
Additional clean-up for missing/extra "jit/VMFunctions.h" includes:
jit/CacheIRCompiler.cpp and jit/IonIC.cpp:
- Call various functions defined in "jit/VMFunctions.h".
jit/JSJitFrameIter.cpp:
- Add "jit/VMFunctions.h" because
jit::VMFunctionData
methods are called.
jit/MIR.cpp:
- Calls
GetIndexFromString
which is defined in "jit/VMFunctions.h".
jit/shared/CodeGenerator-shared.h:
- Doesn't need to include "jit/VMFunctions.h".
vm/RegExpObject.cpp:
- Doesn't need to include "jit/VMFunctions.h".
Depends on D92390
Assignee | ||
Comment 9•4 years ago
|
||
Depends on D92392
Assignee | ||
Comment 10•4 years ago
|
||
Forward declare TempAllocator
instead of including "jit/JitAllocPolicy.h".
Depends on D92394
Updated•4 years ago
|
Assignee | ||
Comment 11•4 years ago
|
||
mozilla/Assertions.h:
- For
MOZ_ASSERT
.
mozilla/Likely.h:
- For
MOZ_LIKELY
andMOZ_UNLIKELY
.
mozilla/TemplateLib.h:
- For
mozilla::tl::MulOverflowMask
.
stddef.h:
- For
size_t
.
string.h:
- For
memset
andmemcpy
.
js/Utility.h:
- For
ShouldFailWithOOM
,CalculateAllocSize
, andJS_OOM_POSSIBLY_FAIL_BOOL
.
Assignee | ||
Comment 12•4 years ago
|
||
AutoJitContextAlloc
requires to include "vm/JSContext.h", so if we split it
from "jit/JitAllocPolicy.h", headers including "jit/JitAllocPolicy.h" no longer
also include "vm/JSContext.h" (and all its dependencies).
Additional changes needed:
irregexp/RegExpShim.h:
- Include "vm/JSContext.h" to call
JSContext::hasPendingInterrupt()
. - Add missing
js
qualifiers forCheckRecursionLimitDontReport
. (Not sure how this even worked before.)
jit/BaselineJIT.h:
- Include "jit/JitContext.h" for
MethodStatus
andJitExecStatus
.
jit/Safepoints.h:
- Add missing forward declaration for
SafepointIndex
.
jit/ValueNumbering.h:
- Include "js/Vector.h" for
js::Vector
.
jit/WarpSnapshot.h:
- Add missing forward declarations for
ArgumentsObject
,CallObject
, andLexicalEnvironmentObject
.
shared/Assembler-shared.h:
- Include "jit/JitContext.h" for
GetJitContext()
. - Add missing forward declaration for
FrameType
.
Depends on D92417
Assignee | ||
Comment 13•4 years ago
|
||
Forward declare {Native}TemplateObject
instead of including the header.
Additional changes needed:
jit/CacheIRCompiler.cpp:
- Add missing include for "jit/TemplateObject.h".
Depends on D92418
Assignee | ||
Comment 14•4 years ago
|
||
This struct is no longer used.
Depends on D92419
Assignee | ||
Comment 15•4 years ago
|
||
Replace the JSContext*
parameter with LifoAlloc*
so we don't need to
include "vm/JSContext.h" in "AutoJitContextAlloc.h", where it ends up including
"vm/JSContext.h" in "MacroAssembler.h".
With this change "MacroAssembler.h" no longer (transitively) includes "vm/JSContext.h"!
Depends on D92420
Assignee | ||
Comment 16•4 years ago
|
||
Depends on D92421
Assignee | ||
Comment 17•4 years ago
|
||
Remove unnecessary includes to "jit/Linker.h".
Depends on D92422
Assignee | ||
Comment 18•4 years ago
|
||
AutoWritableJitCode
requires to access JSContext
, so if we split it from
"jit/JitRealm.h", we can avoid another "vm/JSContext.h" dependency in an often
included jit header.
Depends on D92423
Assignee | ||
Comment 19•4 years ago
|
||
The comment no longer applies after the refactoring from bug 1407607.
Depends on D92424
Assignee | ||
Comment 20•4 years ago
|
||
EnterJitData
is nowadays only used in "jit/BaselineJIT.cpp".
Depends on D92425
Assignee | ||
Comment 21•4 years ago
|
||
Fully qualifies JS::Zone
to avoid pulling in "NamespaceImports.h".
Assignee | ||
Comment 22•4 years ago
|
||
GeckoProfilerRuntime
is used within "jit/MIRGenerator.h", which in turn is
included in many places. Therefore let's reduce and clean-up the includes for
"vm/GeckoProfiler.h", so that "jit/MIRGenerator.h" has a smaller footprint.
Fully qualifies JS::UniqueChars
to avoid pulling in "NamespaceImports.h".
Note:
"jit/MIRGenerator.h" currently indirectly includes GeckoProfilerRuntime
through "vm/JSContext.h" -> "vm/Runtime.h".
Depends on D92567
Assignee | ||
Comment 23•4 years ago
|
||
Additional changes needed:
jit/IonCompileTask.h:
- Add missing forward declaration of
WarpSnapshot
.
Depends on D92568
Assignee | ||
Comment 24•4 years ago
|
||
Depends on D92569
Assignee | ||
Comment 25•4 years ago
|
||
Depends on D92570
Assignee | ||
Comment 26•4 years ago
|
||
The MIRGenerator*
arguments is no longer needed after the refactorings from
bug 1646378.
After removing the MIRGenerator*
arguments, also remove the include for
"jit/MIRGenerator.h".
Depends on D92571
Assignee | ||
Comment 27•4 years ago
|
||
JitRuntime
depends on "vm/Runtime.h", so when we split it from "jit/JitRealm.h",
headers including "jit/JitRealm.h" no longer transitively include all of
"vm/Runtime.h".
Depends on D92572
Assignee | ||
Comment 28•4 years ago
|
||
Move the access to JitRuntime::preBarrier()
out of the header, so we don't
need to include "jit/JitRuntime.h", because that means also including the
whole of "vm/Runtime.h".
Additional changes needed:
jit/MacroAssembler.h:
- Forward declare
CompileZone
.
jit/MacroAssembler-inl.h:
- Include "jit/CompileWrappers.h" for
CompileZone::addressOfNeedsIncrementalBarrier()
.
Depends on D92574
Assignee | ||
Comment 29•4 years ago
|
||
Similar to part 27, also split JitZone from "jit/JitRealm.h".
Depends on D92575
Assignee | ||
Comment 30•4 years ago
|
||
After part 27 and part 29, the necessary includes for "jit/JitRealm.h" are easier
to determine and a lot shorter.
Additional changes needed:
jit/IonBuilder.h
- Include "builtin/TypedObject.h" for
ScalarTypeDescr
.
jit/MIR.h:
- Include "jit/CompileInfo.h" for
InlineScriptTree
andBytecodeSite
.
jit/MacroAssembler.h:
- Move
MacroAssembler::loadJitActivation()
out-of-line, this function is only used forCHECK_OSIPOINT_REGISTERS
. - Move
MacroAssembler::loadTraceLogger()
out-of-line, this function is only used forJS_TRACE_LOGGING
. - (These two changes remove the "vm/JSContext.h" dependency from "jit/MacroAssembler.h".)
jit/none/MacroAssembler-none.h:
- Forward declare
CompactBufferReader
.
jit/MacroAssembler-inl.h:
- Include "jit/JitFrames.h" for
FRAMESIZE_SHIFT
,MakeFrameDescriptor
,ExitFrame{Layout,Type}
,ExitFooterFrame
, and variousCalleeToken
constants.
jit/BaselineIC.h:
- Forward declare
ICScript
.
jit/arm64/Assembler-arm64.h
- Include "jit/CompactBuffer.h" for
CompactBufferWriter
.
irregexp/RegExpNativeMacroAssembler.cpp:
- Include "vm/Realm.h" for
Realm::ensureJitRealmExists
.
wasm/WasmCode.h:
- Include "gc/Memory.h" for
gc::SystemPageSize()
.
wasm/WasmModule.h:
- Forward declare
JSTelemetrySender
. - Include "wasm/WasmJS.h" for
WasmTableObject
,WasmGlobalObject
, andWasmMemoryObject
.- Needed for
WasmTableObjectVector
resp.WasmGlobalObjectVector
. WasmMemoryObject
needed forConvertToBase
viaTraceRoot
.
- Needed for
wasm/WasmCompile.h:
- Include "vm/Runtime.h" for
JSTelemetrySender()
.
wasm/WasmCompile.cpp:
- Include "vm/Realm.h" for
Realm::debuggerObservesAsmJS()
.
wasm/WasmGenerator.cpp:
- Include "vm/TraceLogging.h" for
TraceLoggerForCurrentThread
andAutoTraceLog
. - Include "vm/TraceLoggingTypes.h" for
TraceLogger_WasmCompilation
.
Depends on D92576
Assignee | ||
Comment 31•4 years ago
|
||
Remove unnecessary resp. no longer needed includes to "jit/JitRealm.h" after
the refactorings from the last parts.
Additional changes needed:
- And add "jit/JitRealm.h" includes in some places which previously only
indirectly included it through "Assembler-<platform>.h".
Depends on D92577
Assignee | ||
Comment 32•4 years ago
|
||
The platform-specific assemblers no longer need to include "jit/JitFrames.h".
Additional changes needed:
jit/arm/Simulator-arm.cpp:
- Include "vm/JSContext.h" for
TlsContext.get()
.
Assignee | ||
Comment 33•4 years ago
|
||
Depends on D92623
Assignee | ||
Comment 34•4 years ago
|
||
JS::Handle
and JS::HandleFunction
were fully qualified to avoid pulling in
the "NamespaceImports.h" header.
Depends on D92624
Assignee | ||
Comment 35•4 years ago
|
||
Depends on D92625
Assignee | ||
Comment 36•4 years ago
|
||
Depends on D92626
Assignee | ||
Comment 37•4 years ago
|
||
Depends on D92627
Assignee | ||
Comment 38•4 years ago
|
||
Replace the "jit/BaselineFrame.h" includes in "SharedICHelpers-<platform>.h"
with includes to "jit/JitFrames.h" (for FRAMESIZE_SHIFT
).
Additional changes needed:
jit/<platform>/SharedICHelpers-<platform>-inl.h:
- Add missing "jit/BaselineFrame.h" include.
jit/<platform>/Trampoline-<platform>.cpp:
- Add missing "jit/BaselineFrame.h" include.
jit/WarpBuilder.cpp:
- Add missing "jit/BaselineFrame.h" include.
Also changed:
vm/Activation-inl.h
- Remove unnecessary "jit/BaselineFrame.h" include.
Depends on D92628
Assignee | ||
Comment 39•4 years ago
|
||
Split CalleeTokenTag
functions from "jit/JitFrames.h" into a new
"jit/CalleeToken.h" header. Also move CalleToken
itself from
"jit/JSJitFrameIter.h" in the new header.
This avoids pulling in the other headers included in "jit/JitFrames.h" to
the users of CalleeToken{Tag}
.
Also:
- Remove the unused function
CalleeTokenIsModuleScript
. ScriptFromCalleeToken
stays in "jit/JitFrames.h" for now to avoid pulling
in "vm/Script.h".
Additional changes needed:
vm/SavedFrame.h:
- Include "vm/NativeObject.h" for
NativeObject
.
Depends on D92629
Assignee | ||
Comment 40•4 years ago
|
||
Replace the include with a forward declaration of InlineScriptTree
.
Depends on D92630
Assignee | ||
Comment 41•4 years ago
|
||
Assignee | ||
Comment 42•4 years ago
|
||
"jit/MIR.h" needs to access InlineScriptTree
and BytecodeSite
. By splitting
both classes from "jit/CompileInfo.h" we can avoid pulling in the additional
headers from "jit/CompileInfo.h" into "jit/MIR.h". This is useful because
"jit/MIR.h" is (transitively) included in many other headers.
Depends on D92731
Assignee | ||
Comment 43•4 years ago
|
||
Non-exhaustive update to add missing includes and forward declarations. Also
removes two unnecessary includes.
Additional changes needed:
jit/BaselineDebugModeOSR.cpp
- Include "jit/Ion.h" for
jit::Invalidate()
.
jit/shared/CodeGenerator-shared.h:
- Include "vm/TraceLoggingTypes.h" for
TraceLoggerTextId
.
jit/IonCompileTask.cpp:
- Include "jit/Ion.h" for
jit::CompileBackEnd()
andjit::LinkIonScript()
.
wasm/WasmIonCompile.cpp:
- Include "jit/Ion.h" for
jit::CompileBackEnd()
andjit::LinkIonScript()
.
Depends on D92732
Assignee | ||
Comment 44•4 years ago
|
||
SafepointIndex
and OsiIndex
only need a handful of dependencies, so split
them from the larger "jit/JitFrames.h" header.
Depends on D92733
Assignee | ||
Comment 45•4 years ago
|
||
Split ScriptFromCalleeToken
from "jit/JitFrames.h" to avoid the dependency
on "vm/JSFunction.h".
Depends on D92734
Assignee | ||
Comment 46•4 years ago
|
||
GetTopJitJSScript()
is only used in two files and never in performance
critical spots, so it's okay to move it out-of-line.
jit/BaselineIC.cpp:
Used in FallbackICSpew()
and TypeFallbackICSpew()
for jit-spew code.
jit/VMFunctions.cpp:
Used in the AutoDetectInvalidation
constructor which is only called for
jit::ArrayPopDense()
and jit::ArrayShiftDense()
. These two functions are
Ion-only, so will likely be removed soon anyway.
Depends on D92738
Assignee | ||
Comment 47•4 years ago
|
||
With the refactorings from the last parts, the dependencies for
"jit/JitFrames.h" got a lot shorter.
Fully qualified JS::Value
to avoid pulling in "NamespaceImports.h".
Additional changes needed:
jit/BaselineFrame.h:
- Include "vm/JSContext.h" for
JSContext::isProfilerSamplingEnabled()
. - Forward declare ICScript.
jit/CompileInfo.h:
- Include "vm/Runtime.h" for
JSAtomState::dotThis
.
jit/MacroAssembler-inl.h:
- Include "jit/JSJitFrameIter.h" for
jit::FrameType::IonJS
. - Include "vm/Runtime.h" for
SelfHostedLazyScript::offsetOfWarmUpData()
.
wasm/WasmFrameIter.cpp:
- Include "vm/JSContext.h" for
JSContext::{clearPendingException, names, offsetOfActivation}()
.
Depends on D92739
Assignee | ||
Comment 48•4 years ago
|
||
"jit/JitFrames.h" was previously only transitively included in many
files. Add explicit includes for it.
Also: Remove unnecessary includes to "jit/JitFrames-inl.h".
Additional changes needed:
jit/BaselineFrame.cpp:
- Include "jit/JSJitFrameIter-inl.h" for
JSJitFrameIter::baselineFrameNumValueSlots()
.
jit/BaselineDebugModeOSR.cpp
- Include "jit/JSJitFrameIter-inl.h" for
JSJitFrameIter::baselineFrame()
Depends on D92740
Assignee | ||
Comment 49•4 years ago
|
||
The full definition of JSContext
is only needed for assertions, let's move
that call out-of-line to remove the "vm/JSContext.h" dependency from
"jit/BaselineFrame.h".
Depends on D92741
Assignee | ||
Comment 50•4 years ago
|
||
Split JSAtomState
from "vm/Runtime.h", so that "jit/CompileInfo.h" doesn't
need to pull in everything from "vm/Runtime.h".
Drive-by change:
- Remove an unnecessary include from "vm/CommonPropertyNames.h".
Depends on D92742
Comment 51•4 years ago
|
||
Thank you for doing all this.
Comment 52•4 years ago
|
||
Comment 53•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/01a3baa8e147
https://hg.mozilla.org/mozilla-central/rev/dce6529e0f33
https://hg.mozilla.org/mozilla-central/rev/d63543e0c221
https://hg.mozilla.org/mozilla-central/rev/6021f6a2f27e
https://hg.mozilla.org/mozilla-central/rev/4b2527ba0c3c
https://hg.mozilla.org/mozilla-central/rev/4f29aa40161b
https://hg.mozilla.org/mozilla-central/rev/49f9610d942c
https://hg.mozilla.org/mozilla-central/rev/280b8e15e8bc
https://hg.mozilla.org/mozilla-central/rev/5717fc15036b
https://hg.mozilla.org/mozilla-central/rev/a0db60623146
https://hg.mozilla.org/mozilla-central/rev/9b8826d84317
https://hg.mozilla.org/mozilla-central/rev/aa10bd2dc6aa
https://hg.mozilla.org/mozilla-central/rev/54886b085899
https://hg.mozilla.org/mozilla-central/rev/95df626925e3
https://hg.mozilla.org/mozilla-central/rev/627292c3738d
https://hg.mozilla.org/mozilla-central/rev/49f58c5c1e7f
https://hg.mozilla.org/mozilla-central/rev/773de361c88f
https://hg.mozilla.org/mozilla-central/rev/2a4bb44f9552
https://hg.mozilla.org/mozilla-central/rev/6ab91b5737ff
https://hg.mozilla.org/mozilla-central/rev/07d281263a39
https://hg.mozilla.org/mozilla-central/rev/4ec61fbf4682
https://hg.mozilla.org/mozilla-central/rev/3c5df85dafd6
https://hg.mozilla.org/mozilla-central/rev/3e0a69ae8e2c
https://hg.mozilla.org/mozilla-central/rev/1a83865aa836
https://hg.mozilla.org/mozilla-central/rev/823fd9df4633
https://hg.mozilla.org/mozilla-central/rev/3ce96e12918f
https://hg.mozilla.org/mozilla-central/rev/974153fd8e3c
https://hg.mozilla.org/mozilla-central/rev/f9f61473d403
https://hg.mozilla.org/mozilla-central/rev/dcc850077be2
https://hg.mozilla.org/mozilla-central/rev/5fb82ae534ad
https://hg.mozilla.org/mozilla-central/rev/1a448c5dd199
https://hg.mozilla.org/mozilla-central/rev/171163447e46
https://hg.mozilla.org/mozilla-central/rev/a3d2eee0377e
https://hg.mozilla.org/mozilla-central/rev/f0183af2bdb9
https://hg.mozilla.org/mozilla-central/rev/9f3b43ad95cc
https://hg.mozilla.org/mozilla-central/rev/4d1ae9d2cbc9
https://hg.mozilla.org/mozilla-central/rev/9ee174395419
https://hg.mozilla.org/mozilla-central/rev/6288ff53b88f
https://hg.mozilla.org/mozilla-central/rev/70c94a537000
https://hg.mozilla.org/mozilla-central/rev/517ad8fc345a
Assignee | ||
Comment 54•4 years ago
|
||
Additional changes needed:
Assembler-x86-shared.h:
- Include "jit/CompactBuffer.h" for
CompactBufferWriter
.
Assignee | ||
Comment 55•4 years ago
|
||
Depends on D92914
Assignee | ||
Comment 56•4 years ago
|
||
Depends on D92916
Assignee | ||
Comment 57•4 years ago
|
||
Additional changes needed:
jit/BaselineFrame.h:
- Forward declare
JSJitFrameIter
.
js/CacheIR.h:
- Forward declare
Register
.
Depends on D92917
Assignee | ||
Comment 58•4 years ago
|
||
Additional changes needed:
jit/shared/Assembler-shared.h:
- Include "jit/JitCode.h" for
JitCode::{instructionsSize, raw}()
.
irregexp/RegExpShim.h:
- Include "jit/JitCode.h" for
JitCode::raw()
.
vm/RegExpShared.h:
- Include "jit/JitCode.h" for
WeakHeapPtr<jit::JitCode*>
.
Depends on D92918
Assignee | ||
Comment 59•4 years ago
|
||
Depends on D92919
Assignee | ||
Comment 60•4 years ago
|
||
Depends on D92920
Assignee | ||
Comment 61•4 years ago
|
||
Additional changes needed:
jit/BaselineCodeGen.h:
- Include "jit/MacroAssembler.h" for calling various
MacroAssembler
methods.
jit/CacheIRCompiler.h:
- Include "jit/MacroAssembler.h" for
StackMacroAssembler
.
Depends on D92921
Assignee | ||
Comment 62•4 years ago
|
||
Depends on D92922
Assignee | ||
Comment 63•4 years ago
|
||
Depends on D92923
Updated•4 years ago
|
Assignee | ||
Comment 64•4 years ago
|
||
Adds many headers which were previously only transitively included.
Assignee | ||
Comment 65•4 years ago
|
||
Additional changes needed:
jit/<platform>/MacroAssembler-<platform>.cpp
- Include "vm/JSContext.h" for
offsetof(JSContext, profilingActivation_)
.
jit/<platform>/Trampoline-<platform>.cpp
- Include "vm/JSContext.h" for
JSContext::runtime()
.
jit/RematerializedFrame.cpp:
- Include "jit/Bailouts.h" for
EnsureHasEnvironmentObjects()
.
vm/Initialization.cpp:
- Include "vm/ArrayBufferObject.h" for
LiveMappedBufferCount()
.
vm/TraceLogging.cpp
- Include "vm/JSContext.h" for
JSContext::{compartment,runtime}()
,JSContext::traceLogger
, andTlsContext
.
Depends on D92951
Assignee | ||
Comment 66•4 years ago
|
||
Also removes the transitive include of "jsmath.h" through "vm/Caches.h", which
requires fix-ups in multiple files.
Additional changes needed:
frontend/FoldConstants.cpp:
- Include "jsmath.h" for
ecmaPow()
.
jit/CacheIR.cpp:
- Include "jsmath.h" for
UnaryMathFunction::*
.
jit/<platform>/MacroAssembler-<platform>.cpp:
- Include "jsmath.h" for
GetBiggestNumberLessThan()
.
vm/Interpreter.cpp:
- Include "jsmath.h" for
ecmaPow()
.
vm/SelfHosting.cpp:
- Include "jsmath.h" for various math functions.
wasm/WasmBuiltins.cpp:
- Include "jsmath.h" for various math functions.
wasm/WasmInstance.cpp:
- Include "jsmath.h" for
RoundFloat32
.
Depends on D92953
Assignee | ||
Comment 67•4 years ago
|
||
Remove the "builtin/TypedObject.h" include from "jit/CacheIR.h", because it
leads to including many unrelated headers.
- Move
SimpleTypeDescrKey()
into "CacheIR.cpp", because it's only called
within that file. - Use
Scalar::Type
forScalarTypeFromSimpleTypeDescrKey()
, because then we
don't need to include the definition ofScalarTypeDescr
. All callers of
ScalarTypeFromSimpleTypeDescrKey()
are even already usingScalar::Type
!
Additional changes needed:
jit/CacheIR.h:
- Include "js/experimental/JitInfo.h" for
JitInfo::type()
. - Include "vm/JSFunction.h" for
JSFunction::flags()
. - Forward declare
JSOp
,ReferenceType
, andIsTypedObjectClass()
.
jit/Simulator.h:
- Add the typedef for
jit::Simulator
, because some files are no longer
transitively including "vm/Runtime.h", where the same typedef is also
defined.
jit/TrialInlining.h
- Forward declare
BaselineFrame
.
Depends on D92955
Assignee | ||
Comment 68•4 years ago
|
||
Let's consistenly use "jit/Simulator.h" to include the Simulator headers.
Depends on D92956
Assignee | ||
Comment 69•4 years ago
|
||
Split uint8_clamped
from "vm/ArrayBufferObject.h" so that
"AtomicOperations-shared-jit.h" no longer needs to include all headers from
"vm/ArrayBufferObject.h".
Depends on D92957
Assignee | ||
Comment 70•4 years ago
|
||
Depends on D92959
Assignee | ||
Comment 71•4 years ago
|
||
"jit/shared/Assembler-shared.h" includes "wasm/WasmTypes.h", which in turn
includes "vm/JSFunction.h", and that means we also end up including:
- "vm/JSObject.h"
- "vm/NativeObject.h"
- "vm/ObjectGroup.h"
- "vm/StringType.h"
- and many other headers.
Make some of these includes more obvious, so we don't only rely on transitive
includes.
jit/Lowering.cpp:
- Include "wasm/WasmTypes.h" for
wasm::TlsData
andwasm::CalleeDesc
.
jit/MacroAssembler.cpp:
- Include "wasm/WasmTypes.h" for
wasm::TlsData
,wasm::BytecodeOffset
, etc.
jit/MacroAssembler.h:
- Include "vm/BytecodeUtil.h" for
JSOp
. - Include "vm/FunctionFlags.h" for
FunctionFlags::FunctionKind
. - Include "vm/JSObject.h" for
JSObject::offsetOfGroup()
. - Include "vm/ObjectGroup.h" for
ObjectGroup::offsetOf{Clasp,Proto}()
. - Include "vm/StringType.h" for
JSString::offsetOfLength()
. - Forward declare various
js::TypeSet
and wasm types.
jit/<platform>/Assembler-<platform>.h:
- Include "wasm/WasmTypes.h" for
wasm::Bytes
.
jit/<platform>/MacroAssembler-<platform>.h:
- Include "wasm/WasmTypes.h" for
wasm::TlsData
.
jit/shared/Assembler-shared.h:
- Include "gc/Barrier.h" for
CurrentThreadIsIonCompilingSafeForMinorGC()
. - Include "vm/NativeObject.h" for
NativeObject::{elements,slots}SizeMustNotOverflow()
.
jit/x86/CodeGenerator-x86.cpp:
- Include "wasm/WasmTypes.h" for
wasm::TlsData
andwasm::MaxOffsetGuardLimit
.
Depends on D92960
Assignee | ||
Comment 72•4 years ago
|
||
Fully qualifies JS::Value
to avoid including "NamespaceImports.h".
Depends on D92962
Assignee | ||
Comment 73•4 years ago
|
||
Depends on D92963
Comment 74•4 years ago
|
||
Lando could not land your changes. Please rebase your patches.
Comment 75•4 years ago
|
||
Comment 76•4 years ago
|
||
Comment 77•4 years ago
|
||
Comment 78•4 years ago
|
||
https://hg.mozilla.org/integration/autoland/revb7edb792eff7
Part 70: Clean-up jit/WarpCacheIRTranspiler.h includes. r=jandem
https://hg.mozilla.org/integration/autoland/rev5ae9ad434f9d
Part 69: Clean-up jit/WarpBuilderShared.h includes. r=jandem
https://hg.mozilla.org/integration/autoland/rev7c5145890d2a
Part 68: Add some explicit includes to avoid relying only on transitive includes through WasmTypes.h. r=jandem
https://hg.mozilla.org/integration/autoland/rev1d67bea50176
Part 67: Clean-up jit/shared/AtomicOperations-shared-jit.h includes. r=jandem
https://hg.mozilla.org/integration/autoland/rev1297ab579050
Part 66: Split uint8_clamped from vm/ArrayBufferObject.h. r=jandem
https://hg.mozilla.org/integration/autoland/revc1ec475a66d7
Part 65: Use jit/Simulator.h to include Simulator headers. r=jandem
https://hg.mozilla.org/integration/autoland/rev592718e440ea
Part 64: Remove TypedObject.h include from CacheIR.h. r=jandem
https://hg.mozilla.org/integration/autoland/rev1d0b6a969d8e
Part 63: Remove jsmath.h and vm/Iteration.h includes from CacheIR.h. r=jandem
Comment 79•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/660832494151
https://hg.mozilla.org/mozilla-central/rev/6c8bb7f72d26
https://hg.mozilla.org/mozilla-central/rev/0fe6ce4c4f15
https://hg.mozilla.org/mozilla-central/rev/1dba370382e2
https://hg.mozilla.org/mozilla-central/rev/43f034de6590
https://hg.mozilla.org/mozilla-central/rev/216e75704aed
https://hg.mozilla.org/mozilla-central/rev/1adb2619f5dc
https://hg.mozilla.org/mozilla-central/rev/c37a8a0e61e8
https://hg.mozilla.org/mozilla-central/rev/662cc0fae382
https://hg.mozilla.org/mozilla-central/rev/6c44eb7c828d
https://hg.mozilla.org/mozilla-central/rev/83e920017fc6
https://hg.mozilla.org/mozilla-central/rev/ea0c4efccf89
https://hg.mozilla.org/mozilla-central/rev/822b8a28a761
https://hg.mozilla.org/mozilla-central/rev/f270cf5ea749
https://hg.mozilla.org/mozilla-central/rev/2fe862adb763
https://hg.mozilla.org/mozilla-central/rev/4354437b3bd5
https://hg.mozilla.org/mozilla-central/rev/30b8c9bc509e
https://hg.mozilla.org/mozilla-central/rev/2ea065fc4d80
https://hg.mozilla.org/mozilla-central/rev/edd577678e82
https://hg.mozilla.org/mozilla-central/rev/c6cf76fdeae5
https://hg.mozilla.org/mozilla-central/rev/8f08c9034b90
https://hg.mozilla.org/mozilla-central/rev/2b6b416c7d96
https://hg.mozilla.org/mozilla-central/rev/1d0b6a969d8e
https://hg.mozilla.org/mozilla-central/rev/592718e440ea
https://hg.mozilla.org/mozilla-central/rev/c1ec475a66d7
https://hg.mozilla.org/mozilla-central/rev/1297ab579050
https://hg.mozilla.org/mozilla-central/rev/1d67bea50176
https://hg.mozilla.org/mozilla-central/rev/7c5145890d2a
https://hg.mozilla.org/mozilla-central/rev/5ae9ad434f9d
https://hg.mozilla.org/mozilla-central/rev/b7edb792eff7
Assignee | ||
Comment 80•4 years ago
|
||
"mozilla/Attributes.h" was previously only included for MOZ_MUST_USE
, so we no
longer need the include after switching to use [[nodiscard]]
.
Assignee | ||
Comment 81•4 years ago
|
||
Also add the missing include for "mozilla/XorShift128PlusRNG.h" to "vm/Runtime.h".
Depends on D103669
Assignee | ||
Comment 82•4 years ago
|
||
Depends on D103670
Comment 83•4 years ago
|
||
Comment 84•4 years ago
|
||
bugherder |
Comment 85•3 years ago
|
||
Sounds like this work ended 5 months ago?
Otherwise, maybe we should open a new bug.
Updated•3 years ago
|
Description
•