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

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

Issue 10536086: Add stack check in loops so that loops can be stopped. Optimize relational operations. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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/flow_graph_builder.h" 8 #include "vm/flow_graph_builder.h"
9 #include "vm/flow_graph_compiler.h" 9 #include "vm/flow_graph_compiler.h"
10 #include "vm/locations.h" 10 #include "vm/locations.h"
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 RawAbstractType* StrictCompareComp::StaticType() const { 407 RawAbstractType* StrictCompareComp::StaticType() const {
408 return Type::BoolInterface(); 408 return Type::BoolInterface();
409 } 409 }
410 410
411 411
412 RawAbstractType* EqualityCompareComp::StaticType() const { 412 RawAbstractType* EqualityCompareComp::StaticType() const {
413 return Type::BoolInterface(); 413 return Type::BoolInterface();
414 } 414 }
415 415
416 416
417 RawAbstractType* RelationalOpComp::StaticType() const {
418 return Type::BoolInterface();
419 }
420
421
417 RawAbstractType* NativeCallComp::StaticType() const { 422 RawAbstractType* NativeCallComp::StaticType() const {
418 // The result type of the native function is identical to the result type of 423 // The result type of the native function is identical to the result type of
419 // the enclosing native Dart function. However, we prefer to check the type 424 // the enclosing native Dart function. However, we prefer to check the type
420 // of the value returned from the native call. 425 // of the value returned from the native call.
421 return Type::DynamicType(); 426 return Type::DynamicType();
422 } 427 }
423 428
424 429
425 RawAbstractType* LoadIndexedComp::StaticType() const { 430 RawAbstractType* LoadIndexedComp::StaticType() const {
426 return Type::DynamicType(); 431 return Type::DynamicType();
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 return AbstractType::null(); 584 return AbstractType::null();
580 } 585 }
581 586
582 587
583 RawAbstractType* CatchEntryComp::StaticType() const { 588 RawAbstractType* CatchEntryComp::StaticType() const {
584 UNREACHABLE(); 589 UNREACHABLE();
585 return AbstractType::null(); 590 return AbstractType::null();
586 } 591 }
587 592
588 593
594 RawAbstractType* CheckStackOverflowComp::StaticType() const {
595 UNREACHABLE();
596 return AbstractType::null();
597 }
598
599
589 RawAbstractType* BinaryOpComp::StaticType() const { 600 RawAbstractType* BinaryOpComp::StaticType() const {
590 // TODO(srdjan): Compute based on input types (ICData). 601 // TODO(srdjan): Compute based on input types (ICData).
591 return Type::DynamicType(); 602 return Type::DynamicType();
592 } 603 }
593 604
594 605
595 RawAbstractType* UnarySmiOpComp::StaticType() const { 606 RawAbstractType* UnarySmiOpComp::StaticType() const {
596 return Type::IntInterface(); 607 return Type::IntInterface();
597 } 608 }
598 609
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
983 StubCode::GetAllocationStubForClosure(closure_function)); 994 StubCode::GetAllocationStubForClosure(closure_function));
984 const ExternalLabel label(closure_function.ToCString(), stub.EntryPoint()); 995 const ExternalLabel label(closure_function.ToCString(), stub.EntryPoint());
985 compiler->GenerateCall(token_index(), try_index(), &label, 996 compiler->GenerateCall(token_index(), try_index(), &label,
986 PcDescriptors::kOther); 997 PcDescriptors::kOther);
987 __ Drop(2); // Discard type arguments and receiver. 998 __ Drop(2); // Discard type arguments and receiver.
988 } 999 }
989 1000
990 #undef __ 1001 #undef __
991 1002
992 } // namespace dart 1003 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698