Retargetable 컴파일러의 광역 레지스터 할당 기법

본 논문에서는 ratargetable 최적화 C 컴파일러인 lcc 컴파일러의 전반부(front-end)를 수정하여 3 주소 형태의 중간 코드를 생성하고, 생성된 중간 코드의 광역 데이터 흐름 분석(global data flow analysis)을 거쳐 이를 기초로 각 변수에 레지스터를 할당한다. Retargetable 컴파일러에 의하여 생성된 중간언어상에는 생존범위(live range)가 짧은 임시 변수(temporary variable)들이 많이 존재한다. 이들을 레지스터 할당 대상에 포함시키게 되면 레지스터 할당시 필요한 간섭 그래프의 복잡도가 증가하게 되고 최적화 기회가 감소한다. 따라서, 본 논문에서는 생존범위가 짧은 임시 변수에 고정된 레지스터를 미리 할당한 후 그래프 컬러링 알고리듬을 적용하고, 임시 변수의 고정 레지스터 수에 따른 레지스터 할당 복잡도를 측정하고 평가한다.