중간 표현에서 기계 코드로
컴파일러의 중간 표현을 받아 대상 프로세서에서 실행할 명령으로 바꾼다. 소스 언어를 직접 분석하는 프런트엔드와는 역할이 다르다. 같은 중간 표현을 여러 대상의 코드 생성과 연결할 수 있는 구조다.
런타임과 백엔드의 관계
Wasmtime이 WebAssembly를 실행하는 과정에서 코드 생성기로 사용한다. Cranelift만으로 완전한 WebAssembly 실행 환경이 되는 것은 아니며 외부 런타임의 구성 요소로 연결된다. WebAssembly 이외의 컴파일러 백엔드에도 사용할 수 있다.
여러 대상의 지원
x86-64와 AArch64 및 s390x와 RISC-V 계열의 백엔드를 제공한다. 호출 규약과 지원 기능은 대상별로 구분된다. 코드 생성기는 대상의 명령과 호출 규칙을 반영해 상위 컴파일 단계의 결과를 실행 코드로 옮긴다.