To jest polecenie lli-3.8, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
lli - bezpośrednio wykonuj programy z kodu bitowego LLVM
STRESZCZENIE
lli [Opcje] [filename] [program args]
OPIS
lli bezpośrednio wykonuje programy w formacie kodu bitowego LLVM. Wymaga programu w kodzie bitowym LLVM
format i wykonuje go za pomocą kompilatora just-in-time lub interpretera.
lli is nie emulator. Nie będzie wykonywał IR o różnych architekturach i może tylko
interpretować (lub kompilować JIT) dla architektury hosta.
Kompilator JIT przyjmuje te same argumenty, co inne narzędzia, np llc, ale tak nie jest
koniecznie pracować dla tłumacza.
If filename nie jest określony, to lli odczytuje kod bitowy LLVM programu z
standardowe wejście.
Opcjonalne args określone w wierszu poleceń są przekazywane do programu jako argumenty.
GENERAŁ OPCJE
-fake-argv0=plik wykonywalny
Zastąp argument[0] wartość przekazywana do wykonującego programu.
-force-interpreter={false,true}
Jeśli ustawione na true, użyj interpretera, nawet jeśli dostępny jest kompilator just-in-time
dla tej architektury. Domyślnie jest to fałsz.
-Pomoc Wydrukuj podsumowanie opcji wiersza poleceń.
-load=nazwa pliku wtyczki
Rozwiązania lli aby załadować wtyczkę (obiekt współdzielony) o nazwie nazwapliku wtyczki i używaj go do
optymalizacja.
-statystyki Drukuj statystyki z przebiegów generowania kodu. Ma to znaczenie tylko dla
kompilator just-in-time, obecnie.
-czas mija
Zapisz czas potrzebny na wykonanie każdego przebiegu generowania kodu i wydrukuj go
Standardowy błąd.
-wersja
Wydrukuj wersję lli i wyjdź, nie robiąc nic więcej.
TARGET OPCJE
-mtriple=cel potrójny
Zastąp docelową trójkę określoną w wejściowym pliku kodu bitowego określonym
strunowy. Może to spowodować awarię, jeśli wybierzesz architekturę, która nie jest
kompatybilny z obecnym systemem.
-marzec=łuk
Określ architekturę, dla której chcesz wygenerować zestaw, zastępując cel
zakodowane w pliku bitcode. Zobacz wyjście llc -Pomoc o listę ważnych
architektury. Domyślnie jest to wywnioskowane z docelowej potrójnej lub automatycznie wykrytej
do obecnej architektury.
-mcpu=nazwa procesora
Określ konkretny układ w obecnej architekturze, dla którego ma zostać wygenerowany kod. Za pomocą
domyślnie jest to wywnioskowane z trójki docelowej i automatycznie wykrywane do bieżącego
architektura. Aby uzyskać listę dostępnych procesorów, użyj: llvm-as < / dev / null | llc
-marzec=xyz -mcpu=pomoc
-mattr=a1,+a2, -a3,...
Zastępuje lub kontroluje określone atrybuty celu, takie jak czy SIMD
operacje są włączone lub nie. Domyślny zestaw atrybutów jest ustawiany przez bieżący
PROCESOR. Aby uzyskać listę dostępnych atrybutów, użyj: llvm-as < / dev / null | llc -marzec=xyz
-mattr=pomoc
PŁYWAJĄCE PUNKTY OPCJE
-wyłącz-nadmierną-precyzję-fp
Wyłącz optymalizacje, które mogą zwiększyć precyzję zmiennoprzecinkową.
-włącz-no-infs-fp-math
Włącz optymalizacje, które nie przyjmują wartości Inf.
-włącz-no-nans-fp-math
Włącz optymalizacje, które nie przyjmują wartości NAN.
-enable-unsafe-fp-matematyka
Rozwiązania lli aby umożliwić optymalizacje, które mogą zmniejszyć precyzję zmiennoprzecinkową.
-miękki pływak
Rozwiązania lli do generowania wywołań programowych bibliotek zmiennoprzecinkowych zamiast ich odpowiedników
instrukcje sprzętowe.
KOD GENERACJA OPCJE
-code-model=model
Wybierz model kodu spośród:
default: Docelowy domyślny model kodu
mały: Model małego kodu
jądro: model kodu jądra
średni: średni model kodu
duży: model z dużym kodem
-wyłącz-po-RA-scheduler
Wyłącz planowanie po alokacji rejestru.
-wyłącz-utrwalanie-rozlania
Wyłącz łączenie kodu wycieku w instrukcje.
-jit-włącz-eh
W kompilatorze just-in-time należy włączyć obsługę wyjątków.
-dołącz-interwały na żywo
Połącz kopie (domyślnie = prawda).
-nozero-inicjowane-w-bss
Nie umieszczaj symboli inicjowanych zerem w sekcji BSS.
-pre-RA-sched=program planujący
Dostępne harmonogramy instrukcji (przed alokacją rejestru):
=domyślnie: Najlepszy harmonogram dla celu
=none: Brak planowania: sekwencjonowanie wszerz
=simple: Proste planowanie dwuprzebiegowe: minimalizacja ścieżki krytycznej i maksymalizacja wykorzystania procesora
=simple-noitin: Proste planowanie dwuprzebiegowe: To samo co proste, z tą różnicą, że używa się ogólnego opóźnienia
=list-burr: Planowanie listy redukcji rejestrów od dołu do góry
=list-tdrr: Planowanie listy redukcji rejestrów z góry na dół
=list-td: Harmonogram listy z góry na dół -print-machineinstrs - Drukuje wygenerowany kod maszynowy
-regalloc=alokator
Zarejestruj alokator do użycia (domyślnie=linearscan)
=bigblock: Alokator rejestrów z dużym blokiem
=linearscan: alokator rejestru skanowania liniowego =local - lokalny alokator rejestrów
=simple: prosty alokator rejestrów
-model-relokacji=model
Wybierz model relokacji spośród:
=default: Docelowy domyślny model relokacji
=static: Kod nierelokowalny =pic - Kod w pełni relokowalny, niezależny od pozycji
=dynamic-no-pic: Odniesienia zewnętrzne, które można przenosić, kod, którego nie można przenieść
-rozlewacz
Rozlewacz do użycia (domyślnie=lokalny)
=prosty: prosty rozlewacz
=lokalny: lokalny rozlewacz
-x86-asm-syntax=składnia
Wybierz styl kodu, który ma być emitowany z backendu X86:
=att: Emituj montaż w stylu AT&T
=intel: Emituj zestaw w stylu Intela
EXIT STATUS
If lli nie załaduje programu, zakończy działanie z kodem wyjścia 1. W przeciwnym razie tak się stanie
zwrócić kod zakończenia programu, który wykonuje.
Użyj lli-3.8 online, korzystając z usług onworks.net