Initial checkin of simple&fast SSA based GCSE algorithm
[oota-llvm.git] / include / llvm / Constants.h
index 1a4ebda6ec2cf3cb0af2e6df528260a3a1ca663d..1253974da06c33f26e94e21d1c57deeeb0b725e3 100644 (file)
@@ -5,8 +5,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_CONSTPOOLVALS_H
-#define LLVM_CONSTPOOLVALS_H
+#ifndef LLVM_CONSTANT_VALS_H
+#define LLVM_CONSTANT_VALS_H
 
 #include "llvm/User.h"
 #include "Support/DataTypes.h"
@@ -38,15 +38,15 @@ public:
   // Specialize setName to handle symbol table majik...
   virtual void setName(const std::string &name, SymbolTable *ST = 0);
 
-  virtual std::string getStrValue() const = 0;
-
   // Static constructor to get a '0' constant of arbitrary type...
-  static Constant *getNullConstant(const Type *Ty);
+  static Constant *getNullValue(const Type *Ty);
 
   // isNullValue - Return true if this is the value that would be returned by
-  // getNullConstant.
+  // getNullValue.
   virtual bool isNullValue() const = 0;
 
+  virtual void print(std::ostream &O) const;
+
   // Methods for support type inquiry through isa, cast, and dyn_cast:
   static inline bool classof(const Constant *) { return true; }
   static inline bool classof(const Value *V) {
@@ -78,11 +78,10 @@ public:
   // inverted - Return the opposite value of the current value.
   inline ConstantBool *inverted() const { return (this==True) ? False : True; }
 
-  virtual std::string getStrValue() const;
   inline bool getValue() const { return Val; }
 
   // isNullValue - Return true if this is the value that would be returned by
-  // getNullConstant.
+  // getNullValue.
   virtual bool isNullValue() const { return this == False; }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -126,7 +125,7 @@ public:
   static ConstantInt *get(const Type *Ty, unsigned char V);
 
   // isNullValue - Return true if this is the value that would be returned by
-  // getNullConstant.
+  // getNullValue.
   virtual bool isNullValue() const { return Val.Unsigned == 0; }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -149,8 +148,6 @@ protected:
 public:
   static ConstantSInt *get(const Type *Ty, int64_t V);
 
-  virtual std::string getStrValue() const;
-
   static bool isValueValidForType(const Type *Ty, int64_t V);
   inline int64_t getValue() const { return Val.Signed; }
 
@@ -173,8 +170,6 @@ protected:
 public:
   static ConstantUInt *get(const Type *Ty, uint64_t V);
 
-  virtual std::string getStrValue() const;
-
   static bool isValueValidForType(const Type *Ty, uint64_t V);
   inline uint64_t getValue() const { return Val.Unsigned; }
 
@@ -199,13 +194,11 @@ protected:
 public:
   static ConstantFP *get(const Type *Ty, double V);
 
-  virtual std::string getStrValue() const;
-
   static bool isValueValidForType(const Type *Ty, double V);
   inline double getValue() const { return Val; }
 
   // isNullValue - Return true if this is the value that would be returned by
-  // getNullConstant.
+  // getNullValue.
   virtual bool isNullValue() const { return Val == 0; }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -231,7 +224,6 @@ public:
   static ConstantArray *get(const ArrayType *T, const std::vector<Constant*> &);
   static ConstantArray *get(const std::string &Initializer);
   
-  virtual std::string getStrValue() const;
   inline const ArrayType *getType() const {
     return (ArrayType*)Value::getType();
   }
@@ -239,7 +231,7 @@ public:
   inline const std::vector<Use> &getValues() const { return Operands; }
 
   // isNullValue - Return true if this is the value that would be returned by
-  // getNullConstant.
+  // getNullValue.
   virtual bool isNullValue() const { return false; }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -265,7 +257,6 @@ public:
   static ConstantStruct *get(const StructType *T,
                              const std::vector<Constant*> &V);
 
-  virtual std::string getStrValue() const;
   inline const StructType *getType() const {
     return (StructType*)Value::getType();
   }
@@ -273,7 +264,7 @@ public:
   inline const std::vector<Use> &getValues() const { return Operands; }
 
   // isNullValue - Return true if this is the value that would be returned by
-  // getNullConstant.
+  // getNullValue.
   virtual bool isNullValue() const { return false; }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -297,13 +288,12 @@ protected:
   inline ConstantPointer(const PointerType *T) : Constant((const Type*)T){}
   ~ConstantPointer() {}
 public:
-  virtual std::string getStrValue() const = 0;
   inline const PointerType *getType() const {
     return (PointerType*)Value::getType();
   }
 
   // isNullValue - Return true if this is the value that would be returned by
-  // getNullConstant.
+  // getNullValue.
   virtual bool isNullValue() const { return false; }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -322,12 +312,11 @@ protected:
   inline ConstantPointerNull(const PointerType *T) : ConstantPointer(T) {}
   inline ~ConstantPointerNull() {}
 public:
-  virtual std::string getStrValue() const;
 
   static ConstantPointerNull *get(const PointerType *T);
 
   // isNullValue - Return true if this is the value that would be returned by
-  // getNullConstant.
+  // getNullValue.
   virtual bool isNullValue() const { return true; }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -359,8 +348,6 @@ protected:
 public:
   static ConstantPointerRef *get(GlobalValue *GV);
 
-  virtual std::string getStrValue() const;
-
   const GlobalValue *getValue() const { 
     return cast<GlobalValue>(Operands[0].get());
   }