summaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/dataflow.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/go/gofrontend/dataflow.h')
-rw-r--r--gcc/go/gofrontend/dataflow.h91
1 files changed, 0 insertions, 91 deletions
diff --git a/gcc/go/gofrontend/dataflow.h b/gcc/go/gofrontend/dataflow.h
deleted file mode 100644
index a75c8e661f..0000000000
--- a/gcc/go/gofrontend/dataflow.h
+++ /dev/null
@@ -1,91 +0,0 @@
-// dataflow.h -- Go frontend dataflow. -*- C++ -*-
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-#ifndef GO_DATAFLOW_H
-#define GO_DATAFLOW_H
-
-class Expression;
-class Named_object;
-class Statement;
-
-// Dataflow information about the Go program.
-
-class Dataflow
-{
- public:
- // A variable definition.
- struct Def
- {
- // The statement where the variable is defined.
- Statement* statement;
- // The value to which the variable is set. This may be NULL.
- Expression* val;
- // Whether this is an initialization of the variable.
- bool is_init;
- };
-
- // A variable reference.
- struct Ref
- {
- // The statement where the variable is referenced.
- Statement* statement;
- };
-
- // A list of defs.
- typedef std::vector<Def> Defs;
-
- // A list of refs.
- typedef std::vector<Ref> Refs;
-
- Dataflow();
-
- // Initialize the dataflow information.
- void
- initialize(Gogo*);
-
- // Add a definition of a variable. STATEMENT assigns a value to
- // VAR. VAL is the value if it is known, NULL otherwise.
- void
- add_def(Named_object* var, Expression* val, Statement* statement,
- bool is_init);
-
- // Add a reference to a variable. VAR is the variable, and
- // STATEMENT is the statement which refers to it.
- void
- add_ref(Named_object* var, Statement* statement);
-
- // Return the definitions of VAR--the places where it is set.
- const Defs*
- find_defs(Named_object* var) const;
-
- // Return the references to VAR--the places where it is used.
- const Refs*
- find_refs(Named_object* var) const;
-
- private:
- // Order variables in the map.
- struct Compare_vars
- {
- bool
- operator()(const Named_object*, const Named_object*) const;
- };
-
- // Map from variables to a list of defs of the variable. We use a
- // map rather than a hash table because the order in which we
- // process variables may affect the resulting code.
- typedef std::map<Named_object*, Defs*, Compare_vars> Defmap;
-
- // Map from variables to a list of refs to the vairable.
- typedef std::map<Named_object*, Refs*, Compare_vars> Refmap;
-
- // Variable defs.
- Defmap defs_;
- // Variable refs;
- Refmap refs_;
-};
-
-
-#endif // !defined(GO_DATAFLOW_H)