2012-02-23 3 views
0

В справочном руководстве doxygen для llvm вы можете создать экземпляр целевых данных из объекта модуля или механизма выполнения.Исходные данные цели

Как получить целевые данные для текущей/родной платформы?

ответ

0

Ну ... обычно информацию, которую нужно добавить в TargetData, можно извлечь из документа ABI платформы. Здесь указаны все натуральные размеры, выравнивания и т. Д. Иногда, если у вас есть компилятор для вашей платформы, вы можете попытаться сопоставить все записи с вашим компилятором.

Я верю, что в последнем случае можно написать несколько двоичных файлов, которые будут генерировать информацию TargetData для вас, но никто не сделал этого до iirc.

+0

Похоже, что вы описываете это решение для каждой платформы. Я хотел бы что-нибудь, что будет переноситься на любую платформу. Я заметил, что вызов конструктора TargetData с пустой строкой работает. Кто-нибудь может подтвердить, что это правильно? – srossross

+0

@sean, хотя пустой/no TargetData, безусловно, будет работать, он будет препятствовать многим важным оптимизации. Кроме того, для генерации двоичного кода TargetData должен быть непустым. Бэкэнд будет «исправлять» эту проблему для вас :) –

Смежные вопросы