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 {
25392539 auto trackableDest = tryToTrackValue (dest);
25402540 if (!trackableDest)
25412541 return ;
2542+
2543+ if (requireOperands)
2544+ builder.addRequire (trackableDest->getRepresentative ().getValue ());
2545+
25422546 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.
25432549 if (auto trackableSrc = tryToTrackValue (op->get ())) {
25442550 if (requireOperands) {
25452551 builder.addRequire (trackableSrc->getRepresentative ().getValue ());
2546- builder.addRequire (trackableDest->getRepresentative ().getValue ());
25472552 }
25482553 builder.addMerge (trackableDest->getRepresentative ().getValue (), op);
25492554 }
@@ -2565,11 +2570,14 @@ class PartitionOpTranslator {
25652570 auto trackableDest = tryToTrackValue (array.front ().get ());
25662571 if (!trackableDest)
25672572 return ;
2573+
2574+ if (requireOperands)
2575+ builder.addRequire (trackableDest->getRepresentative ().getValue ());
2576+
25682577 for (Operand &op : array.drop_front ()) {
25692578 if (auto trackableSrc = tryToTrackValue (op.get ())) {
25702579 if (requireOperands) {
25712580 builder.addRequire (trackableSrc->getRepresentative ().getValue ());
2572- builder.addRequire (trackableDest->getRepresentative ().getValue ());
25732581 }
25742582 builder.addMerge (trackableDest->getRepresentative ().getValue (), &op);
25752583 }
You can’t perform that action at this time.
0 commit comments