스택 머신 (특히 CIL) 용 컴파일러를 만들고 있는데 코드를 기본 블록 그래프로 파싱했습니다. 여기에서 SSA을 메소드에 적용하려고하지만 너무 잘 진행되지는 않습니다. 첫 번째 시도 (그래프보다는 평면 목록으로 작업하는 동안)는 코드를 반복하고 SSA 겹침 (즉, 대상 지정)을 유지하고, 할당을 생성 할 때 밀어 넣고, 그들은 사용됩니다. 이것은 하나의 기본 블록에 대해서는 문제가 없지만 Φ 함수를 생성하는 방법을 이해할 수는 없습니다.SSA (스택 머신 코드)
내가 던져 온 아이디어는 SSA ID에 스택 위치를 첨부 한 다음 코드 경로가 수렴 될 때 스택에 남아있는 내용을 살펴 보는 것이지만 올바른 방법 (Right Way, TM) 일을하는 것.
여러 코드 경로에서 스택 조작을 추적하고 수렴시 충돌을 결정하는 간단한 알고리즘이 있습니까?
컴파일러는 무엇입니까? 나는 똑같은 일을하려고 생각하고있다. –