재물질화

Rematerialization

컴퓨터 과학에서 재물질화 또는 리마트는 메모리에서 값을 로드하는 대신 값을 다시 계산하여 시간을 절약하는 컴파일러 최적화다.일반적으로 레지스터 할당과 긴밀하게 통합되며, 여기서 레지스터를 메모리에 흘리는 대안으로 사용된다.그것은 그레고리 차이틴, 마크 아우스랜더, 아쇼크 찬드라, 존 코크, 마틴 홉킨스, 피터 마크슈타인에 의해 구상되었으며 1970년대 후반 801 미니컴퍼터의 컴파일러 PL.8에서 구현되었다.나중에 개선된 것은 프레스턴 브릭스, 키스 D에 의해 이루어졌다. 쿠퍼, 1992년 린다 토크존.

일반적인 하위표현 제거루프 불변성 호스팅과 같은 전통적인 최적화는 종종 중복 연산 제거에 초점을 맞춘다.연산에는 CPU 사이클이 필요하므로, 이것은 대개 좋은 일이지만, 잠재적으로 파괴적인 부작용이 있어 변수의 라이브 범위를 늘리고 새로운 변수를 많이 만들어 레지스터 할당 중에 유출될 수 있다.재물질화는 거의 정반대로 CPU 계산량을 증가시켜 레지스터 압력을 감소시킨다.필요 이상의 계산 시간을 추가하지 않기 위해, 재물질화는 컴파일러가 그것이 유익할 것이라고 확신할 수 있을 때, 즉 레지스터가 메모리에 유출될 때에만 수행된다.

재물질화는 사용 가능한 식 개념을 사용하여 각 변수를 계산하는 데 사용되는 식을 추적함으로써 작동한다.때로는 값을 계산하는 데 사용되는 변수가 수정되기도 하며, 따라서 해당 값을 재물질화하는 데 더 이상 사용할 수 없다.이어 이 표현은 더 이상 사용할 수 없다고 한다.다른 기준도 충족해야 한다. 예를 들어 값을 재물질화하는 데 사용되는 표현식의 최대 복잡성은 부하보다 더 많은 시간이 걸리는 복잡한 계산을 사용하여 값을 재물질화하는 것은 아무런 소용이 없다.보통 표현도 부작용이 없어야 한다.

외부 링크

  • 차이틴, 그레고리, 마크 아우스랜더, 아쇼크 찬드라, 존 코크, 마틴 홉킨스, 피터 마크슈타인."색상, 컴퓨터 언어를 통한 할당 등록, 제6권, 제1호, 1981년, 페이지 47-57"
  • P. 브릭스, K. D.쿠퍼, 그리고 L.토르크존.재물질화.언어 설계구현 프로그래밍에 관한 SIGPlan 92 회의, SIGPlan Notice 27(7), 페이지 311-321의 진행.1992년 7월.원본 논문의 CiteSeer 페이지.
  • 묵타 푼자비.재물질화를 GCC에 등록한다.gcc의 재물질화 이행에 대해 논의한다.