mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-21 18:29:46 +00:00
Add wrappers for type construction to LLVMContext.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74542 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2c6f9f7227
commit
72bf4473a6
@ -35,6 +35,8 @@ class PointerType;
|
||||
class StructType;
|
||||
class ArrayType;
|
||||
class VectorType;
|
||||
class OpaqueType;
|
||||
class FunctionType;
|
||||
class Type;
|
||||
class APInt;
|
||||
class APFloat;
|
||||
@ -165,6 +167,34 @@ public:
|
||||
Constant* getConstantVector(const std::vector<Constant*>& V);
|
||||
Constant* getConstantVector(Constant* const* Vals, unsigned NumVals);
|
||||
ConstantVector* getConstantVectorAllOnes(const VectorType* Ty);
|
||||
|
||||
// FunctionType accessors
|
||||
FunctionType* getFunctionType(const Type* Result,
|
||||
const std::vector<const Type*>& Params,
|
||||
bool isVarArg);
|
||||
|
||||
// IntegerType accessors
|
||||
const IntegerType* getIntegerType(unsigned NumBits);
|
||||
|
||||
// OpaqueType accessors
|
||||
OpaqueType* getOpaqueType();
|
||||
|
||||
// StructType accessors
|
||||
StructType* getStructType(const std::vector<const Type*>& Params,
|
||||
bool isPacked = false);
|
||||
|
||||
// ArrayType accessors
|
||||
ArrayType* getArrayType(const Type* ElementType, uint64_t NumElements);
|
||||
|
||||
// PointerType accessors
|
||||
PointerType* getPointerType(const Type* ElementType, unsigned AddressSpace);
|
||||
PointerType* getPointerTypeUnqualified(const Type* ElementType);
|
||||
|
||||
// VectorType accessors
|
||||
VectorType* getVectorType(const Type* ElementType, unsigned NumElements);
|
||||
VectorType* getVectorTypeInteger(const VectorType* VTy);
|
||||
VectorType* getVectorTypeExtendedElement(const VectorType* VTy);
|
||||
VectorType* getVectorTypeTruncatedElement(const VectorType* VTy);
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
|
||||
#include "llvm/LLVMContext.h"
|
||||
#include "llvm/Constants.h"
|
||||
#include "llvm/DerivedTypes.h"
|
||||
#include "LLVMContextImpl.h"
|
||||
|
||||
using namespace llvm;
|
||||
@ -382,3 +383,60 @@ Constant* LLVMContext::getConstantVector(Constant* const* Vals,
|
||||
ConstantVector* LLVMContext::getConstantVectorAllOnes(const VectorType* Ty) {
|
||||
return ConstantVector::getAllOnesValue(Ty);
|
||||
}
|
||||
|
||||
// FunctionType accessors
|
||||
FunctionType* LLVMContext::getFunctionType(const Type* Result,
|
||||
const std::vector<const Type*>& Params,
|
||||
bool isVarArg) {
|
||||
return FunctionType::get(Result, Params, isVarArg);
|
||||
}
|
||||
|
||||
// IntegerType accessors
|
||||
const IntegerType* LLVMContext::getIntegerType(unsigned NumBits) {
|
||||
return IntegerType::get(NumBits);
|
||||
}
|
||||
|
||||
// OpaqueType accessors
|
||||
OpaqueType* LLVMContext::getOpaqueType() {
|
||||
return OpaqueType::get();
|
||||
}
|
||||
|
||||
// StructType accessors
|
||||
StructType* LLVMContext::getStructType(const std::vector<const Type*>& Params,
|
||||
bool isPacked) {
|
||||
return StructType::get(Params, isPacked);
|
||||
}
|
||||
|
||||
// ArrayType accessors
|
||||
ArrayType* LLVMContext::getArrayType(const Type* ElementType,
|
||||
uint64_t NumElements) {
|
||||
return ArrayType::get(ElementType, NumElements);
|
||||
}
|
||||
|
||||
// PointerType accessors
|
||||
PointerType* LLVMContext::getPointerType(const Type* ElementType,
|
||||
unsigned AddressSpace) {
|
||||
return PointerType::get(ElementType, AddressSpace);
|
||||
}
|
||||
|
||||
PointerType* LLVMContext::getPointerTypeUnqualified(const Type* ElementType) {
|
||||
return PointerType::getUnqual(ElementType);
|
||||
}
|
||||
|
||||
// VectorType accessors
|
||||
VectorType* LLVMContext::getVectorType(const Type* ElementType,
|
||||
unsigned NumElements) {
|
||||
return VectorType::get(ElementType, NumElements);
|
||||
}
|
||||
|
||||
VectorType* LLVMContext::getVectorTypeInteger(const VectorType* VTy) {
|
||||
return VectorType::getInteger(VTy);
|
||||
}
|
||||
|
||||
VectorType* LLVMContext::getVectorTypeExtendedElement(const VectorType* VTy) {
|
||||
return VectorType::getExtendedElementVectorType(VTy);
|
||||
}
|
||||
|
||||
VectorType* LLVMContext::getVectorTypeTruncatedElement(const VectorType* VTy) {
|
||||
return VectorType::getTruncatedElementVectorType(VTy);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user