mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Implement address space attribute for LLVM pointer types. Address spaces are
regions of memory that have a target specific relationship, as described in the Embedded C Technical Report. This also implements the 2007-12-11-AddressSpaces test, which demonstrates how address space attributes can be used in LLVM IR. In addition, this patch changes the bitcode signature for stores (in a backwards compatible manner), such that the pointer type, rather than the pointee type, is encoded. This permits type information in the pointer (e.g. address space) to be preserved for stores. LangRef updates are forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44858 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -50,12 +50,14 @@ public:
|
||||
/// automatically inserted into the end of the specified modules global list.
|
||||
GlobalVariable(const Type *Ty, bool isConstant, LinkageTypes Linkage,
|
||||
Constant *Initializer = 0, const std::string &Name = "",
|
||||
Module *Parent = 0, bool ThreadLocal = false);
|
||||
Module *Parent = 0, bool ThreadLocal = false,
|
||||
unsigned AddressSpace = 0);
|
||||
/// GlobalVariable ctor - This creates a global and inserts it before the
|
||||
/// specified other global.
|
||||
GlobalVariable(const Type *Ty, bool isConstant, LinkageTypes Linkage,
|
||||
Constant *Initializer, const std::string &Name,
|
||||
GlobalVariable *InsertBefore, bool ThreadLocal = false);
|
||||
GlobalVariable *InsertBefore, bool ThreadLocal = false,
|
||||
unsigned AddressSpace = 0);
|
||||
|
||||
/// isDeclaration - Is this global variable lacking an initializer? If so,
|
||||
/// the global variable is defined in some other translation unit, and is thus
|
||||
|
Reference in New Issue
Block a user