LLVM, 개발자들은 무엇을 불만스러워할까?
LLVM IR의 안정성은 높지만, LICM(Loop Invariant Code Motion)으로 인한 레지스터 압력(Register Pressure) 문제가 발생할 수 있음
macOS 환경에서 clang-tidy, ASAN, UBSAN, LSAN, MSAN, TSAN 등 유용한 도구의 사용에 제약이 존재함
LLVM IR 기반의 포괄적인 실행 가능 테스트 스위트(Executable Test Suite) 부재로 백엔드 개발의 어려움이 있음
코드 리뷰(Code Review)의 가치와 기여에 대한 보상 부족으로 인해 오픈소스 기여(Open Source Contribution)가 저해될 수 있다는 의견이 제기됨
LLVM IR 안정성과 레지스터 할당 문제
pizlonator는 LLVM IR의 안정성을 높이 평가하며, 여러 LLVM 버전 간의 호환성을 유지하는 것이 비교적 용이하다고 언급했다. 하지만 LICM(Loop Invariant Code Motion)으로 인해 레지스터 압력(Register Pressure) 문제가 발생할 수 있으며, 특히 C/C++ 이외의 언어에서 더욱 두드러진다고 지적했다. 이는 컴파일러 최적화 과정에서 레지스터 할당(Register Allocation)의 효율성을 저해하여 성능 저하를 유발할 수 있다.
macOS 환경에서의 도구 지원 문제
hoyhoy는 macOS 환경에서 LLVM 기반의 유용한 도구(clang-tidy, ASAN, UBSAN, LSAN, MSAN, TSAN) 사용에 어려움을 겪고 있다고 지적했다. 특히, -fbounds-safety 옵션이 AppleClang에서만 지원되고, MSAN 및 LSAN은 LLVM에서만 지원되는 등, 툴체인(Toolchain) 간의 불일치로 인해 개발 환경 구축에 어려움이 발생한다. 이러한 문제는 macOS 개발자들이 별도의 LLVM 빌드 환경(Build Environment)을 구축하도록 강요하며, 이는 개발 생산성을 저해하는 요인으로 작용한다.
LLVM 백엔드 개발의 어려움
jcranmer는 LLVM 백엔드 개발 시, SelectionDAG 및 GlobalISel 관련 문서 부족으로 인해 어려움을 겪는다고 언급했다. 특히, LLVM IR 기반의 포괄적인 실행 가능 테스트 스위트(Executable Test Suite) 부재는 백엔드 개발자들이 자체적인 테스트 환경(Test Environment)을 구축해야 하는 부담을 안겨준다. 이는 백엔드 개발의 진입 장벽을 높이고, 개발 효율성을 저하시키는 요인으로 작용한다.
코드 리뷰(Code Review)의 가치와 기여
ggggffggggg는 코드 리뷰(Code Review)에 대한 기여를 인정하는 시스템 부재로 인해 오픈소스 기여(Open Source Contribution)가 저해될 수 있다고 지적했다. 코드 리뷰는 프로젝트의 품질을 향상시키는 중요한 과정이지만, 리뷰어(Reviewer)에게 직접적인 보상이 주어지지 않는 경우, 참여 동기가 저하될 수 있다. 이는 오픈소스 프로젝트의 지속적인 발전을 저해하는 요인으로 작용하며, 커뮤니티 활성화(Community Activation)를 위한 개선이 필요하다는 점을 시사한다.