컴파일러 최적화에서 산업용 휴리스틱을 대체하기 위한 휴대 가능한 모델
요약
기존 컴파일러의 복잡한 인라이닝 휴리스틱을 대체하기 위해, 경량 시스템에서도 사용 가능한 휴대 가능한 인라이닝 예측 프레임워크를 제안합니다. 프로덕션 컴파일러 데이터를 활용해 학습된 모델은 컴파일러 의존성 없이 일반 C 코드에서 작동하며 높은 예측 성능을 보입니다.
핵심 포인트
- GCC/LLVM의 복잡한 인라이닝 결정을 대체하는 휴대 가능한 모델 제안
- 소스 코드와 범용 AST를 활용하여 컴파일러-런타임 의존성 제거
- CatBoost 모델을 통해 ROC-AUC 0.928의 높은 성능 달성
- 소스 지역성, 피호출자 크기, 호출 구조 등이 주요 예측 특징임
본 논문은 GCC 또는 LLVM 최적화 인프라의 재사용이 비실용적인 소형 컴파일러, 소스-투-소스(source-to-source) 도구 및 인터프리터에서 함수 인라이닝(function-inlining) 결정의 예측 가능성을 조사합니다. 이 연구의 관련성은 컴파일러 인프라가 제한적이고, 런타임 의존성이 제한되며, 타겟 특정 분석에 대한 접근이 줄어든 시스템으로 성숙한 인라이닝 휴리스틱을 전송해야 할 필요성에 의해 결정됩니다. 기존의 프로덕션 컴파일러는 이미 강력한 인라이너(inliners)를 포함하고 있지만, 그 결정은 경량 시스템에서 재현하기 어려운 내부 중간 표현(IRs), 패스 순서(pass ordering), 타겟 모델 및 분석 스택에 의존합니다. 이러한 제약을 극복하기 위해, 우리는 휴대 가능한 인라이닝 예측 프레임워크를 제안합니다. 프로덕션 컴파일러 진단 데이터가 감독(supervision) 역할을 수행하며, 별도의 추출기(extractor)가 호출자-피호출자(caller-callee) 호출 지점(callsites)을 재구성하고, 깨끗한 소스 스니펫을 준비하며, 이를 범용 AST로 정규화하고, 선택적으로 경량 구조적 IR로 낮춘(lowers) 다음, 모델 학습을 위한 스칼라 특징(scalar features)을 내보냅니다. 따라서 학습된 예측기는 컴파일러-런타임 의존성 없이 일반적인 C 코드로 생성될 수 있습니다. 제안된 프레임워크를 평가하기 위해, 우리는 79,287개의 컴파일러 보고 인라인 이벤트를 포함하여 15개의 오픈 소스 C 프로젝트로부터 추출한 336,938개의 호출 지점으로 구성된 데이터셋을 구축했습니다. 프로젝트 인식 검증(project-aware validation)을 사용하여 여러 테이블형 모델(tabular models)의 비교를 수행했습니다. Leave-one-project-out 검증 하에서 CatBoost는 ROC-AUC 0.928 및 PR-AUC 0.713에 도달했습니다. 임계값 조정(threshold tuning) 후, F1 점수는 0.670에서 0.729로 향상되었고, 거짓 양성률(false-positive rate)은 0.192에서 0.084로 떨어졌습니다. 특징 분석(Feature analysis) 결과, 대부분의 신호는 소스 지역성(source locality), 명시적 인라인 의도, 피호출자 크기, 부작용(side effects), 분기 및 호출 구조, 시그니처 형태, 호출 지점 인자 형태에 집중되어 있음을 보여줍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기