Project Stage 3 - Function Multi-Versioning Enhancement Project
This term, our team has been focused on extending the GCC compiler's capabilities by implementing Automatic Function Multi-Versioning (AFMV) cloning functionality. This technology enables the compiler to generate multiple optimized variants of functions specifically tailored to different CPU architectures, enhancing performance without requiring developers to manually add attributes in their code.
Our research investigated two potential implementation strategies:
- Core Compiler Modification: Altering GCC's fundamental processing to natively support automatic function multi-versioning.
- Automated Attribute Implementation: Developing a compilation pass that would automatically insert
target_clones
attributes into functions early in the compilation process.
After significant investigation into the first approach with guidance from our professor, we encountered substantial technical hurdles—particularly segmentation faults triggered by specific edge cases (like non-local goto statements) within GCC's codebase. Considering these challenges and our project timeline constraints, we've decided to pivot to the second approach.
Project Direction4:
For Phase III of our project, we're now prioritizing strengthening the stability and dependability of our compiler modifications through comprehensive testing protocols. While automatic function multi-versioning remains our ultimate objective, establishing a thoroughly validated compiler foundation will better position us for future enhancements.
Comments
Post a Comment