llvm BasicBlock 内部的变量对其他人可见吗?

Is variable inside of llvm BasicBlock visible for others?

假设我们有一个名为hello.world的Function,它包含两个BasicBlockbb.1bb.2,例如:

i32 @hello.world(i32 %x)
bb.1:
  %a = i32 %x
bb.2:
  %b = i32 %a
  ret i32 %b

bb.1 中的变量 %abb.2 中的 %b 可见吗?

您的代码无效,因为 bb.1 没有以终止符指令结束。以 br label %bb.2 结尾,答案是肯定的。

严格来说,给定 BB 中定义的变量对于所有 BB 都是可见的,这些 BB 给定的 BB 支配。