Open KyungWonCho opened 5 months ago
optimization 과정까지 끝나고 backend로 넘어가기 직전의 전체 IR을 올려주시거나 메일로 보내주실 수 있을까요?
메일로 보냈습니다!
백엔드 버그가 맞으며, register allocation 과정에서 버그로 과도한 register pressure가 발생하는 것 같습니다. 수정 예정입니다.
Register pressure가 과도한 상황에서 allocation 과정이 상당히 비효율적으로 일어나는 문제가 추가로 발견되어 현재 수정 대책을 찾는 중입니다.
Matmul3 Benchmark를 제 optimization pass를 적용시켰을때 다음과 같이 변환됩니다.
이걸 Register Allocation이 끝난 후 IR을 보면
중간에 scalar register의 경우에 usage가 커서 stack에 저장되는것이 맞지만, vector load를 하고 하나씩 extract를 할때 한번에 하나씩 vector load를 하는 것 같아 cost가 비정상적으로 많이 증가되는데 이것이 의도된 변환인지 아닌지가 궁금합니다.