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

Unified Diff: src/cfg.h

Issue 165124: Rename: ExpressionBuilder => ExpressionCfgBuilder, StatementBuilder =>... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 4 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 | « no previous file | src/cfg.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/cfg.h
===================================================================
--- src/cfg.h (revision 2643)
+++ src/cfg.h (working copy)
@@ -659,7 +659,8 @@
};
-// An implementation of a set of locations (currently slot locations).
+// An implementation of a set of locations (currently slot locations), most
+// of the operations are destructive.
class LocationSet BASE_EMBEDDED {
public:
// Construct an empty location set.
@@ -669,6 +670,11 @@
uintptr_t parameters() { return parameters_; }
uintptr_t locals() { return locals_; }
+ // Make this the empty set.
+ void Empty() {
+ parameters_ = locals_ = 0;
+ }
+
// Insert an element.
void AddElement(SlotLocation* location) {
if (location->type() == Slot::PARAMETER) {
@@ -705,14 +711,14 @@
};
-// An ExpressionBuilder traverses an expression and returns an open CFG
+// An ExpressionCfgBuilder traverses an expression and returns an open CFG
// fragment (currently a possibly empty list of instructions represented by
// a singleton instruction block) and the expression's value.
//
-// Failure is to build the CFG is indicated by a NULL CFG.
-class ExpressionBuilder : public AstVisitor {
+// Failure to build the CFG is indicated by a NULL CFG.
+class ExpressionCfgBuilder : public AstVisitor {
public:
- ExpressionBuilder() : value_(NULL), graph_(NULL), destination_(NULL) {}
+ ExpressionCfgBuilder() : destination_(NULL), value_(NULL), graph_(NULL) {}
// Result accessors.
Value* value() { return value_; }
@@ -728,6 +734,7 @@
void Build(Expression* expr, Location* destination) {
value_ = NULL;
graph_ = new Cfg();
+ assigned_vars_.Empty();
destination_ = destination;
Visit(expr);
}
@@ -738,22 +745,22 @@
#undef DECLARE_VISIT
private:
- // State for the visitor. Output parameters.
+ // State for the visitor. Input parameters:
+ Location* destination_;
+
+ // Output parameters:
Value* value_;
Cfg* graph_;
LocationSet assigned_vars_;
-
- // Input parameters.
- Location* destination_;
};
-// A StatementBuilder maintains a CFG fragment accumulator. When it visits
-// a statement, it concatenates the CFG for the statement to the end of the
-// accumulator.
-class StatementBuilder : public AstVisitor {
+// A StatementCfgBuilder maintains a CFG fragment accumulator. When it
+// visits a statement, it concatenates the CFG for the statement to the end
+// of the accumulator.
+class StatementCfgBuilder : public AstVisitor {
public:
- StatementBuilder() : graph_(new Cfg()) {}
+ StatementCfgBuilder() : graph_(new Cfg()) {}
Cfg* graph() { return graph_; }
@@ -765,6 +772,7 @@
#undef DECLARE_VISIT
private:
+ // State for the visitor. Input/output parameter:
Cfg* graph_;
};
« no previous file with comments | « no previous file | src/cfg.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698