mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Merge remote-tracking branch 'origin/main' into rebranch
This commit is contained in:
@@ -865,8 +865,8 @@ void swift::placeFuncRef(ApplyInst *ai, DominanceInfo *domInfo) {
|
||||
/// Add an argument, \p val, to the branch-edge that is pointing into
|
||||
/// block \p Dest. Return a new instruction and do not erase the old
|
||||
/// instruction.
|
||||
TermInst *swift::addArgumentToBranch(SILValue val, SILBasicBlock *dest,
|
||||
TermInst *branch) {
|
||||
TermInst *swift::addArgumentsToBranch(ArrayRef<SILValue> vals,
|
||||
SILBasicBlock *dest, TermInst *branch) {
|
||||
SILBuilderWithScope builder(branch);
|
||||
|
||||
if (auto *cbi = dyn_cast<CondBranchInst>(branch)) {
|
||||
@@ -880,10 +880,12 @@ TermInst *swift::addArgumentToBranch(SILValue val, SILBasicBlock *dest,
|
||||
falseArgs.push_back(arg);
|
||||
|
||||
if (dest == cbi->getTrueBB()) {
|
||||
trueArgs.push_back(val);
|
||||
for (auto val : vals)
|
||||
trueArgs.push_back(val);
|
||||
assert(trueArgs.size() == dest->getNumArguments());
|
||||
} else {
|
||||
falseArgs.push_back(val);
|
||||
for (auto val : vals)
|
||||
falseArgs.push_back(val);
|
||||
assert(falseArgs.size() == dest->getNumArguments());
|
||||
}
|
||||
|
||||
@@ -899,7 +901,8 @@ TermInst *swift::addArgumentToBranch(SILValue val, SILBasicBlock *dest,
|
||||
for (auto arg : bi->getArgs())
|
||||
args.push_back(arg);
|
||||
|
||||
args.push_back(val);
|
||||
for (auto val : vals)
|
||||
args.push_back(val);
|
||||
assert(args.size() == dest->getNumArguments());
|
||||
return builder.createBranch(bi->getLoc(), bi->getDestBB(), args);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user