--- /dev/null
+//===-- llvm/Constant.h - Constant class definition --------------*- C++ -*--=//
+//
+// This file contains the declaration of the Constant class.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CONSTANT_H
+#define LLVM_CONSTANT_H
+
+#include "llvm/User.h"
+
+class Constant : public User {
+protected:
+ inline Constant(const Type *Ty) : User(Ty, Value::ConstantVal) {}
+ ~Constant() {}
+
+ // destroyConstant - Called if some element of this constant is no longer
+ // valid. At this point only other constants may be on the use_list for this
+ // constant. Any constants on our Use list must also be destroy'd. The
+ // implementation must be sure to remove the constant from the list of
+ // available cached constants. Implementations should call
+ // destroyConstantImpl as the last thing they do, to destroy all users and
+ // delete this.
+ //
+ virtual void destroyConstant() { assert(0 && "Not reached!"); }
+ void destroyConstantImpl();
+public:
+ // Specialize setName to handle symbol table majik...
+ virtual void setName(const std::string &name, SymbolTable *ST = 0);
+
+ // Static constructor to get a '0' constant of arbitrary type...
+ static Constant *getNullValue(const Type *Ty);
+
+ // isNullValue - Return true if this is the value that would be returned by
+ // 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) {
+ return V->getValueType() == Value::ConstantVal;
+ }
+};
+
+#endif
#ifndef LLVM_CONSTANTHANDLING_H
#define LLVM_CONSTANTHANDLING_H
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Instruction.h"
#include "llvm/Type.h"
class PointerType;
-//===-- llvm/ConstantVals.h - Constant Value nodes ---------------*- C++ -*--=//
+//===-- llvm/Constants.h - Constant class subclass definitions ---*- C++ -*--=//
//
-// This file contains the declarations for the Constant class and all of
-// its subclasses, which represent the different type of constant pool values
+// This file contains the declarations for the subclasses of Constant, which
+// represent the different type of constant pool values
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CONSTANT_VALS_H
-#define LLVM_CONSTANT_VALS_H
+#ifndef LLVM_CONSTANTS_H
+#define LLVM_CONSTANTS_H
-#include "llvm/User.h"
+#include "llvm/Constant.h"
#include "Support/DataTypes.h"
class ArrayType;
class StructType;
class PointerType;
-//===----------------------------------------------------------------------===//
-// Constant Class
-//===----------------------------------------------------------------------===//
-
-class Constant : public User {
-protected:
- inline Constant(const Type *Ty) : User(Ty, Value::ConstantVal) {}
- ~Constant() {}
-
- // destroyConstant - Called if some element of this constant is no longer
- // valid. At this point only other constants may be on the use_list for this
- // constant. Any constants on our Use list must also be destroy'd. The
- // implementation must be sure to remove the constant from the list of
- // available cached constants. Implementations should call
- // destroyConstantImpl as the last thing they do, to destroy all users and
- // delete this.
- //
- virtual void destroyConstant() { assert(0 && "Not reached!"); }
- void destroyConstantImpl();
-public:
- // Specialize setName to handle symbol table majik...
- virtual void setName(const std::string &name, SymbolTable *ST = 0);
-
- // Static constructor to get a '0' constant of arbitrary type...
- static Constant *getNullValue(const Type *Ty);
-
- // isNullValue - Return true if this is the value that would be returned by
- // 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) {
- return V->getValueType() == Value::ConstantVal;
- }
-};
-
-
-
-//===----------------------------------------------------------------------===//
-// Classes to represent constant pool variable defs
-//===----------------------------------------------------------------------===//
-
//===---------------------------------------------------------------------------
// ConstantBool - Boolean Values
//
#include "llvm/iOther.h"
#include "llvm/iTerminators.h"
#include "llvm/DerivedTypes.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "Support/STLExtras.h"
#include <algorithm>
#include "llvm/iPHINode.h"
#include "llvm/InstrTypes.h"
#include "llvm/Type.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
using analysis::ExprType;
#include "llvm/InstrTypes.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/iOther.h"
#include "llvm/Function.h"
#include "llvm/DerivedTypes.h"
#include "ReaderInternals.h"
#include "llvm/Module.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/GlobalVariable.h"
#include <algorithm>
#include <iostream>
#include "llvm/GlobalVariable.h"
#include "llvm/Module.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/iPHINode.h"
#include "llvm/iOther.h"
#include "llvm/Argument.h"
//===----------------------------------------------------------------------===//
#include "WriterInternals.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/SymbolTable.h"
#include "llvm/DerivedTypes.h"
#include <iostream>
#include "llvm/GlobalVariable.h"
#include "llvm/Module.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
#include "llvm/iOther.h"
+#include "llvm/Constant.h"
#include "llvm/DerivedTypes.h"
#include "llvm/SymbolTable.h"
#include "llvm/Argument.h"
#include "llvm/GlobalVariable.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
#include "llvm/SymbolTable.h"
#include "llvm/DerivedTypes.h"
#include "Support/STLExtras.h"
unsigned NC = ValNo; // Number of constants
for (; NC < Plane.size() &&
- (isa<Constant>(Plane[NC]) ||
- isa<Type>(Plane[NC])); NC++) /*empty*/;
+ (isa<Constant>(Plane[NC]) || isa<Type>(Plane[NC])); NC++)
+ /*empty*/;
NC -= ValNo; // Convert from index into count
if (NC == 0) continue; // Skip empty type planes...
// If we have an initializer, output it now.
if (GV->hasInitializer()) {
- Slot = Table.getValSlot(GV->getInitializer());
+ Slot = Table.getValSlot((Value*)GV->getInitializer());
assert(Slot != -1 && "No slot for global var initializer!");
output_vbr((unsigned)Slot, Out);
}
#include "llvm/Function.h"
#include "llvm/iTerminators.h"
#include "llvm/iMemory.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constant.h"
#include "llvm/BasicBlock.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "Support/STLExtras.h"
#include "llvm/CodeGen/InstrForest.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/MachineRegInfo.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
#include "llvm/Type.h"
#include "llvm/iTerminators.h"
#include "llvm/iMemory.h"
#include "llvm/Type.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Assembly/Writer.h"
#include "llvm/Target/TargetData.h"
#include "llvm/GlobalVariable.h"
#include "llvm/SymbolTable.h"
#include "llvm/DerivedTypes.h"
#include "llvm/iOther.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Argument.h"
#include <iostream>
using std::cerr;
#include "llvm/Function.h"
#include "llvm/iTerminators.h"
#include "llvm/iMemory.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constant.h"
#include "llvm/BasicBlock.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "Support/STLExtras.h"
#include "llvm/CodeGen/InstrForest.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/MachineRegInfo.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
#include "llvm/Type.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineCodeForMethod.h"
#include "llvm/GlobalVariable.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Annotation.h"
#include "llvm/BasicBlock.h"
const Value *Val = op.getVRegValue();
if (!Val)
toAsm << "\t<*NULL Value*>";
- else if (const BasicBlock *BB = dyn_cast<const BasicBlock>(Val))
+ else if (const BasicBlock *BB = dyn_cast<BasicBlock>(Val))
toAsm << getID(BB);
- else if (const Function *M = dyn_cast<const Function>(Val))
+ else if (const Function *M = dyn_cast<Function>(Val))
toAsm << getID(M);
- else if (const GlobalVariable *GV=dyn_cast<const GlobalVariable>(Val))
+ else if (const GlobalVariable *GV = dyn_cast<GlobalVariable>(Val))
toAsm << getID(GV);
- else if (const Constant *CV = dyn_cast<const Constant>(Val))
+ else if (const Constant *CV = dyn_cast<Constant>(Val))
toAsm << getID(CV);
else
toAsm << "<unknown value=" << Val << ">";
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineCodeForMethod.h"
#include "llvm/Function.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/iOther.h"
#include "llvm/BasicBlock.h"
#include "llvm/Function.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "Support/MathExtras.h"
#include <math.h>
using std::vector;
#include "llvm/Target/TargetData.h"
#include "llvm/DerivedTypes.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
static inline void getTypeInfo(const Type *Ty, const TargetData *TD,
unsigned &Size, unsigned char &Alignment);
#include "llvm/iOther.h"
#include "llvm/iPHINode.h"
#include "llvm/iMemory.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/ConstantHandling.h"
#include "llvm/Transforms/Scalar/DCE.h"
#include "llvm/Analysis/Expressions.h"
#include "llvm/iTerminators.h"
#include "llvm/iOther.h"
#include "llvm/Argument.h"
+#include "llvm/Constants.h"
#include "Support/STLExtras.h"
#include <algorithm>
using std::map;
#include "llvm/iPHINode.h"
#include "llvm/iOther.h"
#include "llvm/DerivedTypes.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Support/InstVisitor.h"
#include "llvm/Argument.h"
#include "Graph.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/iMemory.h"
#include "llvm/iTerminators.h"
#include "llvm/Support/CFG.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/iMemory.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Instrumentation/TraceValues.h"
#include "llvm/GlobalVariable.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/iMemory.h"
#include "llvm/iTerminators.h"
#include "llvm/Function.h"
#include "llvm/iOther.h"
#include "llvm/iMemory.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Pass.h"
#include "llvm/ConstantHandling.h"
#include "llvm/Transforms/Scalar/DCE.h"
#include "llvm/iPHINode.h"
#include "llvm/iOther.h"
#include "llvm/Pass.h"
-#include "llvm/ConstantVals.h"
inline static bool
ConstantFoldUnaryInst(BasicBlock *BB, BasicBlock::iterator &II,
#include "llvm/BasicBlock.h"
#include "llvm/iTerminators.h"
#include "llvm/iPHINode.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constant.h"
#include "llvm/Support/CFG.h"
#include "llvm/Pass.h"
#include "Support/STLExtras.h"
//===----------------------------------------------------------------------===//
#include "llvm/Transforms/Scalar/DecomposeMultiDimRefs.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/iMemory.h"
#include "llvm/iOther.h"
#include "llvm/BasicBlock.h"
#include "llvm/iOther.h"
#include "llvm/Type.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Pass.h"
#include "llvm/Support/CFG.h"
#include "Support/STLExtras.h"
//===----------------------------------------------------------------------===//
#include "llvm/Transforms/Scalar/InductionVars.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Analysis/IntervalPartition.h"
#include "llvm/iPHINode.h"
#include "llvm/Function.h"
#include "llvm/ConstantHandling.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/iPHINode.h"
#include "llvm/iMemory.h"
#include "llvm/iTerminators.h"
#include "TransformInternals.h"
#include "llvm/Type.h"
-#include "llvm/ConstantVals.h"
#include "llvm/Analysis/Expressions.h"
#include "llvm/Function.h"
#include "llvm/iOther.h"
#include "llvm/Instruction.h"
#include "llvm/Target/TargetData.h"
#include "llvm/DerivedTypes.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include <map>
#include <set>
#include "llvm/SymbolTable.h"
#include "llvm/DerivedTypes.h"
#include "llvm/iOther.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Argument.h"
#include <iostream>
using std::cerr;
#include "llvm/DerivedTypes.h"
#include "llvm/iMemory.h"
#include "llvm/iOther.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Pass.h"
#include "TransformInternals.h"
using std::vector;
#include "llvm/Pass.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constant.h"
using std::vector;
using std::map;
if (MAI->hasIndices()) { // indexed?
// Allow the access if there is only one index and the index is
// zero.
- if (*MAI->idx_begin() != ConstantUInt::get(Type::UIntTy, 0) ||
+ if (*MAI->idx_begin() != Constant::getNullValue(Type::UIntTy) ||
MAI->idx_begin()+1 != MAI->idx_end())
return false;
}
#include "llvm/Function.h"
#include "llvm/GlobalVariable.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/iMemory.h"
#include "llvm/iTerminators.h"
#include "llvm/iPHINode.h"
//
bool BasicBlock::hasConstantReferences() const {
for (use_const_iterator I = use_begin(), E = use_end(); I != E; ++I)
- if (::isa<Constant>(*I))
+ if (::isa<Constant>((Value*)*I))
return true;
return false;
#ifndef LLVM_CONSTANTHANDLING_H
#define LLVM_CONSTANTHANDLING_H
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Instruction.h"
#include "llvm/Type.h"
class PointerType;
#ifndef LLVM_CONSTANTHANDLING_H
#define LLVM_CONSTANTHANDLING_H
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Instruction.h"
#include "llvm/Type.h"
class PointerType;
-//===-- ConstantVals.cpp - Implement Constant nodes --------------*- C++ -*--=//
+//===-- Constants.cpp - Implement Constant nodes -----------------*- C++ -*--=//
//
// This file implements the Constant* classes...
//
//===----------------------------------------------------------------------===//
#define __STDC_LIMIT_MACROS // Get defs for INT64_MAX and friends...
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/SymbolTable.h"
#include "llvm/GlobalValue.h"
#include "llvm/SymbolTable.h"
#include "llvm/DerivedTypes.h"
#include "llvm/iOther.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/Argument.h"
#include <iostream>
using std::cerr;
#include "llvm/GlobalVariable.h"
#include "llvm/InstrTypes.h"
#include "llvm/Type.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "Support/STLExtras.h"
#include "ValueHolderImpl.h"
#include "llvm/GlobalVariable.h"
#include "llvm/Module.h"
#include "llvm/BasicBlock.h"
-#include "llvm/ConstantVals.h"
#include "llvm/iOther.h"
+#include "llvm/Constant.h"
#include "llvm/DerivedTypes.h"
#include "llvm/SymbolTable.h"
#include "llvm/Argument.h"
#include "llvm/DerivedTypes.h"
#include "llvm/SymbolTable.h"
+#include "llvm/Constants.h"
#include "Support/StringExtras.h"
#include "Support/STLExtras.h"
#include <iostream>
//===----------------------------------------------------------------------===//
#include "llvm/iMemory.h"
-#include "llvm/ConstantVals.h"
+#include "llvm/Constants.h"
static inline const Type *checkType(const Type *Ty) {
assert(Ty && "Invalid indices for type!");