mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-01 15:40:55 +03:00
Fix some LLVM 16 deprecations wrt. DataLayout::getABITypeAlignment() and llvm::makeArrayRef()
This commit is contained in:
parent
2e39008fad
commit
c8857e8cb8
7 changed files with 14 additions and 23 deletions
|
@ -624,11 +624,10 @@ void initializeArrayLiteral(IRState *p, ArrayLiteralExp *ale,
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
LLConstant *DtoConstSlice(LLConstant *dim, LLConstant *ptr, Type *type) {
|
||||
LLConstant *values[2] = {dim, ptr};
|
||||
llvm::ArrayRef<LLConstant *> valuesRef = llvm::makeArrayRef(values, 2);
|
||||
LLStructType *lltype =
|
||||
type ? isaStruct(DtoType(type))
|
||||
: LLConstantStruct::getTypeForElements(gIR->context(), valuesRef);
|
||||
return LLConstantStruct::get(lltype, valuesRef);
|
||||
: LLConstantStruct::getTypeForElements(gIR->context(), values);
|
||||
return LLConstantStruct::get(lltype, values);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -117,7 +117,7 @@ public:
|
|||
if (Count && Count % NumTypesPerWord == 0) {
|
||||
using namespace llvm::support;
|
||||
uint64_t Swapped = endian::byte_swap<uint64_t, little>(Working);
|
||||
MD5.update(llvm::makeArrayRef((uint8_t *)&Swapped, sizeof(Swapped)));
|
||||
MD5.update(llvm::ArrayRef<uint8_t>((uint8_t *)&Swapped, sizeof(Swapped)));
|
||||
Working = 0;
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ public:
|
|||
if (Working) {
|
||||
using namespace llvm::support;
|
||||
uint64_t Swapped = endian::byte_swap<uint64_t, little>(Working);
|
||||
MD5.update(llvm::makeArrayRef((uint8_t *)&Swapped, sizeof(Swapped)));
|
||||
MD5.update(llvm::ArrayRef<uint8_t>((uint8_t *)&Swapped, sizeof(Swapped)));
|
||||
}
|
||||
|
||||
// Finalize the MD5 and return the hash.
|
||||
|
|
|
@ -46,7 +46,7 @@ void RTTIBuilder::push(llvm::Constant *C) {
|
|||
// We need to explicitly zero any padding bytes as per TDPL §7.1.1 (and
|
||||
// also match the struct type lowering code here).
|
||||
const uint64_t fieldStart = llvm::alignTo(
|
||||
prevFieldEnd, gDataLayout->getABITypeAlignment(C->getType()));
|
||||
prevFieldEnd, gDataLayout->getABITypeAlign(C->getType()).value());
|
||||
|
||||
const uint64_t paddingBytes = fieldStart - prevFieldEnd;
|
||||
if (paddingBytes) {
|
||||
|
|
|
@ -102,7 +102,7 @@ void Target::_init(const Param ¶ms) {
|
|||
realType = getRealType(triple);
|
||||
realsize = gDataLayout->getTypeAllocSize(realType);
|
||||
realpad = realsize - gDataLayout->getTypeStoreSize(realType);
|
||||
realalignsize = gDataLayout->getABITypeAlignment(realType);
|
||||
realalignsize = gDataLayout->getABITypeAlign(realType).value();
|
||||
classinfosize = 0; // unused
|
||||
maxStaticDataSize = std::numeric_limits<unsigned long long>::max();
|
||||
|
||||
|
@ -211,7 +211,7 @@ unsigned Target::alignsize(Type *type) {
|
|||
if (type->ty == TY::Tvoid) {
|
||||
return 1;
|
||||
}
|
||||
return gDataLayout->getABITypeAlignment(DtoType(type));
|
||||
return gDataLayout->getABITypeAlign(DtoType(type)).value();
|
||||
}
|
||||
|
||||
/******************************
|
||||
|
|
|
@ -532,9 +532,7 @@ LLValue *DtoLoad(DLValue *src, const char *name) {
|
|||
// the type.
|
||||
LLValue *DtoAlignedLoad(LLType *type, LLValue *src, const char *name) {
|
||||
llvm::LoadInst *ld = DtoLoadImpl(type, src, name);
|
||||
if (auto alignment = getABITypeAlign(ld->getType())) {
|
||||
ld->setAlignment(llvm::Align(alignment));
|
||||
}
|
||||
ld->setAlignment(gDataLayout->getABITypeAlign(ld->getType()));
|
||||
return ld;
|
||||
}
|
||||
|
||||
|
@ -570,9 +568,7 @@ void DtoAlignedStore(LLValue *src, LLValue *dst) {
|
|||
assert(!src->getType()->isIntegerTy(1) &&
|
||||
"Should store bools as i8 instead of i1.");
|
||||
llvm::StoreInst *st = gIR->ir->CreateStore(src, dst);
|
||||
if (auto alignment = getABITypeAlign(src->getType())) {
|
||||
st->setAlignment(llvm::Align(alignment));
|
||||
}
|
||||
st->setAlignment(gDataLayout->getABITypeAlign(src->getType()));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -747,7 +743,7 @@ size_t getTypeStoreSize(LLType *t) { return gDataLayout->getTypeStoreSize(t); }
|
|||
size_t getTypeAllocSize(LLType *t) { return gDataLayout->getTypeAllocSize(t); }
|
||||
|
||||
unsigned int getABITypeAlign(LLType *t) {
|
||||
return gDataLayout->getABITypeAlignment(t);
|
||||
return gDataLayout->getABITypeAlign(t).value();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -121,8 +121,7 @@ LLGlobalVariable *IrClass::getClassInfoSymbol(bool define) {
|
|||
// Construct the metadata and insert it into the module.
|
||||
const auto metaname = getMetadataName(CD_PREFIX, typeInfo);
|
||||
llvm::NamedMDNode *node = gIR->module.getOrInsertNamedMetadata(metaname);
|
||||
node->addOperand(llvm::MDNode::get(
|
||||
gIR->context(), llvm::makeArrayRef(mdVals, CD_NumFields)));
|
||||
node->addOperand(llvm::MDNode::get(gIR->context(), mdVals));
|
||||
}
|
||||
|
||||
if (!define)
|
||||
|
@ -738,8 +737,7 @@ LLConstant *IrClass::getClassInfoInterfaces() {
|
|||
|
||||
// create Interface struct
|
||||
LLConstant *inits[3] = {ci, vtb, off};
|
||||
LLConstant *entry =
|
||||
LLConstantStruct::get(interface_type, llvm::makeArrayRef(inits, 3));
|
||||
LLConstant *entry = LLConstantStruct::get(interface_type, inits);
|
||||
constants.push_back(entry);
|
||||
}
|
||||
|
||||
|
|
|
@ -71,16 +71,14 @@ allocParam(llvm::IRBuilder<> &builder, llvm::Type &srcType,
|
|||
if (param.type == ParamType::Aggregate && srcType.isPointerTy()) {
|
||||
auto elemType = srcType.getPointerElementType();
|
||||
auto stackArg = builder.CreateAlloca(elemType);
|
||||
if (auto alignment = layout.getABITypeAlignment(elemType))
|
||||
stackArg->setAlignment(llvm::Align(alignment));
|
||||
stackArg->setAlignment(layout.getABITypeAlign(elemType));
|
||||
auto init =
|
||||
parseInitializer(layout, *elemType, param.data, errHandler, override);
|
||||
builder.CreateStore(init, stackArg);
|
||||
return stackArg;
|
||||
}
|
||||
auto stackArg = builder.CreateAlloca(&srcType);
|
||||
if (auto alignment = layout.getABITypeAlignment(&srcType))
|
||||
stackArg->setAlignment(llvm::Align(alignment));
|
||||
stackArg->setAlignment(layout.getABITypeAlign(&srcType));
|
||||
auto init =
|
||||
parseInitializer(layout, srcType, param.data, errHandler, override);
|
||||
builder.CreateStore(init, stackArg);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue