To jest polecenie lli-3.6, 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 przy użyciu kompilatora just-in-time, jeśli jest on dostępny dla bieżącego
architektury lub tłumacza. lli pobiera wszystkie te same opcje generatora kodu, co
llc|llc, ale są skuteczne tylko wtedy, gdy lli używa kompilatora just-in-time.
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
-fałszywy-argv0=plik wykonywalny
Zastąp argument[0] wartość przekazywana do wykonującego programu.
-tłumacz siły={fałsz PRAWDA}
Jeśli ustawione na true, użyj interpretera, nawet jeśli dostępny jest kompilator just-in-time
tę architekturę. Domyślnie jest to fałsz.
-Pomoc
Wydrukuj podsumowanie opcji wiersza poleceń.
-obciążenie=nazwapliku 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 w standardzie
Błąd.
-wersja
Wydrukuj wersję lli i wyjdź, nie robiąc nic więcej.
TARGET OPCJE
-mpotrójny=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 kompatybilna
z obecnym systemem.
-Marsz=łuk
Określ architekturę, dla której ma zostać wygenerowany zestaw, zastępując kodowanie docelowe
w pliku bitcode. Zobacz wyjście llc -Pomoc aby uzyskać listę prawidłowych architektur.
Domyślnie jest to wywnioskowane z potrójnej wartości docelowej lub automatycznie wykryte na podstawie prądu
architektura.
-mcpu=nazwa procesora
Określ konkretny układ w bieżącej architekturze, dla którego chcesz wygenerować kod. Domyślnie
jest to wywnioskowane z docelowej trójki i automatycznie wykryte na podstawie bieżącej architektury.
Aby uzyskać listę dostępnych procesorów, użyj: llvm-as < / dev / null | llc -marzec=xyz -mcpu=pomoc
-matr=a1,+a2,-a3,...
Zastąp lub kontroluj określone atrybuty celu, takie jak operacje SIMD
są włączone, czy nie. Domyślny zestaw atrybutów jest ustawiany przez bieżący procesor. Dla
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
-model-kodu=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.
-przed-RA-sched=planista
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
-regallok=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-składnia=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.6 online, korzystając z usług onworks.net