Add a useful accessor
[oota-llvm.git] / include / llvm / CodeGen / ValueSet.h
index 055eef332f164ae640b2d558a000c92968ef2ae7..f4bc6e80d444a44d827b4781f11f3c0f50978fa5 100644 (file)
@@ -1,27 +1,39 @@
-/* Title:   ValueSet.h   -*- C++ -*-
-   Author:  Ruchira Sasanka
-   Date:    Jun 30, 01
-   Purpose: Contains a mathematical set of Values. LiveVarSet is derived from
-            this. Contains both class and method definitions.
-*/
+//===-- llvm/CodeGen/ValueSet.h ---------------------------------*- C++ -*-===//
+// 
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// 
+//===----------------------------------------------------------------------===//
+//
+// This header is OBSOLETE, do not use it for new code.
+//
+// FIXME: Eliminate this file.
+//
+//===----------------------------------------------------------------------===//
 
 #ifndef VALUE_SET_H
 #define VALUE_SET_H
 
-class Value;
 #include <set>
 
-//------------------- Class Definition for ValueSet --------------------------
+namespace llvm {
 
-void printValue( const Value *v);  // func to print a Value 
+class Value;
 
-struct ValueSet : public std::set<const Value*> {
-  bool setUnion( const ValueSet *const set1);     // for performing set union
-  void setSubtract( const ValueSet *const set1);  // for performing set diff
-  void setDifference( const ValueSet *const set1, const ValueSet *const set2); 
-  void printSet() const;                // for printing a live variable set
+// RAV - Used to print values in a form used by the register allocator.  
+//
+struct RAV {  // Register Allocator Value
+  const Value &V;
+  RAV(const Value *v) : V(*v) {}
+  RAV(const Value &v) : V(v) {}
 };
+std::ostream &operator<<(std::ostream &out, RAV Val);
+
+typedef std::set<const Value*> ValueSet;
+void printSet(const ValueSet &S);
+
+} // End llvm namespace
 
 #endif