SSAification of Esotope Brainfuck compiler

esotope-bfc를 SSA를 쓰도록 바꾸는 것에 대한 노트들.

IL changes

아마도 SSA를 도입하면 가장 크게 바뀔 것이 IL일 것이다. 현재 IL은 원래 파스 트리를 그대로 따라 만든 모양으로 되어 있어서 직관적이지만 최적화를 하기에는 너무 품이 많이 드는 (Node.references 등이 너무 비용이 큼) 문제가 있다.

SSA를 도입한다고 쳐 보자. 어떻게 바꿀 것인가? 일단 생각한 것만...

MovePointer as a global optimization blocker

이 방법은 MovePointer 노드를 제외한 모든 노드들에서 p[0]과 같은 메모리 레퍼런스를 빼 버리는 방법이다. MovePointer를 놔 둘 경우 꼼짝 없이 data analysis를 해야 하므로 이걸 피하는(...) 쪽으로 간다.

...아직 미정

changed May 9, 2009