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

Unified Diff: runtime/vm/flow_graph_builder.h

Issue 9969192: Implement condition type checks in new compiler, thereby removing last bailouts. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/dart_api_message.cc ('k') | runtime/vm/flow_graph_builder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_builder.h
===================================================================
--- runtime/vm/flow_graph_builder.h (revision 6612)
+++ runtime/vm/flow_graph_builder.h (working copy)
@@ -275,12 +275,20 @@
//
// We expect that AstNode in test contexts either have only nonlocal exits
// or else control flow has both true and false successors.
+//
+// The node_id and token_index are used in checked mode to verify that the
+// condition of the test is of type bool.
class TestGraphVisitor : public ValueGraphVisitor {
public:
- TestGraphVisitor(FlowGraphBuilder* owner, intptr_t temp_index)
+ TestGraphVisitor(FlowGraphBuilder* owner,
+ intptr_t temp_index,
+ intptr_t condition_node_id,
+ intptr_t condition_token_index)
: ValueGraphVisitor(owner, temp_index),
true_successor_address_(NULL),
- false_successor_address_(NULL) {
+ false_successor_address_(NULL),
+ condition_node_id_(condition_node_id),
+ condition_token_index_(condition_token_index) {
}
// Visit functions overridden by this class.
@@ -296,6 +304,9 @@
return false_successor_address_;
}
+ intptr_t condition_node_id() const { return condition_node_id_; }
+ intptr_t condition_token_index() const { return condition_token_index_; }
+
private:
// Construct and concatenate a Branch instruction to this graph fragment.
// Closes the fragment and sets the output parameters.
@@ -311,6 +322,9 @@
// Output parameters.
TargetEntryInstr** true_successor_address_;
TargetEntryInstr** false_successor_address_;
+
+ intptr_t condition_node_id_;
+ intptr_t condition_token_index_;
};
} // namespace dart
Property changes on: runtime/vm/flow_graph_builder.h
___________________________________________________________________
Deleted: svn:eol-style
- LF
« no previous file with comments | « runtime/vm/dart_api_message.cc ('k') | runtime/vm/flow_graph_builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698