Posts

SPO600 2025 Winter Project - Stage 3: Tidy & Wrap

Image
Introduction In Stage III of the SPO600 project, the main goal was to wrap up the work done in Stage II and enhance our GCC compiler pass with more robust testing and functionality. Originally, the professor planned to provide a compiler with AFMV (Automatic Function Multi-Versioning) cloning pre-enabled. However, due to implementation issues with that feature, Stage III was redesigned to focus on comparing multiple cloned functions manually using target_clones . Instead of automatic cloning, we were asked to extend our test cases and ensure that our pass could handle multiple clone groups — not just one base function — and make clear pruning decisions for each. I initially developed and tested everything on an aarch64 platform, but I will also run the same test case on an x86_64 server later and include the result screenshots at the end for comparison. Improvements to tree-skim.cc The core improvement in Stage III was upgrading our compiler pass so that it could analyze and co...