首页 | 本学科首页   官方微博 | 高级检索  
     


Compiler optimizations for processors with SIMD instructions
Authors:Ivan Pryanishnikov  Andreas Krall  Nigel Horspool
Affiliation:1. Technische Universit?t Wien, Institut für Computersprachen, Argentinierstrasse 8, 1040 Wien, AustriaTechnische Universit?t Wien, Institut für Computersprachen, Argentinierstrasse 8, 1040 Wien, Austria;2. Technische Universit?t Wien, Institut für Computersprachen, Argentinierstrasse 8, 1040 Wien, Austria;3. University of Victoria, Department of Computer Science, Victoria, BC, Canada V8W 3P6
Abstract:To achieve maximum efficiency, modern embedded processors for media applications exploit single instruction multiple data (SIMD) instructions. SIMD instructions provide a form of vectorization where a large machine word is viewed as a vector of subwords and the same operation is performed on all subwords in parallel. Systematic usage of SIMD instructions can significantly improve program performance. With C becoming the dominant language for programming embedded devices, there is a clear need for C compilers that use SIMD instructions whenever appropriate. However, SIMD instructions typically require each memory access to be aligned with the instruction's data access size. Therefore an important problem in designing the compiler is to determine whether a C pointer is aligned, i.e. whether it refers to the beginning of a machine word. In this paper, we describe our SIMD generation algorithm and present an analysis method which determines the alignment of pointers at compile time. The alignment information is used to reduce the number of dynamic alignment checks and the overhead incurred by them. Our method uses an interprocedural analysis which propagates pointer alignment information in function bodies and through function calls. The effectiveness of our method is supported by experimental results which show that in typical programs the alignments of about 50% of the pointers can be statically determined. Copyright © 2006 John Wiley & Sons, Ltd.
Keywords:DSP  SIMD  vectorization  alignment analysis  static pointer analysis
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号