Skip to content

Conversation

@AlekseyTs
Copy link
Contributor

Fixes #82063

@AlekseyTs
Copy link
Contributor Author

@RikkiGibson, @333fred, @jcouv, @dotnet/roslyn-compiler Please review

1 similar comment
@AlekseyTs
Copy link
Contributor Author

@RikkiGibson, @333fred, @jcouv, @dotnet/roslyn-compiler Please review

@AlekseyTs AlekseyTs requested a review from jcouv January 27, 2026 16:19
@AlekseyTs AlekseyTs requested review from a team and RikkiGibson January 28, 2026 15:15
@AlekseyTs
Copy link
Contributor Author

@RikkiGibson, @333fred, @jcouv, @dotnet/roslyn-compiler Please review


if (!dagBuilder._forLowering && lengthValues.Any(BinaryOperatorKind.Equal, lengthValue))
{
dagBuilder._suitableForLowering = false;
Copy link
Member

@jcouv jcouv Jan 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Consider leaving a comment on why this is not suitable for lowering #Resolved

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This existing existing requirement. I did not add it

<Field Name="IsExplicitTest" Type="bool"/>
</Node>
<Node Name="BoundDagExplicitNullTest" Base="BoundDagTest">
<Node Name="BoundDagExplicitNullTest" Base="BoundDagTest" UpdateMethodModifiers="new">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: instead of introducing new machinery, consider using a dedicated name like UpdateInput to avoid overloading Update

@AlekseyTs AlekseyTs requested a review from a team January 28, 2026 23:58
Copy link
Member

@jcouv jcouv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM Thanks (commit 4)

@AlekseyTs
Copy link
Contributor Author

@RikkiGibson, @333fred, @dotnet/roslyn-compiler For a second review

@AlekseyTs AlekseyTs requested a review from a team January 29, 2026 00:59
// Then the process of removal made another update to that indexer evaluation.
// This means that the evaluation would somehow take an input that is calculated
// from itself, only then temps update would update the evaluation.
// But a circuarity like this is not possible with indexer evaluations.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// But a circuarity like this is not possible with indexer evaluations.
// But a circularity like this is not possible with indexer evaluations.
@AlekseyTs AlekseyTs enabled auto-merge (squash) January 29, 2026 03:47
@AlekseyTs AlekseyTs disabled auto-merge January 29, 2026 13:46
Copy link
Member

@333fred 333fred left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not review the tests, I'm leaving that to the other approvals.

Comment on lines +2216 to +2217
public readonly Tests? ConditionToUseFinalResult;
public readonly Tests? TempsUpdatedResult;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be useful to write out some of what was mentioned in the overview meeting on what these fields are useful for, why some of the branches need temps removed and some not.

@333fred
Copy link
Member

333fred commented Jan 31, 2026

Addressed comments look good. Not going to sign off since I didn't review all the tests and you already have 2 approvals, but there's nothing blocking from me.

Unified equivalence implementation with equality implementation for BoundDagTemp and BoundDagEvaluation. This reduces scenarios when temp remapping is necessary. This also improves ability to merge equivalent Dag states. This is what `uniquifyState` function is doing. As a result we create a Decision Dag with less amount of states and emit smaller IL.
@AlekseyTs
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

4 participants