diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp index caf8a36029..506153ffcf 100644 --- a/js/src/jit/Ion.cpp +++ b/js/src/jit/Ion.cpp @@ -1509,14 +1509,6 @@ OptimizeMIR(MIRGenerator* mir) if (mir->shouldCancel("Start")) return false; - if (!mir->compilingAsmJS()) { - if (!MakeMRegExpHoistable(mir, graph)) - return false; - - if (mir->shouldCancel("Make MRegExp Hoistable")) - return false; - } - gs.spewPass("BuildSSA"); AssertBasicGraphCoherency(graph); diff --git a/js/src/jit/IonAnalysis.cpp b/js/src/jit/IonAnalysis.cpp index bc889ad950..77cc567634 100644 --- a/js/src/jit/IonAnalysis.cpp +++ b/js/src/jit/IonAnalysis.cpp @@ -1878,6 +1878,9 @@ jit::ApplyTypeInformation(MIRGenerator* mir, MIRGraph& graph) bool jit::MakeMRegExpHoistable(MIRGenerator* mir, MIRGraph& graph) { + MOZ_CRASH("thou may not hoist this regex"); + return false; +#if(0) // If we are compiling try blocks, regular expressions may be observable // from catch blocks (which Ion does not compile). For now just disable the // pass in this case. @@ -1945,6 +1948,7 @@ jit::MakeMRegExpHoistable(MIRGenerator* mir, MIRGraph& graph) } return true; +#endif } bool diff --git a/js/src/jit/Lowering.cpp b/js/src/jit/Lowering.cpp index cadb468035..57d25bae86 100644 --- a/js/src/jit/Lowering.cpp +++ b/js/src/jit/Lowering.cpp @@ -2099,14 +2099,9 @@ MustCloneRegExp(MRegExp* regexp) void LIRGenerator::visitRegExp(MRegExp* ins) { - if (!MustCloneRegExp(ins)) { - RegExpObject* source = ins->source(); - define(new(alloc()) LPointer(source), ins); - } else { - LRegExp* lir = new(alloc()) LRegExp(); - defineReturn(lir, ins); - assignSafepoint(lir, ins); - } + LRegExp* lir = new(alloc()) LRegExp(); + defineReturn(lir, ins); + assignSafepoint(lir, ins); } void