aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorMin-Yih Hsu <min.hsu@sifive.com>2024-02-16 16:19:56 -0800
committerGitHub <noreply@github.com>2024-02-16 16:19:56 -0800
commit3d67cf681a728e4cf0ab9947c0dd07539dda8b74 (patch)
tree7ce403baa8f06cc0b5add77cc84cc75d320dfe40 /clang/lib/CodeGen/CodeGenModule.cpp
parent9c4e2fe589bf732b9bd1b3919832fb5056f5611c (diff)
downloadllvm-3d67cf681a728e4cf0ab9947c0dd07539dda8b74.zip
llvm-3d67cf681a728e4cf0ab9947c0dd07539dda8b74.tar.gz
llvm-3d67cf681a728e4cf0ab9947c0dd07539dda8b74.tar.bz2
[JITLink] Always unmap standard segments in InProcessMemoryManager::deallocate (#81943)
Right now InProcessMemoryManager only releases a standard segment (via sys::Memory::releaseMappedMemory) in `deallocate` when there is a DeallocAction associated, leaving residual memory pages in the process until termination. Despite being a de facto memory leak, it won't cause a major issue if users only create a single LLJIT instance per process, which is the most common use cases. It will, however, drain virtual memory pages if we create thousands of ephemeral LLJIT instances in the same process. This patch fixes this issue by releasing every standard segments regardless of the attached DeallocAction.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions