Jak wygenerować kod maszynowy za pomocą llvm

Obecnie pracuję nad projektem kompilatora przy użyciu llvm. Poszedłem za różnymi samouczkami do punktu, w którym mam parser do utworzenia drzewa składniowego, a następnie drzewo jest konwertowane na moduł llvm przy użyciu dostarczonego IRBuildera.

Moim celem jest stworzenie pliku wykonywalnego i jestem zdezorientowany, co robić dalej. Wszystkie tutoriale, które znalazłem, po prostu tworzą moduł llvm i drukują złożenie za pomocą Module.dump (). Ponadto jedyna dokumentacja, jaką mogę znaleźć, dotyczy programistów llvm, a nie użytkowników końcowych projektu.

Jeśli chcę wygenerować kod maszynowy, jakie są kolejne kroki? Projekt llvm-mc wygląda tak, jakby mógł robić to, co chcę, ale nie mogę znaleźć na nim żadnej dokumentacji.

Być może oczekuję, że llvm zrobi coś, czego nie zrobi. Spodziewam się, że mogę zbudować moduł, a następnie pojawiłoby się API, które mogę wywołać z modułem, a cel potroi się i zostanie utworzony plik obiektowy. Znalazłem dokumentację i przykłady tworzenia JIT i nie jestem tym zainteresowany. Szukam sposobu na tworzenie skompilowanych plików binarnych.

Pracuję nad OS X, jeśli ma to jakiś wpływ.

questionAnswers(4)

yourAnswerToTheQuestion