llvm.org GIT mirror llvm / 12ddd40
Make LLVMContext and LLVMContextImpl classes instead of structs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78690 91177308-0d34-0410-b5e6-96231b3b80d8 Benjamin Kramer 11 years ago
40 changed file(s) with 45 addition(s) and 43 deletion(s). Raw diff Collapse all Expand all
2121 class TargetData;
2222 class Function;
2323 class Type;
24 struct LLVMContext;
24 class LLVMContext;
2525
2626 /// ConstantFoldInstruction - Attempt to constant fold the specified
2727 /// instruction. If successful, the constant result is returned, if not, null
3939 class DebugLoc;
4040 struct DebugLocTracker;
4141 class Instruction;
42 struct LLVMContext;
42 class LLVMContext;
4343
4444 class DIDescriptor {
4545 protected:
4040 class Type;
4141 class ScalarEvolution;
4242 class TargetData;
43 struct LLVMContext;
43 class LLVMContext;
4444 class Loop;
4545 class LoopInfo;
4646 class Operator;
3030 class BasicBlock;
3131 class Function;
3232 class SparseSolver;
33 struct LLVMContext;
33 class LLVMContext;
3434
3535 template class SmallVectorImpl;
3636
2222 class Instruction;
2323 class APInt;
2424 class TargetData;
25 struct LLVMContext;
25 class LLVMContext;
2626
2727 /// ComputeMaskedBits - Determine which of the bits specified in Mask are
2828 /// known to be either zero or one and return them in the KnownZero/KnownOne
2020 class Module;
2121 class SMDiagnostic;
2222 class raw_ostream;
23 struct LLVMContext;
23 class LLVMContext;
2424
2525 /// This function is the main interface to the LLVM Assembly Parser. It parses
2626 /// an ASCII file that (presumably) contains LLVM Assembly code. It returns a
2121 namespace llvm {
2222
2323 class TerminatorInst;
24 struct LLVMContext;
24 class LLVMContext;
2525
2626 template<> struct ilist_traits
2727 : public SymbolTableListTraits {
3131 class Module; // From VMCore
3232 class Archive; // Declared below
3333 class ArchiveMemberHeader; // Internal implementation class
34 struct LLVMContext; // Global data
34 class LLVMContext; // Global data
3535
3636 /// This class is the main class manipulated by users of the Archive class. It
3737 /// holds information about one member of the Archive. It is also the element
2222 class MemoryBuffer;
2323 class ModulePass;
2424 class BitstreamWriter;
25 struct LLVMContext;
25 class LLVMContext;
2626 class raw_ostream;
2727
2828 /// getBitcodeModuleProvider - Read the header of the specified bitcode buffer
2222
2323 namespace llvm {
2424 class Type;
25 struct LLVMContext;
25 class LLVMContext;
2626
2727 struct EVT { // EVT = Machine Value Type
2828 public:
1919 class APInt;
2020
2121 template class SmallVectorImpl;
22 struct LLVMContext;
22 class LLVMContext;
2323
2424 /// This is an important base class in LLVM. It provides the common facilities
2525 /// of all constant values in an LLVM program. A constant is a value that is
230230 APFloat Val;
231231 void *operator new(size_t, unsigned);// DO NOT IMPLEMENT
232232 ConstantFP(const ConstantFP &); // DO NOT IMPLEMENT
233 friend struct LLVMContextImpl;
233 friend class LLVMContextImpl;
234234 protected:
235235 ConstantFP(const Type *Ty, const APFloat& V);
236236 protected:
1919 namespace llvm {
2020 class Module;
2121 class InferiorProcess;
22 struct LLVMContext;
22 class LLVMContext;
2323
2424 /// Debugger class - This class implements the LLVM source-level debugger.
2525 /// This allows clients to handle the user IO processing without having to
3030 class VectorValType;
3131 class IntegerValType;
3232 class APInt;
33 struct LLVMContext;
33 class LLVMContext;
3434
3535 class DerivedType : public Type {
3636 friend class Type;
2525 namespace llvm {
2626
2727 class FunctionType;
28 struct LLVMContext;
28 class LLVMContext;
2929
3030 // Traits for intrusive list of basic blocks...
3131 template<> struct ilist_traits
2727
2828 class Module;
2929 class Constant;
30 struct LLVMContext;
30 class LLVMContext;
3131 template
3232 class SymbolTableListTraits;
3333
2222
2323 namespace llvm {
2424
25 struct LLVMContext;
25 class LLVMContext;
2626
2727 //===----------------------------------------------------------------------===//
2828 // TerminatorInst Class
1919
2020 namespace llvm {
2121
22 struct LLVMContext;
22 class LLVMContext;
2323
2424 template
2525 class SymbolTableListTraits;
2828 class ConstantInt;
2929 class ConstantRange;
3030 class APInt;
31 struct LLVMContext;
31 class LLVMContext;
3232
3333 //===----------------------------------------------------------------------===//
3434 // AllocationInst Class
2222 class Type;
2323 class FunctionType;
2424 class Function;
25 struct LLVMContext;
25 class LLVMContext;
2626 class Module;
2727 class AttrListPtr;
2828
1616
1717 namespace llvm {
1818
19 struct LLVMContextImpl;
19 class LLVMContextImpl;
2020
2121 /// This is an important class for using LLVM in a threaded context. It
2222 /// (opaquely) owns and manages the core "global" data of LLVM's core
2323 /// infrastructure, including the type and constant uniquing tables.
2424 /// LLVMContext itself provides no locking guarantees, so you should be careful
2525 /// to have one context per thread.
26 struct LLVMContext {
26 class LLVMContext {
27 public:
2728 LLVMContextImpl* pImpl;
2829 bool RemoveDeadMetadata();
2930 LLVMContext();
2020 namespace llvm {
2121
2222 class Module;
23 struct LLVMContext;
23 class LLVMContext;
2424
2525 /// This class provides the core functionality of linking in LLVM. It retains a
2626 /// Module object which is the composite of the modules and libraries linked
2525
2626 namespace llvm {
2727 class Constant;
28 struct LLVMContext;
28 class LLVMContext;
2929 template
3030 struct ConstantCreator;
3131
204204
205205 class NamedMDNode : public MetadataBase, public ilist_node {
206206 friend class SymbolTableListTraits;
207 friend struct LLVMContextImpl;
207 friend class LLVMContextImpl;
208208
209209 NamedMDNode(const NamedMDNode &); // DO NOT IMPLEMENT
210210 void *operator new(size_t, unsigned); // DO NOT IMPLEMENT
2525
2626 class GlobalValueRefMap; // Used by ConstantVals.cpp
2727 class FunctionType;
28 struct LLVMContext;
28 class LLVMContext;
2929
3030 template<> struct ilist_traits
3131 : public SymbolTableListTraits {
2020
2121 namespace llvm {
2222
23 struct LLVMContext;
23 class LLVMContext;
2424
2525 /// ConstantFolder - Create constants with minimum, target independent, folding.
2626 class ConstantFolder {
2727
2828 namespace llvm {
2929
30 struct LLVMContext;
30 class LLVMContext;
3131
3232 /// NoFolder - Create "constants" (actually, values) with no folding.
3333 class NoFolder {
2424 namespace llvm {
2525
2626 class TargetData;
27 struct LLVMContext;
27 class LLVMContext;
2828
2929 /// TargetFolder - Create constants with target dependent folding.
3030 class TargetFolder {
3737 class TargetData;
3838 class Loop;
3939 class LoopInfo;
40 struct LLVMContext;
40 class LLVMContext;
4141
4242 /// CloneModule - Return an exact copy of the specified module
4343 ///
2626 class AllocaInst;
2727 class ConstantExpr;
2828 class TargetData;
29 struct LLVMContext;
29 class LLVMContext;
3030 struct DbgInfoIntrinsic;
3131
3232 template class SmallVectorImpl;
2222 class DominatorTree;
2323 class DominanceFrontier;
2424 class AliasSetTracker;
25 struct LLVMContext;
25 class LLVMContext;
2626
2727 /// isAllocaPromotable - Return true if this alloca is legal for promotion.
2828 /// This is true if there are only loads and stores to the alloca...
1919 namespace llvm {
2020 class Value;
2121 class Instruction;
22 struct LLVMContext;
22 class LLVMContext;
2323 typedef DenseMap ValueMapTy;
2424
2525 Value *MapValue(const Value *V, ValueMapTy &VM, LLVMContext &Context);
4141 class raw_ostream;
4242 class AssemblyAnnotationWriter;
4343 class ValueHandleBase;
44 struct LLVMContext;
44 class LLVMContext;
4545
4646 //===----------------------------------------------------------------------===//
4747 // Value Class
3030
3131 namespace llvm {
3232
33 struct LLVMContext;
33 class LLVMContext;
3434
3535 /// The ArchiveMemberHeader structure is used internally for bitcode
3636 /// archives.
2323 class MemoryBuffer;
2424 class Type;
2525 class SMDiagnostic;
26 struct LLVMContext;
26 class LLVMContext;
2727
2828 class LLLexer {
2929 const char *CurPtr;
2525
2626 namespace llvm {
2727 class MemoryBuffer;
28 struct LLVMContext;
28 class LLVMContext;
2929
3030 //===----------------------------------------------------------------------===//
3131 // BitcodeReaderValueList Class
2222 class Value;
2323 class Constant;
2424 class Type;
25 struct LLVMContext;
25 class LLVMContext;
2626
2727 // Constant fold various types of instruction...
2828 Constant *ConstantFoldCastInstruction(
77 //===----------------------------------------------------------------------===//
88 //
99 // This file implements LLVMContext, as a wrapper around the opaque
10 // struct LLVMContextImpl.
10 // class LLVMContextImpl.
1111 //
1212 //===----------------------------------------------------------------------===//
1313
3333 class ConstantFP;
3434 class MDString;
3535 class MDNode;
36 struct LLVMContext;
36 class LLVMContext;
3737 class Type;
3838 class Value;
3939
8989 static bool isPod() { return false; }
9090 };
9191
92 struct LLVMContextImpl {
92 class LLVMContextImpl {
93 public:
9394 sys::SmartRWMutex ConstantsLock;
9495
9596 typedef DenseMap
2929 class BasicBlock;
3030 class AbstractInterpreter;
3131 class Instruction;
32 struct LLVMContext;
32 class LLVMContext;
3333
3434 class DebugCrashes;
3535
2323 struct SourceLanguage;
2424 class ProgramInfo;
2525 class RuntimeInfo;
26 struct LLVMContext;
26 class LLVMContext;
2727
2828 /// CLIDebugger - This class implements the command line interface for the
2929 /// LLVM debugger.