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

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

Issue 2463593002: VM: Enable branch merging of isnan, isinf. (Closed)
Patch Set: addressed comments Created 4 years, 1 month 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
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | runtime/vm/intermediate_language_arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 3002 matching lines...) Expand 10 before | Expand all | Expand 10 after
3013 __ Drop(num_temps()); 3013 __ Drop(num_temps());
3014 #endif // defined(TARGET_ARCH_DBC) 3014 #endif // defined(TARGET_ARCH_DBC)
3015 } 3015 }
3016 3016
3017 3017
3018 StrictCompareInstr::StrictCompareInstr(TokenPosition token_pos, 3018 StrictCompareInstr::StrictCompareInstr(TokenPosition token_pos,
3019 Token::Kind kind, 3019 Token::Kind kind,
3020 Value* left, 3020 Value* left,
3021 Value* right, 3021 Value* right,
3022 bool needs_number_check) 3022 bool needs_number_check)
3023 : ComparisonInstr(token_pos, 3023 : TemplateComparison(token_pos,
3024 kind, 3024 kind,
3025 left, 3025 Thread::Current()->GetNextDeoptId()),
3026 right,
3027 Thread::Current()->GetNextDeoptId()),
3028 needs_number_check_(needs_number_check) { 3026 needs_number_check_(needs_number_check) {
3029 ASSERT((kind == Token::kEQ_STRICT) || (kind == Token::kNE_STRICT)); 3027 ASSERT((kind == Token::kEQ_STRICT) || (kind == Token::kNE_STRICT));
3028 SetInputAt(0, left);
3029 SetInputAt(1, right);
3030 } 3030 }
3031 3031
3032 3032
3033 LocationSummary* InstanceCallInstr::MakeLocationSummary(Zone* zone, 3033 LocationSummary* InstanceCallInstr::MakeLocationSummary(Zone* zone,
3034 bool optimizing) const { 3034 bool optimizing) const {
3035 return MakeCallSummary(zone); 3035 return MakeCallSummary(zone);
3036 } 3036 }
3037 3037
3038 3038
3039 // DBC does not use specialized inline cache stubs for smi operations. 3039 // DBC does not use specialized inline cache stubs for smi operations.
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
3415 intptr_t use_index = instr->env()->Length(); // Start index after inner. 3415 intptr_t use_index = instr->env()->Length(); // Start index after inner.
3416 for (Environment::DeepIterator it(copy); !it.Done(); it.Advance()) { 3416 for (Environment::DeepIterator it(copy); !it.Done(); it.Advance()) {
3417 Value* value = it.CurrentValue(); 3417 Value* value = it.CurrentValue();
3418 value->set_instruction(instr); 3418 value->set_instruction(instr);
3419 value->set_use_index(use_index++); 3419 value->set_use_index(use_index++);
3420 value->definition()->AddEnvUse(value); 3420 value->definition()->AddEnvUse(value);
3421 } 3421 }
3422 } 3422 }
3423 3423
3424 3424
3425 ComparisonInstr* DoubleTestOpInstr::CopyWithNewOperands(Value* new_left,
3426 Value* new_right) {
3427 UNREACHABLE();
3428 return NULL;
3429 }
3430
3431
3425 ComparisonInstr* EqualityCompareInstr::CopyWithNewOperands(Value* new_left, 3432 ComparisonInstr* EqualityCompareInstr::CopyWithNewOperands(Value* new_left,
3426 Value* new_right) { 3433 Value* new_right) {
3427 return new EqualityCompareInstr(token_pos(), 3434 return new EqualityCompareInstr(token_pos(),
3428 kind(), 3435 kind(),
3429 new_left, 3436 new_left,
3430 new_right, 3437 new_right,
3431 operation_cid(), 3438 operation_cid(),
3432 deopt_id()); 3439 deopt_id());
3433 } 3440 }
3434 3441
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
3864 set_native_c_function(native_function); 3871 set_native_c_function(native_function);
3865 function().SetIsNativeAutoSetupScope(auto_setup_scope); 3872 function().SetIsNativeAutoSetupScope(auto_setup_scope);
3866 Dart_NativeEntryResolver resolver = library.native_entry_resolver(); 3873 Dart_NativeEntryResolver resolver = library.native_entry_resolver();
3867 bool is_bootstrap_native = Bootstrap::IsBootstapResolver(resolver); 3874 bool is_bootstrap_native = Bootstrap::IsBootstapResolver(resolver);
3868 set_is_bootstrap_native(is_bootstrap_native); 3875 set_is_bootstrap_native(is_bootstrap_native);
3869 } 3876 }
3870 3877
3871 #undef __ 3878 #undef __
3872 3879
3873 } // namespace dart 3880 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | runtime/vm/intermediate_language_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698