1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

Split ConstantVals.h into Constant.h and Constants.h

llvm-svn: 2378
This commit is contained in:
Chris Lattner 2002-04-28 19:55:58 +00:00
parent fc52b111ac
commit 321a8cf4ba
42 changed files with 99 additions and 98 deletions

47
include/llvm/Constant.h Normal file
View File

@ -0,0 +1,47 @@
//===-- 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

View File

@ -33,7 +33,7 @@
#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;

View File

@ -1,65 +1,20 @@
//===-- 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
//

View File

@ -12,7 +12,7 @@
#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>

View File

@ -22,7 +22,7 @@
#include "llvm/iPHINode.h"
#include "llvm/InstrTypes.h"
#include "llvm/Type.h"
#include "llvm/ConstantVals.h"
#include "llvm/Constants.h"
using analysis::ExprType;

View File

@ -13,7 +13,7 @@
#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"

View File

@ -11,7 +11,7 @@
#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>

View File

@ -16,7 +16,7 @@
#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"

View File

@ -10,7 +10,7 @@
//===----------------------------------------------------------------------===//
#include "WriterInternals.h"
#include "llvm/ConstantVals.h"
#include "llvm/Constants.h"
#include "llvm/SymbolTable.h"
#include "llvm/DerivedTypes.h"
#include <iostream>

View File

@ -24,7 +24,6 @@
#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"
@ -78,8 +77,8 @@ void BytecodeWriter::outputConstants(bool isFunction) {
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...
@ -125,7 +124,7 @@ void BytecodeWriter::outputModuleInfoBlock(const Module *M) {
// 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);
}

View File

@ -24,7 +24,7 @@
#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"

View File

@ -19,7 +19,7 @@
#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"

View File

@ -11,7 +11,7 @@
#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"

View File

@ -15,7 +15,7 @@
#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"
@ -307,13 +307,13 @@ SparcFunctionAsmPrinter::printOneOperand(const MachineOperand &op)
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 << ">";

View File

@ -18,7 +18,7 @@
#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"

View File

@ -25,7 +25,7 @@
#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;

View File

@ -12,7 +12,7 @@
#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);

View File

@ -11,7 +11,7 @@
#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"

View File

@ -23,6 +23,7 @@
#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;

View File

@ -21,7 +21,7 @@
#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"

View File

@ -9,7 +9,7 @@
#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"

View File

@ -29,7 +29,7 @@
#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"

View File

@ -7,7 +7,7 @@
#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"

View File

@ -11,7 +11,7 @@
#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"

View File

@ -30,7 +30,6 @@
#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,

View File

@ -30,7 +30,7 @@
#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"

View File

@ -10,7 +10,7 @@
//===----------------------------------------------------------------------===//
#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"

View File

@ -12,7 +12,7 @@
#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"

View File

@ -20,7 +20,7 @@
//===----------------------------------------------------------------------===//
#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"

View File

@ -14,7 +14,7 @@
#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;

View File

@ -19,7 +19,7 @@
#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"

View File

@ -7,7 +7,6 @@
#include "TransformInternals.h"
#include "llvm/Type.h"
#include "llvm/ConstantVals.h"
#include "llvm/Analysis/Expressions.h"
#include "llvm/Function.h"
#include "llvm/iOther.h"

View File

@ -12,7 +12,7 @@
#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>

View File

@ -17,7 +17,7 @@
#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;

View File

@ -25,7 +25,7 @@
#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;
@ -79,7 +79,7 @@ static inline bool isSafeAlloca(const AllocaInst *AI) {
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;
}

View File

@ -18,7 +18,7 @@
#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"

View File

@ -76,7 +76,7 @@ void BasicBlock::dropAllReferences() {
//
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;

View File

@ -1,11 +1,11 @@
//===-- 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"

View File

@ -9,7 +9,7 @@
#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"

View File

@ -15,8 +15,8 @@
#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"

View File

@ -6,6 +6,7 @@
#include "llvm/DerivedTypes.h"
#include "llvm/SymbolTable.h"
#include "llvm/Constants.h"
#include "Support/StringExtras.h"
#include "Support/STLExtras.h"
#include <iostream>

View File

@ -5,7 +5,7 @@
//===----------------------------------------------------------------------===//
#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!");