😎 We now push artificial variable declarations close to their use! 😎
Also, inline initialization.
| Website | https://rev.ng |
| https://twitter.com/_revng |
😎 We now push artificial variable declarations close to their use! 😎
Also, inline initialization.
@condret these are not self-xor!
The expression parses as `stack.at_16 ^ (stack.at_16 + b) ^ b`.
The C code is generated from clift, our MLIR dialect.
However, a self-xor would be removed earlier in the pipeline, in LLVM IR, by `InstCombine`.
Anyway, operator precedence in C is often confusing. We used to have rules to be less aggressive in removing parentheses and will re-introduce it in the new backend.
Thanks for pointing this out!
🛳️ The new C decompiler backend is almost ready to ship! 🛳️
Merged today: use alias analysis to reduce local variables.
More critical improvements to come!
⚠️ We just merged the cast elision branch!
Now we no longer print all the 👻 casts, i.e., those that, according to the C standard, are implicit.
Big win for readability without resorting to "hide all casts" as some other tools do 😉
Design document (REP60): https://pad.rev.ng/s/jbM3NmEVq
🎥 New video about QEMU!
This time, Anton walks through the basics of QEMU system mode using a simple bare metal program! ⚙️
The focus is on understanding how QEMU’s high-level control flow works, from guest code to BIOS, and down to device implementation.
🎥 How rev.ng finds loops: Nested Cyclical Region Identification
Andrea will show us how we identify nested cyclical regions on the CFG in the new decompiler backend.