1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00

Make LLVMContext and LLVMContextImpl classes instead of structs.

llvm-svn: 78690
This commit is contained in:
Benjamin Kramer 2009-08-11 17:45:13 +00:00
parent 92bda7b2e0
commit 9a590500ea
40 changed files with 45 additions and 43 deletions

View File

@ -22,7 +22,7 @@ namespace llvm {
class TargetData; class TargetData;
class Function; class Function;
class Type; class Type;
struct LLVMContext; class LLVMContext;
/// ConstantFoldInstruction - Attempt to constant fold the specified /// ConstantFoldInstruction - Attempt to constant fold the specified
/// instruction. If successful, the constant result is returned, if not, null /// instruction. If successful, the constant result is returned, if not, null

View File

@ -40,7 +40,7 @@ namespace llvm {
class DebugLoc; class DebugLoc;
struct DebugLocTracker; struct DebugLocTracker;
class Instruction; class Instruction;
struct LLVMContext; class LLVMContext;
class DIDescriptor { class DIDescriptor {
protected: protected:

View File

@ -41,7 +41,7 @@ namespace llvm {
class Type; class Type;
class ScalarEvolution; class ScalarEvolution;
class TargetData; class TargetData;
struct LLVMContext; class LLVMContext;
class Loop; class Loop;
class LoopInfo; class LoopInfo;
class Operator; class Operator;

View File

@ -31,7 +31,7 @@ namespace llvm {
class BasicBlock; class BasicBlock;
class Function; class Function;
class SparseSolver; class SparseSolver;
struct LLVMContext; class LLVMContext;
template<typename T> class SmallVectorImpl; template<typename T> class SmallVectorImpl;

View File

@ -23,7 +23,7 @@ namespace llvm {
class Instruction; class Instruction;
class APInt; class APInt;
class TargetData; class TargetData;
struct LLVMContext; class LLVMContext;
/// ComputeMaskedBits - Determine which of the bits specified in Mask are /// ComputeMaskedBits - Determine which of the bits specified in Mask are
/// known to be either zero or one and return them in the KnownZero/KnownOne /// known to be either zero or one and return them in the KnownZero/KnownOne

View File

@ -21,7 +21,7 @@ namespace llvm {
class Module; class Module;
class SMDiagnostic; class SMDiagnostic;
class raw_ostream; class raw_ostream;
struct LLVMContext; class LLVMContext;
/// This function is the main interface to the LLVM Assembly Parser. It parses /// This function is the main interface to the LLVM Assembly Parser. It parses
/// an ASCII file that (presumably) contains LLVM Assembly code. It returns a /// an ASCII file that (presumably) contains LLVM Assembly code. It returns a

View File

@ -22,7 +22,7 @@
namespace llvm { namespace llvm {
class TerminatorInst; class TerminatorInst;
struct LLVMContext; class LLVMContext;
template<> struct ilist_traits<Instruction> template<> struct ilist_traits<Instruction>
: public SymbolTableListTraits<Instruction, BasicBlock> { : public SymbolTableListTraits<Instruction, BasicBlock> {

View File

@ -32,7 +32,7 @@ class ModuleProvider; // From VMCore
class Module; // From VMCore class Module; // From VMCore
class Archive; // Declared below class Archive; // Declared below
class ArchiveMemberHeader; // Internal implementation class class ArchiveMemberHeader; // Internal implementation class
struct LLVMContext; // Global data class LLVMContext; // Global data
/// This class is the main class manipulated by users of the Archive class. It /// This class is the main class manipulated by users of the Archive class. It
/// holds information about one member of the Archive. It is also the element /// holds information about one member of the Archive. It is also the element

View File

@ -23,7 +23,7 @@ namespace llvm {
class MemoryBuffer; class MemoryBuffer;
class ModulePass; class ModulePass;
class BitstreamWriter; class BitstreamWriter;
struct LLVMContext; class LLVMContext;
class raw_ostream; class raw_ostream;
/// getBitcodeModuleProvider - Read the header of the specified bitcode buffer /// getBitcodeModuleProvider - Read the header of the specified bitcode buffer

View File

@ -23,7 +23,7 @@
namespace llvm { namespace llvm {
class Type; class Type;
struct LLVMContext; class LLVMContext;
struct EVT { // EVT = Machine Value Type struct EVT { // EVT = Machine Value Type
public: public:

View File

@ -20,7 +20,7 @@ namespace llvm {
class APInt; class APInt;
template<typename T> class SmallVectorImpl; template<typename T> class SmallVectorImpl;
struct LLVMContext; class LLVMContext;
/// This is an important base class in LLVM. It provides the common facilities /// This is an important base class in LLVM. It provides the common facilities
/// of all constant values in an LLVM program. A constant is a value that is /// of all constant values in an LLVM program. A constant is a value that is

View File

@ -231,7 +231,7 @@ class ConstantFP : public Constant {
APFloat Val; APFloat Val;
void *operator new(size_t, unsigned);// DO NOT IMPLEMENT void *operator new(size_t, unsigned);// DO NOT IMPLEMENT
ConstantFP(const ConstantFP &); // DO NOT IMPLEMENT ConstantFP(const ConstantFP &); // DO NOT IMPLEMENT
friend struct LLVMContextImpl; friend class LLVMContextImpl;
protected: protected:
ConstantFP(const Type *Ty, const APFloat& V); ConstantFP(const Type *Ty, const APFloat& V);
protected: protected:

View File

@ -20,7 +20,7 @@
namespace llvm { namespace llvm {
class Module; class Module;
class InferiorProcess; class InferiorProcess;
struct LLVMContext; class LLVMContext;
/// Debugger class - This class implements the LLVM source-level debugger. /// Debugger class - This class implements the LLVM source-level debugger.
/// This allows clients to handle the user IO processing without having to /// This allows clients to handle the user IO processing without having to

View File

@ -31,7 +31,7 @@ class PointerValType;
class VectorValType; class VectorValType;
class IntegerValType; class IntegerValType;
class APInt; class APInt;
struct LLVMContext; class LLVMContext;
class DerivedType : public Type { class DerivedType : public Type {
friend class Type; friend class Type;

View File

@ -26,7 +26,7 @@
namespace llvm { namespace llvm {
class FunctionType; class FunctionType;
struct LLVMContext; class LLVMContext;
// Traits for intrusive list of basic blocks... // Traits for intrusive list of basic blocks...
template<> struct ilist_traits<BasicBlock> template<> struct ilist_traits<BasicBlock>

View File

@ -28,7 +28,7 @@ namespace llvm {
class Module; class Module;
class Constant; class Constant;
struct LLVMContext; class LLVMContext;
template<typename ValueSubClass, typename ItemParentClass> template<typename ValueSubClass, typename ItemParentClass>
class SymbolTableListTraits; class SymbolTableListTraits;

View File

@ -23,7 +23,7 @@
namespace llvm { namespace llvm {
struct LLVMContext; class LLVMContext;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// TerminatorInst Class // TerminatorInst Class

View File

@ -20,7 +20,7 @@
namespace llvm { namespace llvm {
struct LLVMContext; class LLVMContext;
template<typename ValueSubClass, typename ItemParentClass> template<typename ValueSubClass, typename ItemParentClass>
class SymbolTableListTraits; class SymbolTableListTraits;

View File

@ -29,7 +29,7 @@ namespace llvm {
class ConstantInt; class ConstantInt;
class ConstantRange; class ConstantRange;
class APInt; class APInt;
struct LLVMContext; class LLVMContext;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// AllocationInst Class // AllocationInst Class

View File

@ -23,7 +23,7 @@ namespace llvm {
class Type; class Type;
class FunctionType; class FunctionType;
class Function; class Function;
struct LLVMContext; class LLVMContext;
class Module; class Module;
class AttrListPtr; class AttrListPtr;

View File

@ -17,14 +17,15 @@
namespace llvm { namespace llvm {
struct LLVMContextImpl; class LLVMContextImpl;
/// This is an important class for using LLVM in a threaded context. It /// This is an important class for using LLVM in a threaded context. It
/// (opaquely) owns and manages the core "global" data of LLVM's core /// (opaquely) owns and manages the core "global" data of LLVM's core
/// infrastructure, including the type and constant uniquing tables. /// infrastructure, including the type and constant uniquing tables.
/// LLVMContext itself provides no locking guarantees, so you should be careful /// LLVMContext itself provides no locking guarantees, so you should be careful
/// to have one context per thread. /// to have one context per thread.
struct LLVMContext { class LLVMContext {
public:
LLVMContextImpl* pImpl; LLVMContextImpl* pImpl;
bool RemoveDeadMetadata(); bool RemoveDeadMetadata();
LLVMContext(); LLVMContext();

View File

@ -21,7 +21,7 @@
namespace llvm { namespace llvm {
class Module; class Module;
struct LLVMContext; class LLVMContext;
/// This class provides the core functionality of linking in LLVM. It retains a /// This class provides the core functionality of linking in LLVM. It retains a
/// Module object which is the composite of the modules and libraries linked /// Module object which is the composite of the modules and libraries linked

View File

@ -26,7 +26,7 @@
namespace llvm { namespace llvm {
class Constant; class Constant;
struct LLVMContext; class LLVMContext;
template<class ConstantClass, class TypeClass, class ValType> template<class ConstantClass, class TypeClass, class ValType>
struct ConstantCreator; struct ConstantCreator;
@ -205,7 +205,7 @@ template<typename ValueSubClass, typename ItemParentClass>
class NamedMDNode : public MetadataBase, public ilist_node<NamedMDNode> { class NamedMDNode : public MetadataBase, public ilist_node<NamedMDNode> {
friend class SymbolTableListTraits<NamedMDNode, Module>; friend class SymbolTableListTraits<NamedMDNode, Module>;
friend struct LLVMContextImpl; friend class LLVMContextImpl;
NamedMDNode(const NamedMDNode &); // DO NOT IMPLEMENT NamedMDNode(const NamedMDNode &); // DO NOT IMPLEMENT
void *operator new(size_t, unsigned); // DO NOT IMPLEMENT void *operator new(size_t, unsigned); // DO NOT IMPLEMENT

View File

@ -26,7 +26,7 @@ namespace llvm {
class GlobalValueRefMap; // Used by ConstantVals.cpp class GlobalValueRefMap; // Used by ConstantVals.cpp
class FunctionType; class FunctionType;
struct LLVMContext; class LLVMContext;
template<> struct ilist_traits<Function> template<> struct ilist_traits<Function>
: public SymbolTableListTraits<Function, Module> { : public SymbolTableListTraits<Function, Module> {

View File

@ -21,7 +21,7 @@
namespace llvm { namespace llvm {
struct LLVMContext; class LLVMContext;
/// ConstantFolder - Create constants with minimum, target independent, folding. /// ConstantFolder - Create constants with minimum, target independent, folding.
class ConstantFolder { class ConstantFolder {

View File

@ -28,7 +28,7 @@
namespace llvm { namespace llvm {
struct LLVMContext; class LLVMContext;
/// NoFolder - Create "constants" (actually, values) with no folding. /// NoFolder - Create "constants" (actually, values) with no folding.
class NoFolder { class NoFolder {

View File

@ -25,7 +25,7 @@
namespace llvm { namespace llvm {
class TargetData; class TargetData;
struct LLVMContext; class LLVMContext;
/// TargetFolder - Create constants with target dependent folding. /// TargetFolder - Create constants with target dependent folding.
class TargetFolder { class TargetFolder {

View File

@ -38,7 +38,7 @@ class CallGraph;
class TargetData; class TargetData;
class Loop; class Loop;
class LoopInfo; class LoopInfo;
struct LLVMContext; class LLVMContext;
/// CloneModule - Return an exact copy of the specified module /// CloneModule - Return an exact copy of the specified module
/// ///

View File

@ -27,7 +27,7 @@ class PHINode;
class AllocaInst; class AllocaInst;
class ConstantExpr; class ConstantExpr;
class TargetData; class TargetData;
struct LLVMContext; class LLVMContext;
struct DbgInfoIntrinsic; struct DbgInfoIntrinsic;
template<typename T> class SmallVectorImpl; template<typename T> class SmallVectorImpl;

View File

@ -23,7 +23,7 @@ class AllocaInst;
class DominatorTree; class DominatorTree;
class DominanceFrontier; class DominanceFrontier;
class AliasSetTracker; class AliasSetTracker;
struct LLVMContext; class LLVMContext;
/// isAllocaPromotable - Return true if this alloca is legal for promotion. /// isAllocaPromotable - Return true if this alloca is legal for promotion.
/// This is true if there are only loads and stores to the alloca... /// This is true if there are only loads and stores to the alloca...

View File

@ -20,7 +20,7 @@
namespace llvm { namespace llvm {
class Value; class Value;
class Instruction; class Instruction;
struct LLVMContext; class LLVMContext;
typedef DenseMap<const Value *, Value *> ValueMapTy; typedef DenseMap<const Value *, Value *> ValueMapTy;
Value *MapValue(const Value *V, ValueMapTy &VM, LLVMContext &Context); Value *MapValue(const Value *V, ValueMapTy &VM, LLVMContext &Context);

View File

@ -42,7 +42,7 @@ typedef StringMapEntry<Value*> ValueName;
class raw_ostream; class raw_ostream;
class AssemblyAnnotationWriter; class AssemblyAnnotationWriter;
class ValueHandleBase; class ValueHandleBase;
struct LLVMContext; class LLVMContext;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// Value Class // Value Class

View File

@ -31,7 +31,7 @@
namespace llvm { namespace llvm {
struct LLVMContext; class LLVMContext;
/// The ArchiveMemberHeader structure is used internally for bitcode /// The ArchiveMemberHeader structure is used internally for bitcode
/// archives. /// archives.

View File

@ -24,7 +24,7 @@ namespace llvm {
class MemoryBuffer; class MemoryBuffer;
class Type; class Type;
class SMDiagnostic; class SMDiagnostic;
struct LLVMContext; class LLVMContext;
class LLLexer { class LLLexer {
const char *CurPtr; const char *CurPtr;

View File

@ -26,7 +26,7 @@
namespace llvm { namespace llvm {
class MemoryBuffer; class MemoryBuffer;
struct LLVMContext; class LLVMContext;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// BitcodeReaderValueList Class // BitcodeReaderValueList Class

View File

@ -23,7 +23,7 @@ namespace llvm {
class Value; class Value;
class Constant; class Constant;
class Type; class Type;
struct LLVMContext; class LLVMContext;
// Constant fold various types of instruction... // Constant fold various types of instruction...
Constant *ConstantFoldCastInstruction( Constant *ConstantFoldCastInstruction(

View File

@ -8,7 +8,7 @@
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// //
// This file implements LLVMContext, as a wrapper around the opaque // This file implements LLVMContext, as a wrapper around the opaque
// struct LLVMContextImpl. // class LLVMContextImpl.
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//

View File

@ -34,7 +34,7 @@ class ConstantInt;
class ConstantFP; class ConstantFP;
class MDString; class MDString;
class MDNode; class MDNode;
struct LLVMContext; class LLVMContext;
class Type; class Type;
class Value; class Value;
@ -90,7 +90,8 @@ struct DenseMapAPFloatKeyInfo {
static bool isPod() { return false; } static bool isPod() { return false; }
}; };
struct LLVMContextImpl { class LLVMContextImpl {
public:
sys::SmartRWMutex<true> ConstantsLock; sys::SmartRWMutex<true> ConstantsLock;
typedef DenseMap<DenseMapAPIntKeyInfo::KeyTy, ConstantInt*, typedef DenseMap<DenseMapAPIntKeyInfo::KeyTy, ConstantInt*,

View File

@ -30,7 +30,7 @@ class Function;
class BasicBlock; class BasicBlock;
class AbstractInterpreter; class AbstractInterpreter;
class Instruction; class Instruction;
struct LLVMContext; class LLVMContext;
class DebugCrashes; class DebugCrashes;

View File

@ -24,7 +24,7 @@ namespace llvm {
struct SourceLanguage; struct SourceLanguage;
class ProgramInfo; class ProgramInfo;
class RuntimeInfo; class RuntimeInfo;
struct LLVMContext; class LLVMContext;
/// CLIDebugger - This class implements the command line interface for the /// CLIDebugger - This class implements the command line interface for the
/// LLVM debugger. /// LLVM debugger.