-
Notifications
You must be signed in to change notification settings - Fork 129
Stablize variable typing and support integer truncation and sign extension #201
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
base: master
Are you sure you want to change the base?
Conversation
Regards to the issue of sign extension on rv32 backend, should we introduce a compiler parameter |
It is a good idea. However, we then need to an effective way to select the extensions for RISC-V backend. |
@@ -1018,6 +1016,14 @@ void global_release() | |||
strbuf_free(elf_section); | |||
} | |||
|
|||
/* Reports an error without specifying a position */ | |||
void error_no_loc(char *msg) |
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.
Let's rename it to fatal
. Such helper functions should be always having shorter names.
This is a attempt to support variable typing for all local variables (including synthesized ones) so that integer truncation and sign extension could be implemented, which targets to fix #166.
Notice that there's still some works including type derivation from operators and code cleanup.
About sign extension in rv32
It seems that package
qemu-user
is currently outdated (6.2.0) so Zbb extension is not supported, which results in the implementation of sign extension in rv32 currently using straightforward way to implement, that is bitwise shifting.Summary by Bito
This pull request significantly enhances the variable typing system by introducing support for integer truncation and sign extension, improving local variable management, and optimizing data structures. It addresses existing variable handling issues and lays the groundwork for future enhancements in type derivation and memory management.Unit tests added: True
Estimated effort to review (1-5, lower is better): 2