mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
Add an LLVMContext to Type, hardwired to the global context until Type uniquing is moved on the contexts themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75853 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0c77db32dd
commit
fea4ec6dff
@ -12,6 +12,7 @@
|
|||||||
#define LLVM_TYPE_H
|
#define LLVM_TYPE_H
|
||||||
|
|
||||||
#include "llvm/AbstractTypeUser.h"
|
#include "llvm/AbstractTypeUser.h"
|
||||||
|
#include "llvm/LLVMContext.h"
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
#include "llvm/Support/DataTypes.h"
|
#include "llvm/Support/DataTypes.h"
|
||||||
#include "llvm/System/Atomic.h"
|
#include "llvm/System/Atomic.h"
|
||||||
@ -106,6 +107,9 @@ private:
|
|||||||
///
|
///
|
||||||
mutable sys::cas_flag RefCount;
|
mutable sys::cas_flag RefCount;
|
||||||
|
|
||||||
|
/// Context - This refers to the LLVMContext in which this type was uniqued.
|
||||||
|
LLVMContext &Context;
|
||||||
|
|
||||||
const Type *getForwardedTypeInternal() const;
|
const Type *getForwardedTypeInternal() const;
|
||||||
|
|
||||||
// Some Type instances are allocated as arrays, some aren't. So we provide
|
// Some Type instances are allocated as arrays, some aren't. So we provide
|
||||||
@ -114,7 +118,8 @@ private:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
explicit Type(TypeID id) : ID(id), Abstract(false), SubclassData(0),
|
explicit Type(TypeID id) : ID(id), Abstract(false), SubclassData(0),
|
||||||
RefCount(0), ForwardType(0), NumContainedTys(0),
|
RefCount(0), Context(getGlobalContext()),
|
||||||
|
ForwardType(0), NumContainedTys(0),
|
||||||
ContainedTys(0) {}
|
ContainedTys(0) {}
|
||||||
virtual ~Type() {
|
virtual ~Type() {
|
||||||
assert(AbstractTypeUsers.empty() && "Abstract types remain");
|
assert(AbstractTypeUsers.empty() && "Abstract types remain");
|
||||||
@ -170,6 +175,9 @@ public:
|
|||||||
/// module).
|
/// module).
|
||||||
void dump(const Module *Context) const;
|
void dump(const Module *Context) const;
|
||||||
|
|
||||||
|
/// getContext - Fetch the LLVMContext in which this type was uniqued.
|
||||||
|
LLVMContext &getContext() const { return Context; }
|
||||||
|
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
// Property accessors for dealing with types... Some of these virtual methods
|
// Property accessors for dealing with types... Some of these virtual methods
|
||||||
// are defined in private classes defined in Type.cpp for primitive types.
|
// are defined in private classes defined in Type.cpp for primitive types.
|
||||||
|
Loading…
Reference in New Issue
Block a user