在LLVM中直接跳转的分支指令

时间:2012-11-09 12:02:06

标签: c++ c llvm

在LLVM中,如何生成直接跳转的分支指令,而不是使用if-else。我知道有LLVM :: BranchInst类,但是不知道如何将它用于此目的,还是需要使用其他类?

2 个答案:

答案 0 :(得分:4)

您需要一个无条件分支:

static BranchInst * llvm::BranchInst::Create(BasicBlock *IfTrue,
                                             Instruction *InsertBefore = 0)

static BranchInst * llvm::BranchInst::Create(BasicBlock *IfTrue,
                                             BasicBlock *InsertAtEnd)

答案 1 :(得分:2)

使用this method

static BranchInst *     Create (BasicBlock *IfTrue, BasicBlock *InsertAtEnd)

第一个参数是跳转到的位置,第二个参数是创建指令的位置。