diff options
author | Jan de Mooij <jdemooij@mozilla.com> | 2018-03-01 15:36:13 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-03-14 12:36:13 +0100 |
commit | 64d560f52bed0065fb7267ff87ad435eacef90fd (patch) | |
tree | 59fe73cdd9f5c40c7564e76e327a868fd84f31f1 | |
parent | e59bc0fea2bba47c863417c735bf247427a41320 (diff) | |
download | UXP-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.cpp | 6 |
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++) { |