From 774ab9358d852e2c004564183de4a60eaaa5ac98 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 23 Apr 2021 21:40:14 +0200 Subject: [PATCH 2/2] Actually request the use of the large code model for ppc64/ppc64le Instead of erroring out with an assert. --- interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp index 46771aa8c0..93a48f31f3 100644 --- a/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp +++ b/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp @@ -73,14 +73,14 @@ CreateHostTargetMachine(const clang::CompilerInstance& CI) { JTMB->getOptions().EmulatedTLS = false; #endif // _WIN32 - std::unique_ptr TM = cantFail(JTMB->createTargetMachine()); - #if defined(__powerpc64__) || defined(__PPC64__) // We have to use large code model for PowerPC64 because TOC and text sections // can be more than 2GB apart. - assert(TM->getCodeModel() >= CodeModel::Large); + JTMB->setCodeModel(CodeModel::Large); #endif + std::unique_ptr TM = cantFail(JTMB->createTargetMachine()); + // Forcefully disable GlobalISel, it might be enabled on AArch64 without // optimizations. In tests on an Apple M1 after the upgrade to LLVM 9, this // new instruction selection framework emits branches / calls that expect all -- 2.30.2