Posts

Project Stage 3

  Project Stage 3: Tidy & Wrap – Clone-Prune Analysis at Scale Welcome to the final part of my SPO600 project! In the previous stage, I built a GCC pass that could compare a cloned function to its original version by checking the number of basic blocks and the GIMPLE statements inside them. The pass would then decide whether the cloned function was identical and could be safely pruned. That version worked well when there was only one cloned function to analyze. But in this stage I wanted to scale things up. What’s New in Stage 3? The goal for Stage 3 was to make the Clone-Prune Analysis Pass more complete and scalable . Here's what I aimed to do: Handle multiple cloned functions , not just one. Automatically skip resolver functions , which are internal compiler helpers we don’t want to compare. Make the output more clear and architecture-independent (i.e., it works the same on both x86_64 and aarch64). Improve diagnostic logging to make testing and verification easier. This m...