Führen Sie den LLVM Custom Register Allocator als gemeinsam genutzte Out-of-Tree-Bibliothek aus
Posted: 15 Jan 2025, 15:11
Wie führe ich einen benutzerdefinierten Registerzuordner in LLVM mit dem llc-Compiler aus dem Baum aus?
Ich habe einen benutzerdefinierten Registerzuordner geschrieben, der aufruft
Ich habe dies erfolgreich mit diesem Makefile kompiliert
Es wird versucht, diesen Registerzuordner mit LLC auszuführen wie folgt:
gibt den folgenden Fehler aus:
Viele Online-Beispiele scheinen nur zu zeigen, wie man es innerhalb des llvm-Quellbaums macht, ich möchte jedoch nicht, dass die gesamte Codebasis meinen Editor überfüllt, nur um einen Registerzuordner zu schreiben.
Ich habe einen benutzerdefinierten Registerzuordner geschrieben, der aufruft
Code: Select all
...
RegisterRegAlloc MinimalRegAllocator ("minimal", "Minimal Register Allocator", [] () -> FunctionPass * {
return new RAMinimal ();
});
Code: Select all
LLVM_FLAGS := $(shell llvm-config --cxxflags --ldflags --libs --system-libs)
ZSTD_FLAGS := -I/opt/homebrew/Cellar/zstd/1.5.6/include -L/opt/homebrew/Cellar/zstd/1.5.6/lib
all:
g++ -g -dynamiclib $(ZSTD_FLAGS) $(LLVM_FLAGS) RegAllocMinimal.cpp -o libRegAlloc.dylib
Code: Select all
llc -load libRegAlloc.dylib -regalloc minimal test/Foo.c
Code: Select all
llc: for the --regalloc option: Cannot find option named 'minimal'!