[LLVMdev] Block management
Chris Lattner
clattner at apple.com
Mon Jun 14 08:28:08 PDT 2010
On Jun 14, 2010, at 12:19 AM, Duncan Sands wrote:
> Hi Chris,
>
>>> In my code generator, I need to prepare a block and add instructions to it, then insert this block in a function defined later (that is I cannot create the function at the beginning stage become some info are not available yet). I tried to create a block without any "parent" (BasicBlock::Create(getGlobalContext(), "init"), fill it, but how to link it with the created function? (i read about "moveBefore" and "moveAfter" but these methods are not usable in this context...
>>
>> You can use Function::getBasicBlockList(). That list supports fully general list operations like "insert", so you can just plop it in wherever you'd like it.
>
> methods like the basic block constructor or BasicBlock::setParent muck around
> with the LeakDetector. I don't know what the LeakDetector is - does Stéphane
> need to do something like this too?
Nope, insertion into the basic block list automatically manages all that.
-Chris
More information about the llvm-dev
mailing list