Запустите распределитель пользовательского регистра LLVM как общую библиотеку вне дерева.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Запустите распределитель пользовательского регистра LLVM как общую библиотеку вне дерева.

Сообщение Anonymous »

Как запустить собственный распределитель регистров в LLVM с помощью компилятора llc из дерева?
Я написал собственный распределитель регистров, который вызывает

Код: Выделить всё

...

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

Я успешно скомпилировал это с помощью этого Makefile

Код: Выделить всё

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
Попытка запустить этот распределитель регистров с помощью llc следующим образом:

Код: Выделить всё

llc -load libRegAlloc.dylib -regalloc minimal test/Foo.c
выдает следующую ошибку:

Код: Выделить всё

llc: for the --regalloc option: Cannot find option named 'minimal'!
Многие примеры в Интернете, кажется, показывают только, как это сделать в дереве исходного кода llvm, однако я не хочу, чтобы вся кодовая база переполняла мой редактор только для того, чтобы написать распределитель регистров.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ed-library
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»