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:
parent
92bda7b2e0
commit
9a590500ea
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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> {
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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>
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
|
||||||
struct LLVMContext;
|
class LLVMContext;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// TerminatorInst Class
|
// TerminatorInst Class
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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> {
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
||||||
///
|
///
|
||||||
|
@ -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;
|
||||||
|
@ -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...
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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.
|
||||||
|
@ -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;
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
class MemoryBuffer;
|
class MemoryBuffer;
|
||||||
struct LLVMContext;
|
class LLVMContext;
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// BitcodeReaderValueList Class
|
// BitcodeReaderValueList Class
|
||||||
|
@ -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(
|
||||||
|
@ -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.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
@ -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*,
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
Loading…
Reference in New Issue
Block a user