Skip to content

Commit 3da2c14

Browse files
committed
SIL: add Builder.createCondBranch
1 parent ab10dc2 commit 3da2c14

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

SwiftCompilerSources/Sources/SIL/Builder.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,12 @@ public struct Builder {
567567
}
568568
}
569569

570+
@discardableResult
571+
public func createCondBranch(condition: Value, trueBlock: BasicBlock, falseBlock: BasicBlock) -> CondBranchInst {
572+
let condBr = bridged.createCondBranch(condition.bridged, trueBlock.bridged, falseBlock.bridged)
573+
return notifyNew(condBr.getAs(CondBranchInst.self))
574+
}
575+
570576
@discardableResult
571577
public func createUnreachable() -> UnreachableInst {
572578
let ui = bridged.createUnreachable()

include/swift/SIL/SILBridging.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1282,6 +1282,9 @@ struct BridgedBuilder{
12821282
bool isOnStack = false) const;
12831283
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedInstruction createBranch(BridgedBasicBlock destBlock,
12841284
BridgedValueArray arguments) const;
1285+
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedInstruction createCondBranch(BridgedValue condition,
1286+
BridgedBasicBlock trueBlock,
1287+
BridgedBasicBlock falseBlock) const;
12851288
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedInstruction createUnreachable() const;
12861289
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedInstruction createObject(BridgedType type, BridgedValueArray arguments,
12871290
SwiftInt numBaseElements) const;

include/swift/SIL/SILBridgingImpl.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2531,6 +2531,13 @@ BridgedInstruction BridgedBuilder::createBranch(BridgedBasicBlock destBlock, Bri
25312531
arguments.getValues(argValues))};
25322532
}
25332533

2534+
BridgedInstruction BridgedBuilder::createCondBranch(BridgedValue condition,
2535+
BridgedBasicBlock trueBlock,
2536+
BridgedBasicBlock falseBlock) const {
2537+
return {unbridged().createCondBranch(regularLoc(), condition.getSILValue(), trueBlock.unbridged(),
2538+
falseBlock.unbridged())};
2539+
}
2540+
25342541
BridgedInstruction BridgedBuilder::createUnreachable() const {
25352542
return {unbridged().createUnreachable(loc.getLoc().getLocation())};
25362543
}

0 commit comments

Comments
 (0)