2013-09-05 2 views
6

나는 LLVM의 컴파일러 -RT 프로젝트에 대해 다음과 같은 것을 알고 싶다. 어떤 프로그램을 호출했는지 알고 싶다. 필자의 이해를 돕기 위해 Compiler-RT는 LLVM의 명령어를 처리하는 함수 콜렉션으로 실제 하드웨어에는없는 명령어들이다. 따라서 LLVM에서 나누기를 사용하는 경우 적절한 Compiler-RT 함수로 대체해야합니다. 첫째, 이것이 올바르지 않으면, 저를 시정하십시오!컴파일러 -RT가 어디에서 호출 되었습니까?

둘째, 누가 컴파일러 RT 사용을 생성하는지 궁금합니다. 그것은 Clang인가 아니면 LLVM입니까? LLVM에 다른 프론트 엔드를 쓸 수 있습니까? LLVM이 적절한 경우 컴파일러 -RT의 사용을 자동으로 처리합니까?

답변

5

귀하의 주장이 모두 정확합니다. LLVM 백엔드는 LLVM IR을 기본 대상별 지침으로 매핑해야합니다. 명령이 기본적으로 지원되지 않으면이를 대체 (합법화)해야합니다. Compiler RT의 런타임 기능에 직접 매핑되는 TargetLowering에서 일어나는 것을 볼 수 있습니다.

프런트 엔드가 관련되지 않습니다.

관련 문제