Skip to content

Conversation

@BrzVlad
Copy link
Member

@BrzVlad BrzVlad commented Dec 22, 2022

We were marking INTERP_LOCAL_FLAG_NO_CALL_ARGS for source vars of non calls. With further optimizations, the var could end up being used only for the call but we never unset the flag. Reuse the ref count data instead, which is kept updated following optimizations, to achieve same thing. If cprop is not run then we always duplicate the args, but this is an unused scenario.

@BrzVlad BrzVlad requested a review from vargaz as a code owner December 22, 2022 10:10
@ghost ghost assigned BrzVlad Dec 22, 2022
@ghost
Copy link

ghost commented Dec 22, 2022

Tagging subscribers to this area: @BrzVlad
See info in area-owners.md if you want to be subscribed.

Issue Details

We were marking INTERP_LOCAL_FLAG_NO_CALL_ARGS for source vars of non calls. With further optimizations, the var could end up being used only for the call but we never unset the flag. Reuse the ref count data instead, which is kept updated following optimizations, to achieve same thing. If cprop is not run then we always duplicate the args, but this is an unused scenario.

Author: BrzVlad
Assignees: -
Labels:

area-Codegen-Interpreter-mono

Milestone: -

@build-analysis build-analysis bot mentioned this pull request Dec 22, 2022
@BrzVlad BrzVlad force-pushed the feature-interp-excess-no-call-args branch from e3148f4 to 226d05b Compare January 3, 2023 14:17
@BrzVlad
Copy link
Member Author

BrzVlad commented Jan 4, 2023

This PR is currently blocked by bug in the call args offset allocation: #80175

Failure happens in System.IO.Ports.Tests Debug build, when running xunit with -method System.IO.Ports.Tests.BaudRate_Property.BaudRate_28800 in method CreateTestResultElement, problematic var is 183

@BrzVlad BrzVlad closed this Jan 4, 2023
@kotlarmilos kotlarmilos reopened this Jan 21, 2023
We were marking INTERP_LOCAL_FLAG_NO_CALL_ARGS for source vars of non calls. With further optimizations, the var could end up being used only for the call but we never unset the flag. Reuse the ref count data, which is kept updated following optimizations, to achieve same thing. If cprop is not run then we always duplicate the args, but this is an unused scenario.
@BrzVlad BrzVlad force-pushed the feature-interp-excess-no-call-args branch from 226d05b to d7205fe Compare January 21, 2023 08:14
@SamMonoRT SamMonoRT requested a review from kotlarmilos January 27, 2023 14:12
@BrzVlad BrzVlad merged commit c50c745 into dotnet:main Jan 27, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Feb 26, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants