llvm- все статьи тега


"- Мы все" уступаем " сравнивая плавающую точку с == или!= небезопасно"

У меня есть строка, которую я преобразую в двойник следующим образом: double d = [string doubleValue]; Документация для doubleValue говорит нам, что при переполнении этот метод возвращает либо HUGE_VAL, либо -HUGE_VAL. Вот как я проверял это ранее: if (d == HUGE_VAL || d == -HUGE_VAL) //overflow Теперь, после добавления нового предупреждающего флага "-Weverything", компилятор жалуется, что Comparing floating point with == or != is unsafe Как я могу решить эту проблему? Как я должен ...

Как разрешить нынешний процесс символы в MCJIT кода LLVM JIT-компилятором на основе?

Я создаю простой MCJIT на основе JIT (реализация калейдоскоп учебник в Rust , чтобы быть более точным). Я использую SectionMemoryManager:: getSymbolAddress для разрешения символов. Он видит символы из библиотек (например, функцию sin), но не может разрешить функции из моей программы (глобальные, видимые с nm, отмеченные там T). Является ли это ожидаемым поведением? Или это какая-то ошибка в моем коде? Если это ожидаемое поведение, как я должен правильно разрешать символы из текущий процесс? Теп ...

Что такое LLVM?

Я все время слышу о LLVM. Это в Perl, затем в Haskell, а затем кто-то использует его на каком-то другом языке? Что это? ...

Как сделать лязгом компиляции в промежуточный код LLVM ИК

Я хочу, чтобы clang скомпилировал мой C/C++ код LLVM байт-код, а не двоичный исполняемый файл. Как я могу этого достичь? И если я получу LLVM байт-код, как я могу взять его для дальнейшей компиляции в двоичный исполняемый файл. в основном я хочу добавить свой собственный код в LLVM байт-код перед компиляцией в двоичный исполняемый файл. ...

Что может сделать c++ RTTI нежелательным для использования?

глядя на документацию LLVM, они упоминают, что они используют "пользовательскую форму RTTI", и это причина, по которой они имеют isa<>,cast<> и dyn_cast<> шаблонных функций. обычно, читая, что библиотека переопределяет некоторые основные функции языка, это ужасный запах кода и просто приглашает к запуску. Однако это LLVM, о котором мы говорим: ребята работают над компилятором C++и библиотеки C++. Если они не знают, что они делают, я в значительной степени облажался, потому что ...

Как определить LLVM и его версию с помощью директив #define?

вопрос вполне понятен, я думаю. Я пытаюсь написать заголовок обнаружения компилятора, чтобы иметь возможность включать в приложение информацию о том, какой компилятор был использован и какая версия. это часть кода, который я использую: /* GNU C Compiler Detection */ #elif defined __GNUC__ #ifdef __MINGW32__ #define COMPILER "MinGW GCC %d.%d.%d" #else #define COMPILER "GCC %d.%d.%d" #endif #define COMP_VERSION __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ #endif ...