LLVM IR 指令何时何地设置其父 BasicBlock?

When and where did the LLVM IR Instruction set it's parent BasicBlock?

当我使用方法

将指令插入 BasicBlock 时
BasicBlock::getInstList().push_front(*Instruction); 

但是它什么时候将指令的父级设置为当前 BasicBlock?

代码如下,运行良好。我只想知道何时何地设置克隆指令的父级。

谢谢。

Instruction *ori_inst = cur_inst->clone();  
//until now, the ori_inst does not have it's parent
CUR_BB->getInstList().push_front(ori_inst); 
//now, the ori_inst has CUR_BB as it's parent, why?

我认为这是在

中设置的
void SymbolTableListTraits<ValueSubClass,ItemParentClass>
      ::addNodeToList(ValueSubClass *V) {

lib/IR/SymbolTableListTraitsImpl.h

addNodeToListilistinsert 方法调用,后者由 push_front 调用。因此,无论何时向基本块中的指令列表添加指令,其父项都会自动设置为基本块本身。