Abstract
Developing a high quality compiler tool for application-specific instruction-set processors (ASIPs) including DSP for multimedia application is challenging. The specialization in ASIPs often calls for extensions at the high-level languages to allow the designers to exploit the specialized capabilities. This in turn requires the frontend of the compiler to handle the new syntax and carry the intentions of the designers across to the compiler backend implementations. The backend implementations also require extra efforts for optimized uses of the specialize features of ASIPs. Meanwhile, because of the diversity of the application, it is necessary to make full use of the compiler to complete supports and to make up some shortages of ASIP processors, the corresponding library functions are increased to support of certain operations, such as floating point arithmetic that may not be supported in ASIPs. With the development of the embedded parallelism, the advanced ASIP compilers need the support of parallelism for future application. This paper describes the High-performance C Compiler (HCC) and its specific implementation for an industrial ASIP and its family processors. HCC is a C language compiler extended and retargeted from GCC. A compiler extension framework is proposed processing programming syntax extensions of standard ANSI C for the ASIPs. With target-specific implementation, the adding optimized arithmetic functions library and chips definition file (CDF) as well as the header files for corresponding ASIPs, HCC compiler could be enhanced for the processing capabilities of target processors. Finally, this paper describes a new compiler static allocation and scheduling scheme for loop parallelization based on the OpenMP specification to improve the load imbalance. We have conducted analysis and extensive experiments to verify the correctness and effectiveness of the HCC compiler with the presented ideas. The results show that HCC compiler has a stable performance with excellent codes quality and it has been used in market.
Similar content being viewed by others
References
Antani L, Ansari H, Parameswaran A (2007) Tricore Port for GCC-An Analysis. Department of Computer Science and Engineering, Indian Institute of Technology, Mumbai, Indian
Ayguade E, Copty N, Duran A, Hoeflinger J et al (2009) The design of OpenMP tasks. IEEE Trans Parallel Distrib Syst 20(3):404–418
Chen BB, Guo DH (2014) A Static Scheduling Scheme of Multicore Compiler for Loop Load Imbalance in OpenMP. ASID 30–33
Cuadrado JS, Molina JG (2007) Building domain-specific languages for mod-el-driven development. IEEE Softw 24(5):48–55
Desai NP (2009) A novel technique for orchestration of compiler optimization functions using branch and bound strategy. IACC 467–472
Feese S, Burscher MJ, Jonas K et al (2014) Sensing spatial and temporal coordination in teams using the smartphone. Human-centric Comput Inf Sci 4(1):1–18
Guyer SZ, Lin C (2005) Broadway: A compiler for exploiting the domain-specific semantics of software libraries. J Proceedings of the IEEE 93(2):342–357
Hada R, Tanigawa K, Hironaka T (2008) A back-end compiler with fast compilation for VLIW based dynamic reconfigurable processor. WSEAS Trans Comput 7(9):1515–1524
Hsu PY, Liu YY (2014) Buffer design and assignment for structured ASIC. J Inf Sci Eng 30(1):107–124
Kim PS (2013) An architecture for home-oriented IPTV service platform on residential gateway. J Inf Process Syst 9(3):425–434
Leupers R, Hohenauer M, Ceng J, Scharwaechter H, Meyr H, Ascheid G, Braun G (2005) Retargetable compilers and architecture exploration for embedded processors. IEE Comput Digit Tech 152(2):209–223
Malkawi M (2013) The art of software systems development: Reliability, Availability, Maintainability, Performance (RAMP). Human-centric Comput Inf Sci 3(22):1–17
Mozgovoy M, Efimov R (2013) WordBricks: a virtual language lab inspired by Scratch environment and dependency grammars. Hum-centric Comput Inf Sci 3(1):1–9
Nilsson (1998) Porting The GNU C Compiler to the CRIS architecture, Department of Information Technology. Lund Institute of Technology, Sweden
Oh JS, Park CU, Lee SB (2014) NFC-based mobile payment service adoption and diffusion. J Convergence 5(2):8–14
Ozturk O, Kandemir M, Chen G (2013) Compiler-directed energy reduction using dynamic voltage scaling and voltage islands for embedded systems. IEEE Trans Comput 62(2):268–278
Panduranga HT, Naveen Kumar SK, Sharath Kumar HS (2013) Hardware software co-simulation of the multiple image encryption technique using the xilinx system generator. J Inf Process Syst 9(3):499–510
Pei XH (2010) Porting GCC to Godson processor. University of Science and Technology of China, China
Povazan I, Popovic M, Djukic M et al (2013) A retargetable C compiler for embedded systems. ECBS-EERC, Budapest 48–54
Ren K, Yan XL, Qin X, Sun LL (2008) Design and implementation of a novel ASIP compiler. J Zhejiang Univ 42(5):553–557
Seng JS, Tullsen DM (2003) The effect of compiler optimizations on Pentium 4 power consumption. INTERA 51–56
Tools of holtek semiconductor Inc. http://www.holtek.com.cn, 2014
Trienekens R (2009) Porting the GCC Compiler to a VLIW Vector Processor. Department of Electrical Engineering, Delft University of Technology, Netherlands
Tzen TH, Ni LM (1993) Trapezoid self-scheduling: a practical scheduling scheme for parallel compilers. IEEE Trans Parallel Distrib Syst 4(1):87–98
Wagner J, Leupers R (2001) C compiler design for a network processor. IEEE Trans Comput Aided Des Integr Circuits Syst 20(11):1302–1308
Yang X, Peng G, Cai Z, Zeng K (2013) Occluded and low resolution face detection with hierarchical deformable model. J Convergence 4(1):11–14
Zaidi SMA, Jung J, Song B (2014) Prioritized multipath video forwarding in WSN. J Inf Process Syst 10(2):176–192
Acknowledgments
Foundation item: The Natural Science Foundation of China (No.: 61274133) . Authors are grateful to the Department of Electronic Engineering, Xiamen University and holtek semiconductor Inc. for the supports to carry out this work and thanks for all team members’ assistances.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Chen, B., King, CT., Li, X. et al. A high quality compiler tool for application-specific instruction-set processors with library and parallel supports. Multimed Tools Appl 76, 5905–5926 (2017). https://doi.org/10.1007/s11042-015-2653-y
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11042-015-2653-y