피드로 돌아가기
Dev.toInfrastructure
원문 읽기
LLVM 배제 및 자체 IR 설계를 통한 Multi-Target Compiler Backend 구축
I'm Building a Multi-Target Compiler Backend from Scratch — No LLVM, No Crutches
AI 요약
Context
LLVM의 방대한 코드 규모로 인한 제어권 상실과 범용적 설계의 한계를 극복하기 위한 시도. SIMD Width 선택의 세밀한 제어와 보안 강화 Codegen 구현을 위해 프레임워크 없는 자체 컴파일러 스택 설계 필요성 대두.
Technical Solution
- Source에서 x86-64, SPIR-V 등 다수 Target으로 이어지는 Multi-stage Pipeline 구축
- SSMOL(HIR)을 통해 Type, Ownership, Semantics를 처리하는 고수준 추상화 단계 구현
- MREL(LIR) 도입으로 Virtual Register와 Stack Slot을 관리하는 Target-agnostic 하위 계층 설계
- Hand-written Recursive Descent Parser를 통한 C++-like Syntax 및 Explicit SIMD Type 처리
- Constant-time Crypto Primitive emission을 위한 Secret Register Annotation 메커니즘 적용
- Control Flow Flattening 및 Opaque Predicates를 포함한 Security Obfuscation Pass 설계
실천 포인트
1. 특정 Target의 하드웨어 성능을 극한으로 활용해야 하는 경우, 범용 프레임워크보다 자체 IR(Intermediate Representation) 설계 검토
2. 보안 민감 로직 구현 시 Constant-time Execution 보장을 위한 Register 레벨의 Annotation 전략 수립
3. 복잡한 컴파일러 설계 시 High-level IR(SSMOL)과 Low-level IR(MREL)을 분리하여 Target 독립성 확보