Open wjshim2003 opened 6 months ago
컴파일해본 결과 alloca
가 entry가 아닌 basic block에 생성되었습니다.
컴파일러 백엔드는 entry block 외의 장소에서 alloca가 등장하는 경우를 처리하지 못합니다. Non-static alloca는 LLVM IR 문법상으로 허용되긴 하나, local 변수들의 주소 할당 최적화가 어려워지기 때문에 일반적으로 사용되지 않습니다. 동일한 이유로 현재 백엔드에서도 지원하지 않으며, 앞으로도 지원할 계획이 없습니다.
조별로 자체적으로 AllocaEliminatePass
등을 패치해서 돌아가게 하는 것은 허용되나요? 이번 Sprint의 주제였기 때문에 필요한 상황입니다.
백엔드 수정은 허용되지 않습니다.
다만 sp
를 조작하는 백엔드 내부 함수가 있어 이걸 사용하시는 건 가능합니다.
matmul4.ll에서 백엔드 크래시가 일어나서 제보합니다.
matmul4_error.txt