Finalize support for LLVM 10 (#3323)

This commit is contained in:
Martin Kinkelin 2020-02-14 17:53:40 +01:00 committed by GitHub
parent e0a91d5b76
commit 2d86e49fba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 1934 additions and 38 deletions

View file

@ -18,6 +18,12 @@
#include "valueparser.h"
#if LDC_LLVM_VER >= 1000
#define LLMaybeAlign llvm::MaybeAlign
#else
#define LLMaybeAlign
#endif
namespace {
enum { SmallParamsCount = 5 };
@ -71,14 +77,14 @@ allocParam(llvm::IRBuilder<> &builder, llvm::Type &srcType,
if (param.type == ParamType::Aggregate && srcType.isPointerTy()) {
auto elemType = llvm::cast<llvm::PointerType>(&srcType)->getElementType();
auto stackArg = builder.CreateAlloca(elemType);
stackArg->setAlignment(layout.getABITypeAlignment(elemType));
stackArg->setAlignment(LLMaybeAlign(layout.getABITypeAlignment(elemType)));
auto init =
parseInitializer(layout, *elemType, param.data, errHandler, override);
builder.CreateStore(init, stackArg);
return stackArg;
}
auto stackArg = builder.CreateAlloca(&srcType);
stackArg->setAlignment(layout.getABITypeAlignment(&srcType));
stackArg->setAlignment(LLMaybeAlign(layout.getABITypeAlignment(&srcType)));
auto init =
parseInitializer(layout, srcType, param.data, errHandler, override);
builder.CreateStore(init, stackArg);