ddea962d144bfdd9821d50fdb7bbccff5b751f24
명령 12개와 종결자 4개. 함수 단위 기본 블록이고 임시값은 블록을 넘지 않아 phi 노드가 없다 -- 블록을 넘겨야 하는 값은 지역을 경유한다. 코드가 조금 더 생기지만 레지스터 할당기를 블록 단위로 유지해 준다. Ferro 타입은 여기서 사라진다. 구조체·슬라이스·옵셔널·에러 유니온이 전부 mem<N> 이고 필드는 lowering 이 계산한 바이트 오프셋이다. 모노모피제이션이 프론트엔드에서 끝나므로 IR 에 제네릭이라는 개념도 없다. 덩어리는 언제나 주소로 오간다. 크기 임계값이 없어서 ISA 마다 다른 구조체 전달 규칙을 통째로 피해간다. trap 은 이유와 줄 번호만 남기고 파일 이름 문자열은 유닛당 하나를 공유한다. IR.md 가 설명이고 ir.h/ir.c 가 그 형태다. 아직 아무도 만들지 않는다.
Description
doslang mirror
914 KiB
Languages
C
94.2%
Python
3%
Assembly
2%
JavaScript
0.6%