2013-09-05 20 views
6

LLVM'nin Compiler-RT projesi hakkında aşağıdakileri öğrenmek istiyorum: hangi programdan çağrılır. Anlayışım için, Compiler-RT, LLVM'de gerçekten donanım muadilleri olmayan yönergeleri işleyen bir işlevler topluluğudur (bundan daha fazlası var mı?). Bu yüzden LLVM'de bölme kullanırsam, uygun bir Compiler-RT işlevi ile değiştirilmelidir. İlk olarak, eğer bu doğru değilse, lütfen beni düzeltin!Compiler-RT ne için ve nereden çağırıldı?

İkinci olarak, Compiler-RT kullanımını kimin ürettiğini merak ediyorum. Clang mı, yoksa LLVM mi? LLVM'ye farklı bir ön uç yazabilir miyim ve LLVM, uygun olduğunda Compiler-RT'nin kullanımını otomatik olarak halledebilir mi?

cevap

5

Her iki iddianız da doğrudur. Bir LLVM arka ucunun LLVM IR'yi yerel hedefe özel talimatlara eşlemesi gerekir. Bir talimat yerel olarak desteklenmiyorsa, bunun değiştirilmesi (yasallaştırılmış) gerekir. Bunu, Compiler RT'daki çalışma zamanı işlevleriyle doğrudan eşlenen TargetLowering adresinde görebilirsiniz.

Ön uç dahil değildir.

İlgili konular