2016-09-14 4 views
4

Я создаю передний конец (игрушечный язык сейчас и, возможно, навсегда), который испускает LLVM IR напрямую (не через библиотеку C++).Любой практический пример использования возможностей LLVM Alias ​​и IFunc?

Я искал, но не смог найти реальные и практические примеры объявления и использования любой из возможностей субъекта. Лучшее, что я должен сделать, это Language Reference.

Вопрос такой же, как указано в названии.

ответ

1

Я не мог найти много от LLVM, но я нашел более подробное объяснение от GCC docs.

Псевдонимы, особенно слабые псевдонимы, могут использоваться для определения реализаций по умолчанию определенных функций, когда заголовки системы не определяют его. This вопрос показывает пример его использования в источнике Linux glibc.

Судя по примеру this, ifunc может быть полезен, если вы хотите выбрать другую версию некоторой функции, оптимизированной для определенных процессоров. Функция распознавателя, которую вы пишете, может использовать некоторый код, специфичный для ОС, для определения определенных характеристик системы (типа процессора) и возврата указателя на правильную функцию.

Большая часть этого материала действительно низкого уровня, поэтому я на 99% уверен, что вам не нужно использовать их в интерфейсе на языке.

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