2010-11-02 15 views
9

Jest to rodzaj subiektywne, ale mam problemy z uzyskaniem LLVM JIT do przyspieszenia. Jitting dużych ciał kodu zajmuje 50 razy więcej czasu, niż po prostu interpretowanie ich nawet przy włączonej leniwej kompilacji.LVVM JIT przyspiesza wybory?

Więc zastanawiałem się, w jaki sposób mogę przyspieszyć nadrabianie, jakie ustawienia mogę użyć?

Jakieś inne rekomendacje?

Odpowiedz

11

Przykro mi to mówić, że LLVM po prostu nie jest bardzo szybki jako kompilator JIT, jest lepszy jako kompilator AOT/statyczny.

Wystąpiłem w tych samych problemach z prędkością w moim projekcie llvm-lua. To, co zrobiłem, to wyłączyć kompilację JIT dużych funkcji Lua. llvm-lua nie ma włączonej obsługi leniwej kompilacji, ponieważ LLVM wymaga zbyt wiele miejsca na stosy C, aby można było uruchomić Lua Coroutines.

Także jeśli używasz to w głównej funkcji Twojego programu():

llvm::cl::ParseCommandLineOptions(argc, argv, 0, true); 

To narazi dużo opcji wiersza polecenia z LLVM jak „-Czas obwodnic”, które pozwolą taktowanie LLVM przechodzi, aby zobaczyć, które części kompilacji JIT zabierają najwięcej czasu.