LLVM IR에 바이트 형식 추가: 원시 데이터 복사 지원

2025-09-09

LLVM 컴파일러 인프라의 Google Summer of Code 2025 프로젝트를 통해 원시 메모리 값을 나타내는 새로운 바이트 형식이 LLVM IR에 성공적으로 추가되었습니다. 이를 통해 memcpy, memmove, memcmp 등의 메모리 관련 내장 함수를 네이티브로 구현하고, 잘못된 변환을 수정하며, 새로운 최적화를 가능하게 합니다. 성능에는 최소한의 영향만 미칩니다. 이 프로젝트는 원시 메모리를 나타내는 형식이 부족하다는 LLVM의 오랜 문제를 해결하여, 포인터 출처 추적 및 정확한 포이즌 비트 표현을 통해 컴파일러의 정확성과 최적화를 향상시켰습니다. C/C++의 원시 메모리 액세스 형식에 대한 Clang의 처리도 개선되었으며, 여러 잘못된 최적화도 수정되었습니다.

더 보기
개발

LLVM Fortran 컴파일러 Flang: 10년의 개발 끝에 공식 출시

2025-03-12

약 10년의 개발 기간을 거쳐 LLVM Fortran 컴파일러 Flang이 마침내 “flang-new”에서 “flang”으로 공식적으로 이름이 변경되었습니다. 이 기사에서는 Flang의 개발 과정을 되짚어보고, 미국 국립 연구소와 NVIDIA의 초기 개발부터 LLVM의 다단계 중간 표현(MLIR) 채택, 그리고 LLVM 프로젝트 통합에 이르기까지의 여정을 살펴봅니다. Flang의 탄생은 장기적인 비독점 Fortran 컴파일러를 제공하여 단일 컴파일러로 인한 위험을 줄이고 Fortran 커뮤니티의 성장을 촉진하는 것을 목표로 했습니다. Flang의 발자취는 Fortran 코드 최적화에서 MLIR 활용 등 컴파일러 기술의 발전을 보여줍니다. 현재 AMD 등의 업체 지원을 받는 성숙하고 안정적인 Flang은 Fortran 개발자에게 강력한 도구가 되고 있습니다.

더 보기
개발

Lightstorm: MLIR을 사용한 최소한의 Ruby 컴파일러로 성능 향상

2024-12-31

DragonRuby 팀은 크로스 플랫폼 게임 엔진의 성능 향상을 목표로 Lightstorm이라는 최소한의 Ruby 컴파일러를 개발했습니다. MLIR을 활용하여 mruby 가상 머신의 바이트 코드를 C 코드로 변환함으로써 VM 인터프리터 루프 내의 로드/스토어 및 분기 연산을 제거하여 성능을 최적화합니다. 벤치마크 결과에 따르면 성능이 1%에서 1200%까지 향상되었으며, 실행 시간과 사이클 수는 평균 약 30% 감소했습니다. 현재는 Ruby의 일부만 지원하지만, 이 프로젝트는 성능 향상을 위한 Ruby 코드의 사전 컴파일 가능성을 입증합니다. 향후 계획에는 엔진의 중요한 C 구성 요소를 컴파일된 Ruby 코드로 대체하는 것이 포함됩니다.

더 보기