From 574713c3076c11a5677f554ab132d1324be9cb00 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Mon, 20 Jul 2020 14:31:48 -0700 Subject: [PATCH] [ExecutionEngine] Initialize near block hint in SectionMemoryManager. When allocating a new memory block in SectionMemoryManager, initialize the Near hint for the other memory groups if they have not been set already. Patch by Dana Koch. Thanks Dana! --- llvm/lib/ExecutionEngine/SectionMemoryManager.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp b/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp index 925049b2a1b4..febcabfaa571 100644 --- a/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp +++ b/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp @@ -112,6 +112,15 @@ uint8_t *SectionMemoryManager::allocateSection( // Save this address as the basis for our next request MemGroup.Near = MB; + // Copy the address to all the other groups, if they have not + // been initialized. + if (CodeMem.Near.base() == 0) + CodeMem.Near = MB; + if (RODataMem.Near.base() == 0) + RODataMem.Near = MB; + if (RWDataMem.Near.base() == 0) + RWDataMem.Near = MB; + // Remember that we allocated this memory MemGroup.AllocatedMem.push_back(MB); Addr = (uintptr_t)MB.base();