2013-09-05 8 views
6

Chciałbym wiedzieć, co następuje na temat projektu LLVM Compiler-RT: od jakiego programu jest wywoływany. W moim rozumieniu Compiler-RT jest zbiorem funkcji, które obsługują instrukcje w LLVM, które tak naprawdę nie mają odpowiedników sprzętowych (czy jest ich więcej niż to?). Więc jeśli użyję podziału w LLVM, powinien on zostać zastąpiony odpowiednią funkcją Compiler-RT. Po pierwsze, jeśli to nie jest poprawne, popraw mnie!Dla czego i skąd wywoływany jest Compiler-RT?

Po drugie, jestem ciekawy, kto generuje użycie kompilatora RT. Czy to jest Clang, czy jest to LLVM bezpośrednio. Czy mogę napisać inny front-end do LLVM i czy LLVM automatycznie obsłuży użycie Compiler-RT, jeśli będzie to właściwe?

Odpowiedz

5

Oba twoje stwierdzenia są poprawne. Backend LLVM musi odwzorować LLVM IR na natywne instrukcje specyficzne dla celu. Jeśli instrukcja nie jest obsługiwana natywnie, musi być wymieniona (zalegalizowana). Możesz to zobaczyć w TargetLowering, która bezpośrednio mapuje funkcje wykonawcze w Compiler RT.

Koniec nie jest zaangażowany.

Powiązane problemy