mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-29 13:24:25 +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:
@ -35,6 +35,8 @@ class PointerType;
|
|||||||
class StructType;
|
class StructType;
|
||||||
class ArrayType;
|
class ArrayType;
|
||||||
class VectorType;
|
class VectorType;
|
||||||
|
class OpaqueType;
|
||||||
|
class FunctionType;
|
||||||
class Type;
|
class Type;
|
||||||
class APInt;
|
class APInt;
|
||||||
class APFloat;
|
class APFloat;
|
||||||
@ -165,6 +167,34 @@ public:
|
|||||||
Constant* getConstantVector(const std::vector<Constant*>& V);
|
Constant* getConstantVector(const std::vector<Constant*>& V);
|
||||||
Constant* getConstantVector(Constant* const* Vals, unsigned NumVals);
|
Constant* getConstantVector(Constant* const* Vals, unsigned NumVals);
|
||||||
ConstantVector* getConstantVectorAllOnes(const VectorType* Ty);
|
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/LLVMContext.h"
|
||||||
#include "llvm/Constants.h"
|
#include "llvm/Constants.h"
|
||||||
|
#include "llvm/DerivedTypes.h"
|
||||||
#include "LLVMContextImpl.h"
|
#include "LLVMContextImpl.h"
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
@ -382,3 +383,60 @@ Constant* LLVMContext::getConstantVector(Constant* const* Vals,
|
|||||||
ConstantVector* LLVMContext::getConstantVectorAllOnes(const VectorType* Ty) {
|
ConstantVector* LLVMContext::getConstantVectorAllOnes(const VectorType* Ty) {
|
||||||
return ConstantVector::getAllOnesValue(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);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user