Pointer Alignment Analysis for Processors with SIMD Instructions
Embedded processors for media applications usually have 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 signifi...
Main Authors: | , , , |
---|---|
Other Authors: | |
Format: | Text |
Language: | English |
Published: |
2003
|
Subjects: | |
Online Access: | http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.70.1731 http://csr.uvic.ca/~nigelh/Publications/align_MSP5.pdf |
id |
ftciteseerx:oai:CiteSeerX.psu:10.1.1.70.1731 |
---|---|
record_format |
openpolar |
spelling |
ftciteseerx:oai:CiteSeerX.psu:10.1.1.70.1731 2023-05-15T18:32:42+02:00 Pointer Alignment Analysis for Processors with SIMD Instructions Ivan Pryanishnikov Andreas Krall Technische Universität Wien Nigel Horspool The Pennsylvania State University CiteSeerX Archives 2003 application/pdf http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.70.1731 http://csr.uvic.ca/~nigelh/Publications/align_MSP5.pdf en eng http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.70.1731 http://csr.uvic.ca/~nigelh/Publications/align_MSP5.pdf Metadata may be used without restrictions as long as the oai identifier remains attached to it. http://csr.uvic.ca/~nigelh/Publications/align_MSP5.pdf optimization General Terms Algorithms Measurement Theory Keywords DSP SIMD vectorization alignment analysis static pointer analysis text 2003 ftciteseerx 2016-01-08T18:51:17Z Embedded processors for media applications usually have 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. Usually each memory access must be aligned with the instruction’s data access size. With C becoming the dominant language for programming embedded devices, there is a clear need for C compilers which optimize the use of SIMD instructions. An important problem in designing such compilers is the question of determining whether a C pointer is aligned, i.e., whether it refers to the beginning of a machine word. In this paper, we describe a 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 analyzes pointer values propagated through function calls. The effectiveness of our method is substantiated by experimental results which show that the alignments of about 50 % of the pointers can typically be statically determined. Text The Pointers Unknown |
institution |
Open Polar |
collection |
Unknown |
op_collection_id |
ftciteseerx |
language |
English |
topic |
optimization General Terms Algorithms Measurement Theory Keywords DSP SIMD vectorization alignment analysis static pointer analysis |
spellingShingle |
optimization General Terms Algorithms Measurement Theory Keywords DSP SIMD vectorization alignment analysis static pointer analysis Ivan Pryanishnikov Andreas Krall Technische Universität Wien Nigel Horspool Pointer Alignment Analysis for Processors with SIMD Instructions |
topic_facet |
optimization General Terms Algorithms Measurement Theory Keywords DSP SIMD vectorization alignment analysis static pointer analysis |
description |
Embedded processors for media applications usually have 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. Usually each memory access must be aligned with the instruction’s data access size. With C becoming the dominant language for programming embedded devices, there is a clear need for C compilers which optimize the use of SIMD instructions. An important problem in designing such compilers is the question of determining whether a C pointer is aligned, i.e., whether it refers to the beginning of a machine word. In this paper, we describe a 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 analyzes pointer values propagated through function calls. The effectiveness of our method is substantiated by experimental results which show that the alignments of about 50 % of the pointers can typically be statically determined. |
author2 |
The Pennsylvania State University CiteSeerX Archives |
format |
Text |
author |
Ivan Pryanishnikov Andreas Krall Technische Universität Wien Nigel Horspool |
author_facet |
Ivan Pryanishnikov Andreas Krall Technische Universität Wien Nigel Horspool |
author_sort |
Ivan Pryanishnikov |
title |
Pointer Alignment Analysis for Processors with SIMD Instructions |
title_short |
Pointer Alignment Analysis for Processors with SIMD Instructions |
title_full |
Pointer Alignment Analysis for Processors with SIMD Instructions |
title_fullStr |
Pointer Alignment Analysis for Processors with SIMD Instructions |
title_full_unstemmed |
Pointer Alignment Analysis for Processors with SIMD Instructions |
title_sort |
pointer alignment analysis for processors with simd instructions |
publishDate |
2003 |
url |
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.70.1731 http://csr.uvic.ca/~nigelh/Publications/align_MSP5.pdf |
genre |
The Pointers |
genre_facet |
The Pointers |
op_source |
http://csr.uvic.ca/~nigelh/Publications/align_MSP5.pdf |
op_relation |
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.70.1731 http://csr.uvic.ca/~nigelh/Publications/align_MSP5.pdf |
op_rights |
Metadata may be used without restrictions as long as the oai identifier remains attached to it. |
_version_ |
1766216886950821888 |