gpt4 book ai didi

memory-management - LLVM 分配的空闲内存

转载 作者:行者123 更新时间:2023-12-02 00:22:12 44 4
gpt4 key购买 nike

我正在努力寻找如何释放 LLVM 函数分配的内存。例如,当我调用函数 Function::Create()要创建 LLVM 函数,如何释放分配给它的内存?这实际上适用于许多 LLVM 函数,如 IRBuilder::CreateAlloca() , IRBuilder::CreateStore()等。有什么想法吗?

最佳答案

首先,当删除任何一种 Value , 确保它没有任何 User s了。显然,删除使用的值会导致错误(以断言的形式)。这可以通过调用 getNumUses() 轻松测试。 ,或更好(阅读:更快) hasNUses(0) .

当你确定你的值不再被使用时,不同类型的值有时需要不同的方式来删除它们。对于您的两种情况:

  • Function s 可以通过调用 operator delete 来删除。 .这可以确保从 Module 中正确删除该函数。 .
  • Instruction s 应通过调用 eraseFromParent() 删除.或者,等效地,首先调用 removeFromParent() 然后手动删除。
  • 关于memory-management - LLVM 分配的空闲内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438037/

    44 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com