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...

Full description

Bibliographic Details
Main Authors: Ivan Pryanishnikov, Andreas Krall, Technische Universität Wien, Nigel Horspool
Other Authors: The Pennsylvania State University CiteSeerX Archives
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