[LLVMdev] LLVM C++ API memory management
gregory.petrosyan at gmail.com
Tue Nov 11 01:08:05 PST 2008
2008/11/11 Chris Lattner <clattner at apple.com>:
> The ownership model is very simple. We have a simple structured
> system (e.g. module is a list of functions, function is a list of
> blocks, blocks are a list of instructions). When a node is inserted
> into a parent container (e.g. an instruction in a basic block) then
> the parent owns the node.
> This means that if you create an instruction and insert it into a
> block, you're fine. If you remove an instruction from a block, you
> have to either reinsert it or delete it. The "remove" methods remove
> a node from its parent and returns it, the "erase" methods do a remove
Thanks once again.
> Unfortunately this is not really documented anywhere. It would be
> really really good to add a section about this in the Programmer's
> Manual. Can you write up a patch?
More information about the llvm-dev