Blob Blame History Raw
From 774ab9358d852e2c004564183de4a60eaaa5ac98 Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert@physics.uu.se>
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<TargetMachine> 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<TargetMachine> 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