Abstract

In this paper, by targeting low-level code optimization, an instruction scheduler is designed and experimented with a synergistic processor unit (SPU) to show its effectiveness on a basic block and data dependency graph (DDG) called compiler instruction scheduler (CIS). In our methodology, a source C/C++ file is converted to an assembly file via spu-gcc to detect stalls in basic code blocks and CIS generates the DDG of executable code to eliminate stalls to find optimization opportunities and increase the program performance. The CIS simply shuffles the instruction sequences of the assembly code to eliminate CPU stalls in a given basic instruction block. Random and sliding window schedulers are implemented to generate a new assembly code sequence based on DDG and a basic block in parallel. Finally, this paper describes how CIS finds the optimized code sequence for a given file without any conflicts and hazards. Compared to the original code compilation process, we have shown that CIS improves the code execution metrics, and also our evaluated speedup results are found to be promising.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.