Führen Sie den LLVM Custom Register Allocator als gemeinsam genutzte Out-of-Tree-Bibliothek ausC++

Programme in C++. Entwicklerforum
Guest
 Führen Sie den LLVM Custom Register Allocator als gemeinsam genutzte Out-of-Tree-Bibliothek aus

Post by Guest »

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

Code: Select all

...

RegisterRegAlloc MinimalRegAllocator ("minimal", "Minimal Register Allocator", [] () -> FunctionPass * {
return new RAMinimal ();
});

Ich habe dies erfolgreich mit diesem Makefile kompiliert

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
Es wird versucht, diesen Registerzuordner mit LLC auszuführen wie folgt:

Code: Select all

llc -load libRegAlloc.dylib -regalloc minimal test/Foo.c
gibt den folgenden Fehler aus:

Code: Select all

llc: for the --regalloc option: Cannot find option named 'minimal'!
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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post