-
Notifications
You must be signed in to change notification settings - Fork 789
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
Re-Implemented ILBinaryReader with System.Reflection.Metadata #8081
Conversation
Wow, CI passes for the first time. However, there is a perf issue when getting the content of the field using the field's RVA. I think it's reading more than it should. |
Are there any interesting benchmark results now that it's passing CI? |
InlineNone(volatileOrUnalignedPrefix (fun (ilAlignment, ilVolatility) -> I_ldind(ilAlignment, ilVolatility, DT_I8)))//byte OperandType.InlineNone // ldind.i8 | ||
InlineNone(volatileOrUnalignedPrefix (fun (ilAlignment, ilVolatility) -> I_ldind(ilAlignment, ilVolatility, DT_I)))//byte OperandType.InlineNone // ldind.i | ||
InlineNone(volatileOrUnalignedPrefix (fun (ilAlignment, ilVolatility) -> I_ldind(ilAlignment, ilVolatility, DT_R4)))//byte OperandType.InlineNone // ldind.r4 | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is incorrect: blobReader.ReadBytes(blobReader.Length)
blobReader.Length
will definitely not give back the proper length. We may have to do what the original implementation did.
Shelving this for the time being. |
This work is almost a year old, Jan 4th 2019; I decided to go ahead and try to finish it since I've been doing a lot of work in our IL metadata lately.
It saves about ~1500 lines of code and is a lot more readable.
Acceptance Criteria