Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: runtime/vm/intermediate_language.cc

Issue 2950783003: VM(RegExp): Allow OSR optimization of RegExp :matcher functions. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/intermediate_language.h" 5 #include "vm/intermediate_language.h"
6 6
7 #include "vm/bit_vector.h" 7 #include "vm/bit_vector.h"
8 #include "vm/bootstrap.h" 8 #include "vm/bootstrap.h"
9 #include "vm/compiler.h" 9 #include "vm/compiler.h"
10 #include "vm/constant_propagator.h" 10 #include "vm/constant_propagator.h"
(...skipping 2048 matching lines...) Expand 10 before | Expand all | Expand 10 after
2059 return NULL; 2059 return NULL;
2060 } 2060 }
2061 if ((constrained_type() != NULL) && 2061 if ((constrained_type() != NULL) &&
2062 Type()->IsEqualTo(value()->definition()->Type())) { 2062 Type()->IsEqualTo(value()->definition()->Type())) {
2063 return value()->definition(); 2063 return value()->definition();
2064 } 2064 }
2065 return this; 2065 return this;
2066 } 2066 }
2067 2067
2068 2068
2069 Instruction* CheckStackOverflowInstr::Canonicalize(FlowGraph* flow_graph) {
2070 switch (kind_) {
2071 case kFull:
2072 return this;
2073 case kOsrEntry:
2074 // Don't need OSR entries in the optimized code.
2075 return NULL;
2076 }
2077 }
2078
2079
2069 bool LoadFieldInstr::IsImmutableLengthLoad() const { 2080 bool LoadFieldInstr::IsImmutableLengthLoad() const {
2070 switch (recognized_kind()) { 2081 switch (recognized_kind()) {
2071 case MethodRecognizer::kObjectArrayLength: 2082 case MethodRecognizer::kObjectArrayLength:
2072 case MethodRecognizer::kImmutableArrayLength: 2083 case MethodRecognizer::kImmutableArrayLength:
2073 case MethodRecognizer::kTypedDataLength: 2084 case MethodRecognizer::kTypedDataLength:
2074 case MethodRecognizer::kStringBaseLength: 2085 case MethodRecognizer::kStringBaseLength:
2075 return true; 2086 return true;
2076 default: 2087 default:
2077 return false; 2088 return false;
2078 } 2089 }
(...skipping 2280 matching lines...) Expand 10 before | Expand all | Expand 10 after
4359 "native function '%s' (%" Pd " arguments) cannot be found", 4370 "native function '%s' (%" Pd " arguments) cannot be found",
4360 native_name().ToCString(), function().NumParameters()); 4371 native_name().ToCString(), function().NumParameters());
4361 } 4372 }
4362 set_is_auto_scope(auto_setup_scope); 4373 set_is_auto_scope(auto_setup_scope);
4363 set_native_c_function(native_function); 4374 set_native_c_function(native_function);
4364 } 4375 }
4365 4376
4366 #undef __ 4377 #undef __
4367 4378
4368 } // namespace dart 4379 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698