Для чего и откуда вызывается компилятор-RT?

Я хотел бы знать следующее О проекте компилятора LLVM-RT: из какой программы он вызывается. Насколько я понимаю, Compiler-RT-это набор функций, которые обрабатывают инструкции в LLVM, которые на самом деле не имеют аппаратных аналогов (есть ли что-то еще?). Поэтому, если я использую division в LLVM, он должен быть заменен соответствующей функцией компилятора-RT. Во-первых, если это неправильно, пожалуйста, поправьте меня!

во-вторых, мне любопытно, кто создает Использование компилятора-RT. Это лязг или это LLVM напрямую. Могу ли я написать другой интерфейс для LLVM и будет ли LLVM автоматически обрабатывать использование Compiler-RT при необходимости?

1 ответов


оба утверждения верны. Сервер LLVM должен сопоставить LLVM IR с собственными целевыми инструкциями. Если инструкция не поддерживается изначально, она должна быть заменена (легализована). Вы можете видеть, что это происходит в TargetLowering, который непосредственно сопоставляется с функциями времени выполнения в компилятор RT.

передняя часть не участвует.