File tree Expand file tree Collapse file tree 1 file changed +11
-11
lines changed Expand file tree Collapse file tree 1 file changed +11
-11
lines changed Original file line number Diff line number Diff line change @@ -3860,20 +3860,20 @@ SDValue SITargetLowering::LowerCall(CallLoweringInfo &CLI,
3860
3860
assert(Mask && "Missing call preserved mask for calling convention");
3861
3861
Ops.push_back(DAG.getRegisterMask(Mask));
3862
3862
3863
- if (InGlue.getNode())
3864
- Ops.push_back(InGlue);
3865
-
3866
- // NOTE: This potentially results in *two* glue operands, and the wrong one
3867
- // might possibly show up where the other was intended. In particular,
3868
- // Emitter::EmitMachineNode() expects only the glued convergence token if it
3869
- // exists. Similarly, the selection of the call expects to match only the
3870
- // InGlue operand if it exists.
3871
3863
if (SDValue Token = CLI.ConvergenceControlToken) {
3872
- Ops.push_back(SDValue(DAG.getMachineNode(TargetOpcode::CONVERGENCECTRL_GLUE,
3873
- DL, MVT::Glue, Token),
3874
- 0));
3864
+ SmallVector<SDValue, 2> GlueOps;
3865
+ GlueOps.push_back(Token);
3866
+ if (InGlue)
3867
+ GlueOps.push_back(InGlue);
3868
+
3869
+ InGlue = SDValue(DAG.getMachineNode(TargetOpcode::CONVERGENCECTRL_GLUE, DL,
3870
+ MVT::Glue, GlueOps),
3871
+ 0);
3875
3872
}
3876
3873
3874
+ if (InGlue)
3875
+ Ops.push_back(InGlue);
3876
+
3877
3877
SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Glue);
3878
3878
3879
3879
// If we're doing a tall call, use a TC_RETURN here rather than an
You can’t perform that action at this time.
0 commit comments