Issue #2307 - Part 3: Remove SIMD.js support

This gets rid of the SIMD-specific scalar types in JS.
This considerably deviates from Mozilla's work because of our divergent
path.
This commit is contained in:
Moonchild 2023-09-18 16:57:09 +02:00 committed by roytam1
commit 50a4412750
159 changed files with 274 additions and 21314 deletions

View file

@ -32,8 +32,6 @@ MIRGenerator::MIRGenerator(CompileCompartment* compartment, const JitCompileOpti
cancelBuild_(false),
wasmMaxStackArgBytes_(0),
performsCall_(false),
usesSimd_(false),
cachedUsesSimd_(false),
modifiesFrameArguments_(false),
instrumentedProfiling_(false),
instrumentedProfilingIsCached_(false),
@ -43,37 +41,6 @@ MIRGenerator::MIRGenerator(CompileCompartment* compartment, const JitCompileOpti
gs_(alloc)
{ }
bool
MIRGenerator::usesSimd()
{
if (cachedUsesSimd_)
return usesSimd_;
cachedUsesSimd_ = true;
for (ReversePostorderIterator block = graph_->rpoBegin(),
end = graph_->rpoEnd();
block != end;
block++)
{
// It's fine to use MInstructionIterator here because we don't have to
// worry about Phis, since any reachable phi (or phi cycle) will have at
// least one instruction as an input.
for (MInstructionIterator inst = block->begin(); inst != block->end(); inst++) {
// Instructions that have SIMD inputs but not a SIMD type are fine
// to ignore, as their inputs are also reached at some point. By
// induction, at least one instruction with a SIMD type is reached
// at some point.
if (IsSimdType(inst->type())) {
MOZ_ASSERT(SupportsSimd);
usesSimd_ = true;
return true;
}
}
}
usesSimd_ = false;
return false;
}
bool
MIRGenerator::abortFmt(const char* message, va_list ap)
{