summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan de Mooij <jdemooij@mozilla.com>2018-03-01 15:36:13 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-03-14 12:36:13 +0100
commit64d560f52bed0065fb7267ff87ad435eacef90fd (patch)
tree59fe73cdd9f5c40c7564e76e327a868fd84f31f1
parente59bc0fea2bba47c863417c735bf247427a41320 (diff)
downloadUXP-64d560f52bed0065fb7267ff87ad435eacef90fd.tar
UXP-64d560f52bed0065fb7267ff87ad435eacef90fd.tar.gz
UXP-64d560f52bed0065fb7267ff87ad435eacef90fd.tar.lz
UXP-64d560f52bed0065fb7267ff87ad435eacef90fd.tar.xz
UXP-64d560f52bed0065fb7267ff87ad435eacef90fd.zip
Bug 1437450 - Disable Ion no-clone optimization for regexps if the graph contains try blocks. r=nbp, a=RyanVM
--HG-- extra : source : 61b461277369e0cec89c79d8526a82c575818e94 extra : intermediate-source : 806696d494300c8c09ad2c0c3141194b5418a706 extra : histedit_source : e38bbe5c22bace744f6da0b8ff39462b64fe5a95
-rw-r--r--js/src/jit/IonAnalysis.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/js/src/jit/IonAnalysis.cpp b/js/src/jit/IonAnalysis.cpp
index 90303255d..2c9ffb607 100644
--- a/js/src/jit/IonAnalysis.cpp
+++ b/js/src/jit/IonAnalysis.cpp
@@ -2188,6 +2188,12 @@ IsRegExpHoistable(MIRGenerator* mir, MDefinition* regexp, MDefinitionVector& wor
bool
jit::MakeMRegExpHoistable(MIRGenerator* mir, MIRGraph& graph)
{
+ // 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.
+ if (graph.hasTryBlock())
+ return true;
+
MDefinitionVector worklist(graph.alloc());
for (ReversePostorderIterator block(graph.rpoBegin()); block != graph.rpoEnd(); block++) {