package midend.llvm.instr; import midend.llvm.value.IrBasicBlock; import midend.llvm.value.IrValue; import midend.llvm.type.IrInterType; public class BranchInstr extends IrInstr { public BranchInstr(String name, IrValue cond, IrBasicBlock trueBB, IrBasicBlock falseBB) { super(IrInterType.VOID, name, IrInstrType.BR); addUse(cond); addUse(trueBB); addUse(falseBB); } public IrValue getCond() { return getUse(0); } public IrBasicBlock getTrueBB() { return (IrBasicBlock) getUse(1); } public IrBasicBlock getFalseBB() { return (IrBasicBlock) getUse(2); } public String toString() { return "br i1 " + getCond().getName() + ", label %" + getTrueBB().getName() + ", label %" + getFalseBB().getName(); } }