-
Notifications
You must be signed in to change notification settings - Fork 22
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
Always create the destination branch argument for the sentinel value when looking for the value definition in the predecessors #58
Conversation
This commit refactors the structure of the emulator so that it can be used more easily as the engine for an interactive debugger for MASM code. * Emulator is now structured such that it can be run step by step, each step producing an event of some kind depending on what occurred during that step and what, if any, breakpoints are present. * Added support for more emulator events * Breakpoints previously implemented to handle stepping through code have been removed in favor of APIs on the emulator itself for that purpose. * Support for multiple breakpoints at once was implemented * Support for watchpoints (i.e. monitoring changes to memory) was implemented * Additional debug information is now provided upon request
Once the conflict is resolved, we can get this merged |
The idea for `CompTest` is to mix and match sources (Rust, Wasm, IR) and expected compiler output (IR, MASM) to test the whole pipeline(Rust->Wasm->IR->MASM) or any part of it (Rust->IR, Wasm->IR, IR->MASM, etc). The compiled MASM code is executed on the emulator and VM and the results are compared with the native Rust code. The inputs are generated via `proptest`. The Rust source code consists of the target function under test and an app binary that calls the target function. The app binary is compiled to Wasm and then to IR. The target function is called directly in the test from the linked crate.
…o `tests` directory
…results; Wasm frontend tests are converted to use integration tests infrastructure.
…ram` to Wasm frontend
Fixes `i64.extend_u32` by adding casts to u32 and back to i64.
…rates, one for Wasm and one for calls in tests
… integration tests
…neBlocks) when producing IR for the integration tests.
fb192bb
to
5933a03
Compare
28e4bd8
to
46d0dbc
Compare
…alue when looking for the value definition in the predecessors. #51 This removes the remnants of the previously removed `ValueData::Alias` variant. It does not matter if we find the definition in the predecessors since we cannot swap all sentinel value uses with it. So this fix always makes the sentinel value into a block argument.
46d0dbc
to
0727932
Compare
5933a03
to
4496a69
Compare
Something got messed up here, probably due to merging #37, but GitHub thinks this branch contains commits that are now in |
6ed229d
to
9ab76a5
Compare
Close #51
Close #40 since the only use case for
emit_zero
at the start of the block was in the code removed by this PR.This PR is ready for review but is built on top and is intended to be merged after #49.
This removes the remnants of the previously removed
ValueData::Alias
variant. It does not matter if we find the definition in the predecessors since we cannot swap all sentinel value uses with it. So, this fix always makes the sentinel value into a block argument.