Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve IL for ValueTypes #24

Closed
dadhi opened this issue Aug 28, 2017 · 3 comments
Closed

Improve IL for ValueTypes #24

dadhi opened this issue Aug 28, 2017 · 3 comments

Comments

@dadhi
Copy link
Owner

dadhi commented Aug 28, 2017

Current implementation is sub-optimal:

  1. It uses Boxing where it is not always needed
  2. It defines additional variable instead of using the one higher in expression tree
@dadhi dadhi added the bug label Aug 28, 2017
@dadhi dadhi self-assigned this Nov 8, 2017
@dadhi
Copy link
Owner Author

dadhi commented Nov 8, 2017

Currently is being fixed for v1.5

@dadhi dadhi removed their assignment Nov 9, 2017
@dadhi
Copy link
Owner Author

dadhi commented Nov 9, 2017

I've tried to fix for v1.5, but too many nuances to handle, so postponing for later. The current tests are passing, that's good.

The excessive boxing or local variable usage where it is not required affects not as many cases, therefore changing the issue to enhancement.

I have added todo: into the problematic cases, at least it makes it faster to find and understand.

dadhi added a commit that referenced this issue Jul 20, 2018
changed: #24 - loading ValueType parameter arg via address where it is needed and proper use of constrained op-code
removed: #24 - unnecessary boxing in some cases
added: EvalStack to TryEMit method with limited functionality to support above
@dadhi
Copy link
Owner Author

dadhi commented Jul 24, 2018

Ok, quick check says no more related todos.

@dadhi dadhi closed this as completed Jul 24, 2018
@dadhi dadhi added this to the 1.9.0 milestone Jul 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant