File tree Expand file tree Collapse file tree 1 file changed +10
-2
lines changed
lib/SILOptimizer/Analysis Expand file tree Collapse file tree 1 file changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -2539,11 +2539,16 @@ class PartitionOpTranslator {
2539
2539
auto trackableDest = tryToTrackValue (dest);
2540
2540
if (!trackableDest)
2541
2541
return ;
2542
+
2543
+ if (requireOperands)
2544
+ builder.addRequire (trackableDest->getRepresentative ().getValue ());
2545
+
2542
2546
for (Operand *op : srcCollection) {
2547
+ // If we have a trackable src, we need to require both if asked to and
2548
+ // then merge the dest/src.
2543
2549
if (auto trackableSrc = tryToTrackValue (op->get ())) {
2544
2550
if (requireOperands) {
2545
2551
builder.addRequire (trackableSrc->getRepresentative ().getValue ());
2546
- builder.addRequire (trackableDest->getRepresentative ().getValue ());
2547
2552
}
2548
2553
builder.addMerge (trackableDest->getRepresentative ().getValue (), op);
2549
2554
}
@@ -2565,11 +2570,14 @@ class PartitionOpTranslator {
2565
2570
auto trackableDest = tryToTrackValue (array.front ().get ());
2566
2571
if (!trackableDest)
2567
2572
return ;
2573
+
2574
+ if (requireOperands)
2575
+ builder.addRequire (trackableDest->getRepresentative ().getValue ());
2576
+
2568
2577
for (Operand &op : array.drop_front ()) {
2569
2578
if (auto trackableSrc = tryToTrackValue (op.get ())) {
2570
2579
if (requireOperands) {
2571
2580
builder.addRequire (trackableSrc->getRepresentative ().getValue ());
2572
- builder.addRequire (trackableDest->getRepresentative ().getValue ());
2573
2581
}
2574
2582
builder.addMerge (trackableDest->getRepresentative ().getValue (), &op);
2575
2583
}
You can’t perform that action at this time.
0 commit comments