희소 조건부 상수 전파

Sparse conditional constant propagation

컴퓨터 공학에서 희박한 조건부 상수 전파(SCCP)는 정적 단일 할당 양식(SSA)으로 변환한 후 컴파일러에서 자주 적용되는 최적화다.그것은 동시에 어떤 종류의 데드 코드를 제거하고 상수를 프로그램 전체에 전파한다.더욱이, 그것은 어떤 순서나 어떤 반복의 수에서든 데드 코드 제거지속적인 전파를 별도로 적용하는 것보다 더 많은 상수 값을 찾을 수 있고, 따라서 더 많은 개선의 기회를 찾을 수 있다.[1][2]

알고리즘은 SSA 형태로 코드의 추상적 해석을 수행하여 작동한다.추상적 해석 동안, 그것은 일반적으로 값에 대한 상수의 평평한 격자와 SSA 변수를 이 격자의 값에 매핑하는 글로벌 환경을 사용한다.알고리즘의 정점은 분기 명령의 해석을 처리하는 방법에 있다.분기에 대한 조건은 해당 조건의 변수에 바인딩된 추상적 값의 정밀도를 고려할 때 가능한 최선의 것으로 평가된다.값이 완벽하게 정확하고(위나 아래가 모두 아님) 추상적인 실행이 어느 방향으로 분기할지를 결정할 수 있는 경우가 있을 수 있다.값이 일정하지 않거나 조건의 변수가 정의되지 않은 경우 두 가지 방향 모두 보수적으로 유지되도록 해야 한다.

추상적 해석이 완료되면 도달하지 못한 지시사항은 데드코드로 표시된다.상수 값을 갖는 것으로 확인된 SSA 변수는 그 사용 지점에 (제안) 삽입될 수 있다.[example needed]

메모들

  1. ^ Wegman, Mark N, Zadek, F. Kenneth."조건부 분기가 있는 상수 전파"ACM Transactions on Programming Language and Systems, 13(2), 1991년 4월 181-210페이지.
  2. ^ 클릭, 클리포드와 쿠퍼, 키스."Combining Analysis, Composing Optimization", ACM Transactions on Programming Language and Systems, 17(2), 1995년 3월 181-196페이지

참조

  • 쿠퍼, 키스 D. 그리고 토르손, 린다.컴파일러 엔지니어링.모건 카우프만2005.