일반기술
에필로그 테일러된 프로시저를 위한 프롤로그 테일러링 기법
에필로그 테일러링은 에필로그의 실행에 소모되는 시간을 줄이기 위한 에필로그 생성 기법으로 일반적으로 하나인 프로시저의 탈출점(exit point)을 둘 이상으로 분리하면 각 탈출점은 서로 다른 소멸 레지스터 집합을 갖게 되며, 따라서 각 탈출점에 대해 보다 적합한 에필로그를 생성할 수 있다는 점에 착안한 기법이다. 프롤로그 테일러링의 원리는 에필로그 테일러링과 유사하며, 기존의 기법에 의해 생성된 프롤로그의 레지스터 저장명령은 프로시저의 시작 부분에 위치한다. 이러한 레지스터 저장 명령을 프로시저의 실행 경로를 따라 실제 레지스터의 소멸 위치에 접근시키면, 프로시저는 각 실행 경로에 대해 불필요한 레지스터 저장 명령을 거치지 않고 실행될 수 있다. 레지스터의 수가 많은 기계에서 반복 수행되는 프로시저의 경우, 프롤로그와 에필로그에서 실행되는 레지스터 저장 및 복원 명령어를 줄이는 것은 프로시저의 실행 속도 향상을 위한 주요 작업이 된다. IBM XL C 컴파일러가 제공하는 에필로그 테일러링은 실행 경로상의 레지스터 복원 명령어를 줄임으로써 프로시저의 성능 향상에 기여해왔으나, 프로시저가 실행하는 레지스터 저장 명령어 수를 줄이는 알고리즘은 현재 제안되어 있지 않다. 본 기술은 먼저 기본 블록 제어흐름 그래프 상에서 반복 구조를 제거하고, SCC 흐름 그래프상의 모든 다이아몬드 구조를 제거하여 트리 형태의 BCC(Bi-connected component) 흐름 그래프 (BCC flow graph)를 구성한다. 그리고 BCC 흐름 그래프의 각 BCC에 대해 소멸 레지스터 집합을 계산하고, 계산된 소멸 레지스터 집합에 기초하여 각 BCC의 DKR (Definitely Killed Registers)을 구하고, BCC 흐름 그래프의 루트 BCC로부터 위상 순서에 따라 프롤로그 코드 즉, 레지스터 저장 명령들을 생성하는 것으로 구성되는 에필로그 테일러된 프로시저를 위한 프롤로그 테일러링 기법이다.본 기술은 각각의 실행 경로에 대해 현저히 감소된 수의 레지스터 저장 명령을 실행함으로써 에필로그 테일러된 프로시저의 실행 속도를 더욱 개선시키고, 테일러된 프롤로그를 갖는 프로시저가 바르게 실행되도록 하기 위하여, 레지스터가 소멸되는 지점에 가장 근접하면서도 다이아몬드 구조나 반복 구조의 내부가 아닌 위치에 레지스터 저장 명령을 생성하는 것을 특징으로 한다.본 기술에 의해 생성된 프롤로그는 각각의 실행 경로에 대해 현저히 감소된 수의 레지스터 저장 명령을 실행하도록 함으로써 프로시저의 실행 속도를 개선시키는 효과가 있다. 본 기술에서는 에필로그 테일러링과 프롤로그 테일러링을 함께 적용한 프로시저는 에필로그 테일러링만을 적용한 경우에 비해 12.8% 감소된 수의 레지스터 저장 명령어를 실행하는 것으로 나타났으며, 3.7% 개선된 실행 속도를 보였다.본 기술은 프로그램 기법 관련한 기술로 자체적인 시장 정의는 어렵고 목적에 따라 다양한 분야에 적용은 가능하다.
기술정보
- 기술분류
- 정보 > 데이터 처리 기술
- 보유기관
- 인하대학교
- 기술유형
- 일반기술
- 등록일
- 2004-04-13
- 데이터 갱신일
- 정보 없음
상세설명
정보 없음
관련 특허
등록된 관련 특허가 없습니다.