From d64e5b93cc5decc3f458fbdc929638a56f9abf67 Mon Sep 17 00:00:00 2001 From: Francesco Bertolaccini Date: Wed, 19 Oct 2022 15:53:00 +0200 Subject: [PATCH 1/9] Migrate to LLVM15 --- lib/AST/ASTBuilder.cpp | 12 ++- lib/AST/DebugInfoCollector.cpp | 1 + lib/AST/StructGenerator.cpp | 1 + lib/BC/Util.cpp | 1 + tools/decomp/Decomp.cpp | 2 - tools/repl/Repl.cpp | 1 - tools/xref/DeclPrinter.cpp | 17 ++- tools/xref/StmtPrinter.cpp | 184 ++++++++++++++++++++++++++++----- tools/xref/TypePrinter.cpp | 55 +++++++++- tools/xref/Xref.cpp | 1 - 10 files changed, 236 insertions(+), 39 deletions(-) diff --git a/lib/AST/ASTBuilder.cpp b/lib/AST/ASTBuilder.cpp index 8f969c94..08b9e352 100644 --- a/lib/AST/ASTBuilder.cpp +++ b/lib/AST/ASTBuilder.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -33,11 +34,13 @@ enum CExprPrecedence : unsigned { namespace { static unsigned GetOperatorPrecedence(clang::UnaryOperatorKind opc) { - return static_cast(CExprPrecedence::UnaryOp) + static_cast(opc); + return static_cast(CExprPrecedence::UnaryOp) + + static_cast(opc); } static unsigned GetOperatorPrecedence(clang::BinaryOperatorKind opc) { - return static_cast(CExprPrecedence::BinaryOp) + static_cast(opc); + return static_cast(CExprPrecedence::BinaryOp) + + static_cast(opc); } static unsigned GetOperatorPrecedence(clang::Expr *op) { @@ -186,7 +189,7 @@ clang::CharacterLiteral *ASTBuilder::CreateCharLit(unsigned val) { clang::StringLiteral *ASTBuilder::CreateStrLit(std::string val) { auto type{ctx.getStringLiteralArrayType(ctx.CharTy, val.size())}; return clang::StringLiteral::Create( - ctx, val, clang::StringLiteral::StringKind::Ascii, + ctx, val, clang::StringLiteral::StringKind::Ordinary, /*Pascal=*/false, type, clang::SourceLocation()); } @@ -459,7 +462,8 @@ clang::CompoundStmt *ASTBuilder::CreateCompoundStmt( // sema.ActOnFinishOfCompoundStmt(); // CHECK(sr.isUsable()); // return sr.getAs(); - return clang::CompoundStmt::Create(ctx, stmts, clang::SourceLocation(), + return clang::CompoundStmt::Create(ctx, stmts, clang::FPOptionsOverride{}, + clang::SourceLocation(), clang::SourceLocation()); } diff --git a/lib/AST/DebugInfoCollector.cpp b/lib/AST/DebugInfoCollector.cpp index b48d7ee0..f264dd58 100644 --- a/lib/AST/DebugInfoCollector.cpp +++ b/lib/AST/DebugInfoCollector.cpp @@ -11,6 +11,7 @@ #include #include +#include #include #include #include diff --git a/lib/AST/StructGenerator.cpp b/lib/AST/StructGenerator.cpp index 59f5d960..57a0d694 100644 --- a/lib/AST/StructGenerator.cpp +++ b/lib/AST/StructGenerator.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include diff --git a/lib/BC/Util.cpp b/lib/BC/Util.cpp index 63f7dd0f..165dd503 100644 --- a/lib/BC/Util.cpp +++ b/lib/BC/Util.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff --git a/tools/decomp/Decomp.cpp b/tools/decomp/Decomp.cpp index f457ad40..7ff233f2 100644 --- a/tools/decomp/Decomp.cpp +++ b/tools/decomp/Decomp.cpp @@ -111,8 +111,6 @@ int main(int argc, char* argv[]) { } std::unique_ptr llvm_ctx(new llvm::LLVMContext); - llvm_ctx->enableOpaquePointers(); - auto module{std::unique_ptr( rellic::LoadModuleFromFile(llvm_ctx.get(), FLAGS_input))}; diff --git a/tools/repl/Repl.cpp b/tools/repl/Repl.cpp index 5a9f30d7..b100959b 100644 --- a/tools/repl/Repl.cpp +++ b/tools/repl/Repl.cpp @@ -493,7 +493,6 @@ int main(int argc, char* argv[]) { SetVersion(); google::ParseCommandLineFlags(&argc, &argv, true); - llvm_ctx.enableOpaquePointers(); auto& pr{*llvm::PassRegistry::getPassRegistry()}; initializeCore(pr); initializeAnalysis(pr); diff --git a/tools/xref/DeclPrinter.cpp b/tools/xref/DeclPrinter.cpp index ad5cc8ca..35aedd0f 100644 --- a/tools/xref/DeclPrinter.cpp +++ b/tools/xref/DeclPrinter.cpp @@ -651,6 +651,10 @@ void DeclPrinter::VisitFunctionDecl(FunctionDecl *D) { if (FT->isVariadic()) { if (D->getNumParams()) POut << ", "; POut << "..."; + } else if (!D->getNumParams() && !Context.getLangOpts().CPlusPlus) { + // The function has a prototype, so it needs to retain the prototype + // in C. + POut << "void"; } } else if (D->doesThisDeclarationHaveABody() && !D->hasPrototype()) { for (unsigned i = 0, e = D->getNumParams(); i != e; ++i) { @@ -845,8 +849,11 @@ void DeclPrinter::VisitVarDecl(VarDecl *D) { Expr *Init = D->getInit(); if (!Policy.SuppressInitializers && Init) { bool ImplicitInit = false; - if (CXXConstructExpr *Construct = - dyn_cast(Init->IgnoreImplicit())) { + if (D->isCXXForRangeDecl()) { + // FIXME: We should print the range expression instead. + ImplicitInit = true; + } else if (CXXConstructExpr *Construct = + dyn_cast(Init->IgnoreImplicit())) { if (D->getInitStyle() == VarDecl::CallInit && !Construct->isListInitialization()) { ImplicitInit = Construct->getNumArgs() == 0 || @@ -945,6 +952,12 @@ void DeclPrinter::VisitCXXRecordDecl(CXXRecordDecl *D) { } } + if (D->hasDefinition()) { + if (D->hasAttr()) { + Out << " final"; + } + } + if (D->isCompleteDefinition()) { // Print the base classes if (D->getNumBases()) { diff --git a/tools/xref/StmtPrinter.cpp b/tools/xref/StmtPrinter.cpp index afec72e2..f19ba786 100644 --- a/tools/xref/StmtPrinter.cpp +++ b/tools/xref/StmtPrinter.cpp @@ -135,6 +135,7 @@ class StmtPrinter : public StmtVisitor { void PrintRawSEHFinallyStmt(SEHFinallyStmt *S); void PrintOMPExecutableDirective(OMPExecutableDirective *S, bool ForceNoStmt = false); + void PrintFPPragmas(CompoundStmt *S); void PrintExpr(Expr *E) { if (E) @@ -185,11 +186,72 @@ class StmtPrinter : public StmtVisitor { /// with no newline after the }. void StmtPrinter::PrintRawCompoundStmt(CompoundStmt *Node) { OS << "{" << NL; + PrintFPPragmas(Node); for (auto *I : Node->body()) PrintStmt(I); Indent() << "}"; } +void StmtPrinter::PrintFPPragmas(CompoundStmt *S) { + if (!S->hasStoredFPFeatures()) + return; + FPOptionsOverride FPO = S->getStoredFPFeatures(); + bool FEnvAccess = false; + if (FPO.hasAllowFEnvAccessOverride()) { + FEnvAccess = FPO.getAllowFEnvAccessOverride(); + Indent() << "#pragma STDC FENV_ACCESS " << (FEnvAccess ? "ON" : "OFF") + << NL; + } + if (FPO.hasSpecifiedExceptionModeOverride()) { + LangOptions::FPExceptionModeKind EM = + FPO.getSpecifiedExceptionModeOverride(); + if (!FEnvAccess || EM != LangOptions::FPE_Strict) { + Indent() << "#pragma clang fp exceptions("; + switch (FPO.getSpecifiedExceptionModeOverride()) { + default: + break; + case LangOptions::FPE_Ignore: + OS << "ignore"; + break; + case LangOptions::FPE_MayTrap: + OS << "maytrap"; + break; + case LangOptions::FPE_Strict: + OS << "strict"; + break; + } + OS << ")\n"; + } + } + if (FPO.hasConstRoundingModeOverride()) { + LangOptions::RoundingMode RM = FPO.getConstRoundingModeOverride(); + Indent() << "#pragma STDC FENV_ROUND "; + switch (RM) { + case llvm::RoundingMode::TowardZero: + OS << "FE_TOWARDZERO"; + break; + case llvm::RoundingMode::NearestTiesToEven: + OS << "FE_TONEAREST"; + break; + case llvm::RoundingMode::TowardPositive: + OS << "FE_UPWARD"; + break; + case llvm::RoundingMode::TowardNegative: + OS << "FE_DOWNWARD"; + break; + case llvm::RoundingMode::NearestTiesToAway: + OS << "FE_TONEARESTFROMZERO"; + break; + case llvm::RoundingMode::Dynamic: + OS << "FE_DYNAMIC"; + break; + default: + llvm_unreachable("Invalid rounding mode"); + } + OS << NL; + } +} + void StmtPrinter::PrintRawDecl(Decl *D) { PrintDecl(D, Policy, IndentLevel, OS); } @@ -751,6 +813,12 @@ void StmtPrinter::VisitOMPParallelMasterDirective( PrintOMPExecutableDirective(Node); } +void StmtPrinter::VisitOMPParallelMaskedDirective( + OMPParallelMaskedDirective *Node) { + Indent() << "#pragma omp parallel masked"; + PrintOMPExecutableDirective(Node); +} + void StmtPrinter::VisitOMPParallelSectionsDirective( OMPParallelSectionsDirective *Node) { Indent() << "#pragma omp parallel " @@ -758,6 +826,12 @@ void StmtPrinter::VisitOMPParallelSectionsDirective( PrintOMPExecutableDirective(Node); } +void StmtPrinter::VisitOMPMaskedTaskLoopDirective( + OMPMaskedTaskLoopDirective *Node) { + Indent() << "#pragma omp masked taskloop"; + PrintOMPExecutableDirective(Node); +} + void StmtPrinter::VisitOMPTaskDirective(OMPTaskDirective *Node) { Indent() << "#pragma omp task"; PrintOMPExecutableDirective(Node); @@ -906,6 +980,48 @@ void StmtPrinter::VisitOMPParallelMasterTaskLoopSimdDirective( PrintOMPExecutableDirective(Node); } +void StmtPrinter::VisitOMPMaskedTaskLoopSimdDirective( + OMPMaskedTaskLoopSimdDirective *Node) { + Indent() << "#pragma omp masked taskloop simd"; + PrintOMPExecutableDirective(Node); +} + +void StmtPrinter::VisitOMPParallelMaskedTaskLoopDirective( + OMPParallelMaskedTaskLoopDirective *Node) { + Indent() << "#pragma omp parallel masked taskloop"; + PrintOMPExecutableDirective(Node); +} + +void StmtPrinter::VisitOMPParallelMaskedTaskLoopSimdDirective( + OMPParallelMaskedTaskLoopSimdDirective *Node) { + Indent() << "#pragma omp parallel masked taskloop simd"; + PrintOMPExecutableDirective(Node); +} + +void StmtPrinter::VisitOMPTeamsGenericLoopDirective( + OMPTeamsGenericLoopDirective *Node) { + Indent() << "#pragma omp teams loop"; + PrintOMPExecutableDirective(Node); +} + +void StmtPrinter::VisitOMPTargetTeamsGenericLoopDirective( + OMPTargetTeamsGenericLoopDirective *Node) { + Indent() << "#pragma omp target teams loop"; + PrintOMPExecutableDirective(Node); +} + +void StmtPrinter::VisitOMPParallelGenericLoopDirective( + OMPParallelGenericLoopDirective *Node) { + Indent() << "#pragma omp parallel loop"; + PrintOMPExecutableDirective(Node); +} + +void StmtPrinter::VisitOMPTargetParallelGenericLoopDirective( + OMPTargetParallelGenericLoopDirective *Node) { + Indent() << "#pragma omp target parallel loop"; + PrintOMPExecutableDirective(Node); +} + void StmtPrinter::VisitOMPDistributeDirective(OMPDistributeDirective *Node) { Indent() << "#pragma omp distribute"; @@ -1054,7 +1170,7 @@ void StmtPrinter::VisitDeclRefExpr(DeclRefExpr *Node) { return; } if (const auto *TPOD = dyn_cast(Node->getDecl())) { - TPOD->printAsExpr(OS); + TPOD->printAsExpr(OS, Policy); return; } if (NestedNameSpecifier *Qualifier = Node->getQualifier()) @@ -1257,6 +1373,11 @@ void StmtPrinter::VisitIntegerLiteral(IntegerLiteral *Node) { bool isSigned = Node->getType()->isSignedIntegerType(); OS << toString(Node->getValue(), 10, isSigned); + if (isa(Node->getType())) { + OS << (isSigned ? "wb" : "uwb"); + return; + } + // Emit suffixes. Integer literals are always a builtin integer type. switch (Node->getType()->castAs()->getKind()) { default: @@ -1394,7 +1515,7 @@ void StmtPrinter::VisitImaginaryLiteral(ImaginaryLiteral *Node) { static void outputString(const StringLiteral *Str, raw_ostream &OS) { switch (Str->getKind()) { - case StringLiteral::Ascii: + case StringLiteral::Ordinary: break; // no prefix. case StringLiteral::Wide: OS << 'L'; @@ -2013,20 +2134,15 @@ void StmtPrinter::VisitCXXOperatorCallExpr(CXXOperatorCallExpr *Node) { } } else if (Kind == OO_Arrow) { PrintExpr(Node->getArg(0)); - } else if (Kind == OO_Call) { + } else if (Kind == OO_Call || Kind == OO_Subscript) { PrintExpr(Node->getArg(0)); - OS << '('; + OS << (Kind == OO_Call ? '(' : '['); for (unsigned ArgIdx = 1; ArgIdx < Node->getNumArgs(); ++ArgIdx) { if (ArgIdx > 1) OS << ", "; if (!isa(Node->getArg(ArgIdx))) PrintExpr(Node->getArg(ArgIdx)); } - OS << ')'; - } else if (Kind == OO_Subscript) { - PrintExpr(Node->getArg(0)); - OS << '['; - PrintExpr(Node->getArg(1)); - OS << ']'; + OS << (Kind == OO_Call ? ')' : ']'); } else if (Node->getNumArgs() == 1) { OS << getOperatorSpelling(Kind) << ' '; PrintExpr(Node->getArg(0)); @@ -2153,7 +2269,7 @@ void StmtPrinter::VisitUserDefinedLiteral(UserDefinedLiteral *Node) { cast(DRE->getDecl())->getTemplateSpecializationArgs(); assert(Args); - if (Args->size() != 1) { + if (Args->size() != 1 || Args->get(0).getKind() != TemplateArgument::Pack) { OS << "operator\"\"" << Node->getUDSuffix()->getName(); printTemplateArgumentList(OS, Args->asArray(), Policy); @@ -2219,12 +2335,23 @@ void StmtPrinter::VisitCXXDefaultInitExpr(CXXDefaultInitExpr *Node) { } void StmtPrinter::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *Node) { - PrintType(Node->getType(), OS, Policy); - // If there are no parens, this is list-initialization, and the braces are - // part of the syntax of the inner construct. - if (Node->getLParenLoc().isValid()) OS << "("; + auto TargetType = Node->getType(); + auto *Auto = TargetType->getContainedDeducedType(); + bool Bare = Auto && Auto->isDeduced(); + + // Parenthesize deduced casts. + if (Bare) + OS << '('; + TargetType.print(OS, Policy); + if (Bare) + OS << ')'; + + // No extra braces surrounding the inner construct. + if (!Node->isListInitialization()) + OS << '('; PrintExpr(Node->getSubExpr()); - if (Node->getLParenLoc().isValid()) OS << ")"; + if (!Node->isListInitialization()) + OS << ')'; } void StmtPrinter::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *Node) { @@ -2399,20 +2526,24 @@ void StmtPrinter::VisitCXXNewExpr(CXXNewExpr *E) { } if (E->isParenTypeId()) OS << "("; std::string TypeS; - if (Optional Size = E->getArraySize()) { + if (E->isArray()) { llvm::raw_string_ostream s(TypeS); s << '['; - if (*Size) ::PrintStmt(*Size, s, Policy, 0, nullptr, Helper); + if (Optional Size = E->getArraySize()) ::PrintStmt(*Size, s, Policy, 0, nullptr, Helper); s << ']'; } PrintType(E->getAllocatedType(), OS, Policy, TypeS); if (E->isParenTypeId()) OS << ")"; CXXNewExpr::InitializationStyle InitStyle = E->getInitializationStyle(); - if (InitStyle) { - if (InitStyle == CXXNewExpr::CallInit) OS << "("; + if (InitStyle != CXXNewExpr::NoInit) { + bool Bare = InitStyle == CXXNewExpr::CallInit && + !isa(E->getInitializer()); + if (Bare) + OS << "("; PrintExpr(E->getInitializer()); - if (InitStyle == CXXNewExpr::CallInit) OS << ")"; + if (Bare) + OS << ")"; } } @@ -2471,14 +2602,15 @@ void StmtPrinter::VisitExprWithCleanups(ExprWithCleanups *E) { void StmtPrinter::VisitCXXUnresolvedConstructExpr( CXXUnresolvedConstructExpr *Node) { PrintType(Node->getTypeAsWritten(), OS, Policy); - OS << "("; - for (CXXUnresolvedConstructExpr::arg_iterator Arg = Node->arg_begin(), - ArgEnd = Node->arg_end(); - Arg != ArgEnd; ++Arg) { + if (!Node->isListInitialization()) + OS << '('; + for (auto Arg = Node->arg_begin(), ArgEnd = Node->arg_end(); Arg != ArgEnd; + ++Arg) { if (Arg != Node->arg_begin()) OS << ", "; PrintExpr(*Arg); } - OS << ")"; + if (!Node->isListInitialization()) + OS << ')'; } void StmtPrinter::VisitCXXDependentScopeMemberExpr( diff --git a/tools/xref/TypePrinter.cpp b/tools/xref/TypePrinter.cpp index 9be4c56a..c609f7f9 100644 --- a/tools/xref/TypePrinter.cpp +++ b/tools/xref/TypePrinter.cpp @@ -79,6 +79,19 @@ class ParamPolicyRAII { ~ParamPolicyRAII() { Policy.SuppressSpecifiers = Old; } }; +class DefaultTemplateArgsPolicyRAII { + PrintingPolicy &Policy; + bool Old; + + public: + explicit DefaultTemplateArgsPolicyRAII(PrintingPolicy &Policy) + : Policy(Policy), Old(Policy.SuppressDefaultTemplateArgs) { + Policy.SuppressDefaultTemplateArgs = false; + } + + ~DefaultTemplateArgsPolicyRAII() { Policy.SuppressDefaultTemplateArgs = Old; } +}; + class ElaboratedTypePolicyRAII { PrintingPolicy &Policy; bool SuppressTagKeyword; @@ -232,6 +245,7 @@ bool TypePrinter::canPrefixQualifiers(const Type *T, case Type::Pipe: case Type::BitInt: case Type::DependentBitInt: + case Type::BTFTagAttributed: CanPrefixQualifiers = true; break; @@ -280,6 +294,7 @@ bool TypePrinter::canPrefixQualifiers(const Type *T, // address_space attribute. const auto *AttrTy = cast(UnderlyingType); CanPrefixQualifiers = AttrTy->getAttrKind() == attr::AddressSpace; + break; } } @@ -918,6 +933,12 @@ void TypePrinter::printFunctionAfter(const FunctionType::ExtInfo &Info, case CC_AArch64VectorCall: OS << "__attribute__((aarch64_vector_pcs))"; break; + case CC_AArch64SVEPCS: + OS << "__attribute__((aarch64_sve_pcs))"; + break; + case CC_AMDGPUKernelCall: + OS << "__attribute__((amdgpu_kernel))"; + break; case CC_IntelOclBicc: OS << " __attribute__((intel_ocl_bicc))"; break; @@ -1423,6 +1444,7 @@ void TypePrinter::printTemplateId(const TemplateSpecializationType *T, T->getTemplateName().print(OS, Policy); } + DefaultTemplateArgsPolicyRAII TemplateArgs(Policy); const TemplateParameterList *TPL = TD ? TD->getTemplateParameters() : nullptr; printTemplateArgumentList(OS, T->template_arguments(), Policy, TPL); spaceBeforePlaceHolder(OS); @@ -1637,6 +1659,15 @@ void TypePrinter::printAttributedAfter(const AttributedType *T, // this twice. if (T->getAttrKind() == attr::AddressSpace) return; + if (T->getAttrKind() == attr::AnnotateType) { + // FIXME: Print the attribute arguments once we have a way to retrieve these + // here. For the meantime, we just print `[[clang::annotate_type(...)]]` + // without the arguments so that we know at least that we had _some_ + // annotation on the type. + OS << " [[clang::annotate_type(...)]]"; + return; + } + OS << " __attribute__(("; switch (T->getAttrKind()) { #define TYPE_ATTR(NAME) @@ -1645,6 +1676,9 @@ void TypePrinter::printAttributedAfter(const AttributedType *T, #include llvm_unreachable("non-type attribute attached to type"); + case attr::BTFTypeTag: + llvm_unreachable("BTFTypeTag attribute handled separately"); + case attr::OpenCLPrivateAddressSpace: case attr::OpenCLGlobalAddressSpace: case attr::OpenCLGlobalDeviceAddressSpace: @@ -1671,6 +1705,7 @@ void TypePrinter::printAttributedAfter(const AttributedType *T, case attr::UPtr: case attr::AddressSpace: case attr::CmseNSCall: + case attr::AnnotateType: llvm_unreachable("This attribute should have been handled already"); case attr::NSReturnsRetained: @@ -1728,6 +1763,12 @@ void TypePrinter::printAttributedAfter(const AttributedType *T, case attr::AArch64VectorPcs: OS << "aarch64_vector_pcs"; break; + case attr::AArch64SVEPcs: + OS << "aarch64_sve_pcs"; + break; + case attr::AMDGPUKernelCall: + OS << "amdgpu_kernel"; + break; case attr::IntelOclBicc: OS << "inteloclbicc"; break; @@ -1747,13 +1788,21 @@ void TypePrinter::printAttributedAfter(const AttributedType *T, case attr::ArmMveStrictPolymorphism: OS << "__clang_arm_mve_strict_polymorphism"; break; - case attr::BTFTypeTag: - OS << "btf_type_tag"; - break; } OS << "))"; } +void TypePrinter::printBTFTagAttributedBefore(const BTFTagAttributedType *T, + raw_ostream &OS) { + printBefore(T->getWrappedType(), OS); + OS << " btf_type_tag(" << T->getAttr()->getBTFTypeTag() << ")"; +} + +void TypePrinter::printBTFTagAttributedAfter(const BTFTagAttributedType *T, + raw_ostream &OS) { + printAfter(T->getWrappedType(), OS); +} + void TypePrinter::printObjCInterfaceBefore(const ObjCInterfaceType *T, raw_ostream &OS) { OS << "" << T->getDecl()->getName() diff --git a/tools/xref/Xref.cpp b/tools/xref/Xref.cpp index 5c028e47..56b6b185 100644 --- a/tools/xref/Xref.cpp +++ b/tools/xref/Xref.cpp @@ -185,7 +185,6 @@ static Session& GetSession(const httplib::Request& req) { if (kvp == sessions.end()) { session.Id = id; session.Context = std::make_unique(); - session.Context->enableOpaquePointers(); } RemoveOldSessions(); From e477b407350053c56b1b9adba32cfad29792836d Mon Sep 17 00:00:00 2001 From: Francesco Bertolaccini Date: Tue, 25 Oct 2022 11:51:01 +0200 Subject: [PATCH 2/9] Update CI --- .github/workflows/ci.yml | 10 +++++----- .github/workflows/diff_tests.yml | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a7e8d52..94c2d363 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: image: - { name: 'ubuntu', tag: '20.04' } llvm: [ - '14' + '15' ] name: Rellic CI @@ -48,8 +48,8 @@ jobs: run: | # TODO some of these should probably live in the Docker build image wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - - echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main" >> /etc/apt/sources.list - echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main" >> /etc/apt/sources.list + echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${{ matrix.llvm }} main" >> /etc/apt/sources.list + echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-${{ matrix.llvm }} main" >> /etc/apt/sources.list apt-get update apt-get install -y ninja-build pixz xz-utils make rpm python3.8 update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 100 @@ -129,7 +129,7 @@ jobs: 'macos-11' ] llvm: [ - '14' + '15' ] runs-on: ${{ matrix.os }} @@ -246,7 +246,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - llvm: ["14"] + llvm: ["15"] ubuntu: ["20.04"] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/diff_tests.yml b/.github/workflows/diff_tests.yml index b927daab..7bf7459c 100644 --- a/.github/workflows/diff_tests.yml +++ b/.github/workflows/diff_tests.yml @@ -12,7 +12,7 @@ jobs: matrix: image: - { name: 'ubuntu', tag: '20.04', codename: 'focal' } - llvm: [ '14' ] + llvm: [ '15' ] common_base: [ 'https://github.com/lifting-bits/cxx-common/releases/latest/download' ] env: @@ -76,7 +76,7 @@ jobs: run: | echo "# Test diffs" >> $GITHUB_STEP_SUMMARY cd $GITHUB_WORKSPACE/tests/tools/decomp - env CLANG=clang-14 \ + env CLANG=clang-${{ matrix.llvm }} \ OLD_RELLIC=$GITHUB_WORKSPACE/rellic-build-old/tools/rellic-decomp \ NEW_RELLIC=$GITHUB_WORKSPACE/rellic-build/tools/rellic-decomp \ make -s -j1 -f diff_outputs.mk >> $GITHUB_STEP_SUMMARY @@ -86,7 +86,7 @@ jobs: id: md run: | cd $GITHUB_WORKSPACE/tests/tools/decomp - env CLANG=clang-14 \ + env CLANG=clang-${{ matrix.llvm }} \ OLD_RELLIC=$GITHUB_WORKSPACE/rellic-build-old/tools/rellic-decomp \ NEW_RELLIC=$GITHUB_WORKSPACE/rellic-build/tools/rellic-decomp \ make -s -j1 -f diff_outputs.mk >> $GITHUB_WORKSPACE/test-diff.md From 4e3342ee136aee1e5f978c3ea12947542bdaa48b Mon Sep 17 00:00:00 2001 From: Francesco Bertolaccini Date: Tue, 25 Oct 2022 12:08:50 +0200 Subject: [PATCH 3/9] Update build script --- scripts/build.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index 16b72108..18f476b9 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -18,8 +18,8 @@ DOWNLOAD_DIR="$( cd "$( dirname "${SRC_DIR}" )" && pwd )/lifting-bits-downloads" CURR_DIR=$( pwd ) BUILD_DIR="${CURR_DIR}/rellic-build" INSTALL_DIR=/usr/local -LLVM_VERSION=llvm-14 -CXX_COMMON_VERSION=v0.2.10 +LLVM_VERSION=llvm-15 +CXX_COMMON_VERSION=v0.2.12 OS_VERSION=unknown ARCH_VERSION=unknown BUILD_FLAGS= @@ -326,6 +326,10 @@ function GetLLVMVersion LLVM_VERSION=llvm-14 return 0 ;; + 15) + LLVM_VERSION=llvm-15 + return 0 + ;; *) # unknown option echo "[x] Unknown or unsupported LLVM version ${1}. You may be able to manually build it with cxx-common." From e30ea967a96192dad88f5cd33b39620b5b1f8e51 Mon Sep 17 00:00:00 2001 From: William Tan <1284324+Ninja3047@users.noreply.github.com> Date: Fri, 16 Dec 2022 16:36:25 -0500 Subject: [PATCH 4/9] Remove vcpkg helper (#314) * remove vcpkg_helper.cmake * fix build instruction in README --- .github/workflows/ci.yml | 2 +- CMakeLists.txt | 1 - CMakePresets.json | 16 +++++------ README.md | 2 +- cmake/vcpkg_helper.cmake | 57 ---------------------------------------- scripts/build-preset.sh | 22 +++------------- scripts/build.sh | 2 +- 7 files changed, 14 insertions(+), 88 deletions(-) delete mode 100644 cmake/vcpkg_helper.cmake diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 94c2d363..3c15adb6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,7 +70,7 @@ jobs: - name: Build with CMake Presets shell: bash run: | - export VCPKG_ROOT=${GITHUB_WORKSPACE}/${VCPKG_ROOT_PART} + export CMAKE_TOOLCHAIN_FILE=${GITHUB_WORKSPACE}/${VCPKG_ROOT_PART}/scripts/buildsystems/vcpkg.cmake export INSTALL_DIR=${GITHUB_WORKSPACE}/${INSTALL_DIR_PART} scripts/build-preset.sh debug env: diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ebed8cf..5f583f4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,6 @@ cmake_minimum_required(VERSION 3.21) include("cmake/options.cmake") -include("cmake/vcpkg_helper.cmake") project(rellic) set(CMAKE_CXX_VISIBILITY_PRESET hidden) diff --git a/CMakePresets.json b/CMakePresets.json index 7bf72b54..c42485a4 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -60,10 +60,8 @@ "generator": "Ninja", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "$env{VCPKG_TARGET_TRIPLET}", - "VCPKG_ROOT": "$env{VCPKG_ROOT}", + "CMAKE_TOOLCHAIN_FILE": "$env{CMAKE_TOOLCHAIN_FILE}" "CMAKE_INSTALL_PREFIX": "$env{INSTALL_DIR}/install", - "CMAKE_C_COMPILER": "$env{VCPKG_ROOT}/installed/$env{VCPKG_TARGET_TRIPLET}/tools/llvm/clang", - "CMAKE_CXX_COMPILER": "$env{VCPKG_ROOT}/installed/$env{VCPKG_TARGET_TRIPLET}/tools/llvm/clang++", "RELLIC_ENABLE_TESTING": "ON" } }, @@ -86,37 +84,37 @@ "name": "vcpkg-x64-dbg", "inherits": ["vcpkg-debug", "x86_64"], "displayName": "Debug Build (vcpkg) (x64)", - "description": "Build a Debug version against a VCPKG installation. Define 'VCPKG_ROOT', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" + "description": "Build a Debug version against a VCPKG installation. Define 'CMAKE_TOOLCHAIN_FILE', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" }, { "name": "vcpkg-x64-rel", "inherits": ["vcpkg-release", "x86_64"], "displayName": "Release Build (vcpkg) (x64)", - "description": "Build a Release version against a VCPKG installation. Define 'VCPKG_ROOT', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" + "description": "Build a Release version against a VCPKG installation. Define 'CMAKE_TOOLCHAIN_FILE', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" }, { "name": "vcpkg-x64-asan", "inherits": ["vcpkg-asan", "x86_64"], "displayName": "Debug ASAN Build (vcpkg) (x64)", - "description": "Build a Debug ASAN version against a VCPKG installation. Define 'VCPKG_ROOT', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" + "description": "Build a Debug ASAN version against a VCPKG installation. Define 'CMAKE_TOOLCHAIN_FILE', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" }, { "name": "vcpkg-arm64-dbg", "inherits": ["vcpkg-debug", "arm64"], "displayName": "Debug Build (vcpkg) (arm64)", - "description": "Build a Debug version against a VCPKG installation. Define 'VCPKG_ROOT', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" + "description": "Build a Debug version against a VCPKG installation. Define 'CMAKE_TOOLCHAIN_FILE', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" }, { "name": "vcpkg-arm64-rel", "inherits": ["vcpkg-release", "arm64"], "displayName": "Release Build (vcpkg) (arm64)", - "description": "Build a Release version against a VCPKG installation. Define 'VCPKG_ROOT', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" + "description": "Build a Release version against a VCPKG installation. Define 'CMAKE_TOOLCHAIN_FILE', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" }, { "name": "vcpkg-arm64-asan", "inherits": ["vcpkg-asan", "arm64"], "displayName": "Debug ASAN Build (vcpkg) (arm64)", - "description": "Build a Debug ASAN version against a VCPKG installation. Define 'VCPKG_ROOT', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" + "description": "Build a Debug ASAN version against a VCPKG installation. Define 'CMAKE_TOOLCHAIN_FILE', 'INSTALL_DIR', 'VCPKG_TARGET_TRIPLET' env vars!" } ], "buildPresets": [ diff --git a/README.md b/README.md index 7f0d20bc..290cc249 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ Make sure to have the latest release of cxx-common for LLVM 14. Then, build with ```shell cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DVCPKG_ROOT=/path/to/vcpkg \ + -DCMAKE_TOOLCHAIN_FILE="/vcpkg/scripts/buildsystems/vcpkg.cmake" \ -DVCPKG_TARGET_TRIPLET=x64-osx-rel \ -DRELLIC_ENABLE_TESTING=OFF \ -DCMAKE_C_COMPILER=`which clang` \ diff --git a/cmake/vcpkg_helper.cmake b/cmake/vcpkg_helper.cmake deleted file mode 100644 index 8075263c..00000000 --- a/cmake/vcpkg_helper.cmake +++ /dev/null @@ -1,57 +0,0 @@ -set(USE_SYSTEM_DEPENDENCIES OFF CACHE BOOL "Use system dependencies instead of trying to find vcpkg") - -if (NOT USE_SYSTEM_DEPENDENCIES) - set(VCPKG_ROOT "" CACHE FILEPATH "Root directory to use for vcpkg-managed dependencies") - if (VCPKG_ROOT) - if (NOT EXISTS "${VCPKG_ROOT}") - message(FATAL_ERROR "VCPKG_ROOT directory does not exist: '${VCPKG_ROOT}'") - endif() - - set(VCPKG_ROOT_INSTALL_DIR "${VCPKG_ROOT}/installed") - if (NOT EXISTS "${VCPKG_ROOT_INSTALL_DIR}") - message(FATAL_ERROR "VCPKG_ROOT installation directory does not exist: '${VCPKG_ROOT_INSTALL_DIR}'") - endif() - - set(CMAKE_TOOLCHAIN_FILE "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE FILEPATH "" FORCE) - else() - message(FATAL_ERROR "Please define a path to VCPKG_ROOT. See https://github.com/lifting-bits/cxx-common for more details. Or if you don't want to use vcpkg dependencies, add '-DUSE_SYSTEM_DEPENDENCIES=ON'") - endif() - - # Set default triplet to Release VCPKG build unless we can't find it - if (NOT DEFINED VCPKG_TARGET_TRIPLET) - set(_project_arch "x64") - if (UNIX) - execute_process(COMMAND uname -m - OUTPUT_VARIABLE _SYSTEM_ARCH - OUTPUT_STRIP_TRAILING_WHITESPACE) - else() - message(WARNING "No detection of architecture for this platform. Assuming x64") - endif() - if (_SYSTEM_ARCH MATCHES "^[Aa][Aa][Rr][Cc][Hh]64$" OR _SYSTEM_ARCH MATCHES "^[Aa][Rr][Mm]64$") - set(_project_arch "arm64") - endif() - - if (APPLE) - set(_project_vcpkg_triplet "${_project_arch}-osx-rel") - elseif(UNIX) - set(_project_vcpkg_triplet "${_project_arch}-linux-rel") - elseif(WIN32) - set(_project_vcpkg_triplet "${_project_arch}-windows-static-md-rel") - else() - message(FATAL_ERROR "Could not detect default release triplet") - endif() - - if (NOT EXISTS "${VCPKG_ROOT_INSTALL_DIR}/${_project_vcpkg_triplet}") - message(STATUS "Could not find installed project-default triplet '${_project_vcpkg_triplet}' using vcpkg-default for your system") - else() - set(VCPKG_TARGET_TRIPLET "${_project_vcpkg_triplet}" CACHE STRING "") - message(STATUS "Setting default vcpkg triplet to release-only libraries: ${VCPKG_TARGET_TRIPLET}") - endif() - endif() - - if (DEFINED VCPKG_TARGET_TRIPLET AND NOT EXISTS "${VCPKG_ROOT_INSTALL_DIR}/${VCPKG_TARGET_TRIPLET}") - message(FATAL_ERROR "Could not find vcpkg triplet (${VCPKG_TARGET_TRIPLET}) installation libraries '${VCPKG_ROOT_INSTALL_DIR}/${VCPKG_TARGET_TRIPLET}'.") - endif() - - message(STATUS "Using vcpkg installation directory at '${VCPKG_ROOT_INSTALL_DIR}/${VCPKG_TARGET_TRIPLET}'") -endif() diff --git a/scripts/build-preset.sh b/scripts/build-preset.sh index 69ecd125..277bac24 100755 --- a/scripts/build-preset.sh +++ b/scripts/build-preset.sh @@ -11,11 +11,11 @@ VCPKG_SUFFIX="-rel" set -o pipefail function sanity_check { - if [ -z "${VCPKG_ROOT}" ]; then - echo "Please set the VCPKG_ROOT environment variable to the VCPKG root to build against" + if [ -z "${CMAKE_TOOLCHAIN_FILE}" ]; then + echo "Please set the CMAKE_TOOLCHAIN_FILE environment variable to the CMake toolchain file to build against" exit 1 else - echo "Building against VCPKG: [${VCPKG_ROOT}]" + echo "Building against CMake toolchain file: [${CMAKE_TOOLCHAIN_FILE}]" fi if [ -z "${INSTALL_DIR}" ]; then @@ -36,22 +36,11 @@ function show_usage { printf "\tArguments after '--' are passed to CMake during configuration (e.g. -DCMAKE_C_COMPILER=foo)\n" printf "\n" printf "INSTALL_DIR set to [${INSTALL_DIR}]\n" - printf "VCPKG_ROOT set to [${VCPKG_ROOT}]\n" + printf "CMAKE_TOOLCHAIN_FILE set to [${CMAKE_TOOLCHAIN_FILE}]\n" return 0 } -function compiler_check { - printf "Checking for clang/clang++ in [${VCPKG_ROOT}] [${VCPKG_TARGET_TRIPLET}]:\n" - for c in ${VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/tools/llvm/{clang,clang++} - do - ver=$(${c} --version) - printf "Found a clang [${c}]:\n" - printf "${ver}\n" - done - printf "\n" -} - function set_arch { local arch=$(uname -m) case ${arch} in @@ -135,9 +124,6 @@ ARCH=$(set_arch) OS=$(set_os) export VCPKG_TARGET_TRIPLET=${ARCH}-${OS}${VCPKG_SUFFIX} -compiler_check - - echo "Configuring [${BUILD_TYPE}] [${ARCH}] against vcpkg [${VCPKG_TARGET_TRIPLET}]..." if [[ "${@}" != "" ]] then diff --git a/scripts/build.sh b/scripts/build.sh index 18f476b9..09b9b1c4 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -233,9 +233,9 @@ function Configure set -x cmake \ -G Ninja \ + -DCMAKE_TOOLCHAIN_FILE="${DOWNLOAD_DIR}/${LIBRARY_VERSION}/scripts/buildsystems/vcpkg.cmake" \ -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ -DCMAKE_VERBOSE_MAKEFILE=True \ - -DVCPKG_ROOT="${DOWNLOAD_DIR}/${LIBRARY_VERSION}" \ ${BUILD_FLAGS} \ "${SRC_DIR}" ) || exit $? From 29df30b4423502e56cd552ec61c0c3fc7fd5cf9a Mon Sep 17 00:00:00 2001 From: William Tan <1284324+Ninja3047@users.noreply.github.com> Date: Fri, 16 Dec 2022 16:52:41 -0500 Subject: [PATCH 5/9] fix build script perms --- scripts/build-preset.sh | 0 scripts/build.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/build-preset.sh mode change 100644 => 100755 scripts/build.sh diff --git a/scripts/build-preset.sh b/scripts/build-preset.sh old mode 100644 new mode 100755 diff --git a/scripts/build.sh b/scripts/build.sh old mode 100644 new mode 100755 From fa9e8f01c2f14daed3dddba95bfed63eba96c764 Mon Sep 17 00:00:00 2001 From: William Tan <1284324+Ninja3047@users.noreply.github.com> Date: Fri, 16 Dec 2022 16:58:10 -0500 Subject: [PATCH 6/9] fix diff ci build --- .github/workflows/diff_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/diff_tests.yml b/.github/workflows/diff_tests.yml index 7a228f8f..9bc009a5 100644 --- a/.github/workflows/diff_tests.yml +++ b/.github/workflows/diff_tests.yml @@ -62,13 +62,13 @@ jobs: - name: Build old rellic shell: bash run: | - cmake -G Ninja -S old -B rellic-build-old -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake + cmake -G Ninja -S old -B rellic-build-old -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_ARCH="x64-linux-rel" cmake --build rellic-build-old - name: Build new rellic shell: bash run: | - cmake -G Ninja -S . -B rellic-build -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake + cmake -G Ninja -S . -B rellic-build -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_ARCH="x64-linux-rel" cmake --build rellic-build - name: Print job summary From 3c08bfa417f3328fc4f86853cdc0612731b2a6df Mon Sep 17 00:00:00 2001 From: William Tan <1284324+Ninja3047@users.noreply.github.com> Date: Fri, 16 Dec 2022 17:03:15 -0500 Subject: [PATCH 7/9] fix typo, should be VCPKG_TARGET_TRIPLET --- .github/workflows/diff_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/diff_tests.yml b/.github/workflows/diff_tests.yml index 9bc009a5..d5a6160a 100644 --- a/.github/workflows/diff_tests.yml +++ b/.github/workflows/diff_tests.yml @@ -62,13 +62,13 @@ jobs: - name: Build old rellic shell: bash run: | - cmake -G Ninja -S old -B rellic-build-old -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_ARCH="x64-linux-rel" + cmake -G Ninja -S old -B rellic-build-old -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET="x64-linux-rel" cmake --build rellic-build-old - name: Build new rellic shell: bash run: | - cmake -G Ninja -S . -B rellic-build -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_ARCH="x64-linux-rel" + cmake -G Ninja -S . -B rellic-build -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET="x64-linux-rel" cmake --build rellic-build - name: Print job summary From b294ab3719d336ace293854d47b8aede1a806e5f Mon Sep 17 00:00:00 2001 From: William Tan <1284324+Ninja3047@users.noreply.github.com> Date: Fri, 16 Dec 2022 17:14:13 -0500 Subject: [PATCH 8/9] update anghabench CI scripts for llvm 15 --- .github/workflows/anghabench-after-build.yml | 2 +- .github/workflows/anghabench-cron-jobs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/anghabench-after-build.yml b/.github/workflows/anghabench-after-build.yml index 486cc564..441267fa 100644 --- a/.github/workflows/anghabench-after-build.yml +++ b/.github/workflows/anghabench-after-build.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - llvm: [ '14' ] + llvm: [ '15' ] run_size: [ '1k' ] name: Run AnghaBench CI (AMD64) diff --git a/.github/workflows/anghabench-cron-jobs.yml b/.github/workflows/anghabench-cron-jobs.yml index 21b79111..ef7d958f 100644 --- a/.github/workflows/anghabench-cron-jobs.yml +++ b/.github/workflows/anghabench-cron-jobs.yml @@ -10,7 +10,7 @@ jobs: strategy: fail-fast: false matrix: - llvm: [ '14' ] + llvm: [ '15' ] run_size: [ '1k' ] name: Run AnghaBench CI (AMD64) From 7606dc8f6164030f3d4364e74f35ca39dc93ddcd Mon Sep 17 00:00:00 2001 From: William Tan <1284324+Ninja3047@users.noreply.github.com> Date: Fri, 16 Dec 2022 17:24:49 -0500 Subject: [PATCH 9/9] miss comma --- CMakePresets.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakePresets.json b/CMakePresets.json index c42485a4..da5dc548 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -60,7 +60,7 @@ "generator": "Ninja", "cacheVariables": { "VCPKG_TARGET_TRIPLET": "$env{VCPKG_TARGET_TRIPLET}", - "CMAKE_TOOLCHAIN_FILE": "$env{CMAKE_TOOLCHAIN_FILE}" + "CMAKE_TOOLCHAIN_FILE": "$env{CMAKE_TOOLCHAIN_FILE}", "CMAKE_INSTALL_PREFIX": "$env{INSTALL_DIR}/install", "RELLIC_ENABLE_TESTING": "ON" }