کد مقاله کد نشریه سال انتشار مقاله انگلیسی نسخه تمام متن
457678 696014 2010 13 صفحه PDF دانلود رایگان
عنوان انگلیسی مقاله ISI
Computing the correct Increment of Induction Pointers with application to loop unrolling
موضوعات مرتبط
مهندسی و علوم پایه مهندسی کامپیوتر شبکه های کامپیوتری و ارتباطات
پیش نمایش صفحه اول مقاله
Computing the correct Increment of Induction Pointers with application to loop unrolling
چکیده انگلیسی

Induction pointers (IPs) are the analogue of induction variables (IVs), namely, pointers that are advanced by a fixed amount every iteration of a loop (e.g., p=p→next→nextp=p→next→next). Although IPs have been considered in previous works, there is no algorithm to properly compute the correct amount of pointer jumping (AOPJ) by which IPs should be advanced if loop unrolling is to be applied to loops of the form while(p){…p=p→next→next;}. The main difficulty in computing the correct AOPJ of IPs is that pointers can be used to modify the data structure that is traversed by the loop (e.g., adding/removing/by-passing elements). Consequently, a simple advancement p=p→nextp=p→next in a loop does not necessarily mean that pp is advanced by one element every iteration. This situation contrasts with the use of IVs, which cannot change the structure of arrays that are traversed by loops. Hence, if ii is an IV, A[i+1]A[i+1] will always mean the next element of A[]A[], while if p=p→next;p=p→next; is preceded by p→next=q;p→next=q; it may be advanced by k>1k>1 elements at every iteration. The proposed method for computing the correct AOPJ of IPs and an accompanying loop unrolling technique were implemented in the SUIF compiler for C programs. Our experiments with automatic unrolling of loops with pointers yielded an improvement of 3–5% for a set of SPEC2000 programs. Experiments with a VLIW IA-64 machine also verified the usefulness of this approach for embedded systems.

ناشر
Database: Elsevier - ScienceDirect (ساینس دایرکت)
Journal: Journal of Systems Architecture - Volume 56, Issue 12, December 2010, Pages 654–666
نویسندگان
, ,