Вопросы с тегом «llvm»

Проект LLVM - это набор модульных и многократно используемых технологий компиляторов и инструментальных цепочек. Тег llvm в основном предназначен для написания кода C ++ (или другого языка через привязки C) для взаимодействия с библиотекой LLVM, а не для каких-либо (из растущего количества) инструментов, которые имеют LLVM под капотом. Смотрите в теге `llvm-codegen` вопрос о машинном коде, сгенерированном LLVM.

500
Допускает ли стандарт C ++ неинициализированный bool для сбоя программы?

Я знаю, что «неопределенное поведение» в C ++ может позволить компилятору делать все, что он захочет. Однако у меня произошел сбой, который удивил меня, так как я предположил, что код достаточно безопасен. В этом случае настоящая проблема возникла только на конкретной платформе, использующей...

464
Что именно LLVM?

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

269
Переключение между GCC и Clang / LLVM с использованием CMake

У меня есть несколько проектов, созданных с использованием CMake, и я хотел бы иметь возможность легко переключаться между использованием GCC или Clang / LLVM для их компиляции. Я считаю (пожалуйста, поправьте меня, если я ошибаюсь!), Что для использования Clang мне нужно установить следующее: SET...

266
Как повлиять на генерацию кода Delphi XEx для целей Android / ARM?

Обновление 2017-05-17. Я больше не работаю в компании, где возник этот вопрос, и не имею доступа к Delphi XEx. Пока я был там, проблема была решена путем перехода на смешанный FPC + GCC (Pascal + C) с встроенными NEON для некоторых подпрограмм, где это имело значение. (FPC + GCC настоятельно...

150
Как заставить clang компилироваться в llvm IR

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

133
LLVM против clang в OS X

У меня вопрос относительно llvm, clang и gcc на OS X. В чем разница между llvm-gcc 4.2, llvm 2.0 и clang? Я знаю, что все они построены на llvm, но чем они отличаются? Помимо более быстрой компиляции, в чем преимущество llvm перед...

116
На каких языках можно скомпилировать WebAssembly (Wasm)?

На каких языках можно скомпилировать WebAssembly (Wasm)? Я считаю, что прямо сейчас C, C ++ и Rust (экспериментальные) могут быть скомпилированы в WebAssembly с бэкэндом компилятора llvm, с такими языками, как Java, Swift и C #, которые в настоящее время не поддерживаются, но являются возможными...

108
Более быстрое завершение кода с помощью clang

Я исследую потенциальное ускорение завершения кода при использовании механизма завершения кода clang. Описанный ниже поток - это то, что я нашел в rtags Андерса Баккена. Единицы перевода анализируются демоном, отслеживающим файлы на предмет изменений. Это делается с помощью вызываемых...

98
clang: как перечислить поддерживаемые целевые архитектуры?

В настоящее время меня интересует ARM в целом и, в частности, цели для iphone / android. Но я просто хочу узнать больше о кланге, так как он будет играть важную роль в ближайшие годы. Я старался clang -cc1 --help|grep -i list clang -cc1 --help|grep arch|grep -v search clang -cc1 --help|grep target...

92
LLVM C ++ IDE для Windows

Есть ли какая-нибудь C / C ++ IDE для Windows, которая интегрирована с компилятором LLVM (и анализатором Clang C / C ++), как это делает современный Xcode. У меня есть Dev-Cpp (он использует устаревший GCC) и Code :: Blocks (с некоторым GCC). Но GCC дает мне очень загадочные сообщения об ошибках....

87
Что именно делает инструкция PHI и как ее использовать в LLVM

В LLVM есть инструкция phi с довольно странным объяснением: Команда phi используется для реализации узла φ в графе SSA, представляющем функцию. Обычно он используется для реализации ветвления. Если я правильно понял, это необходимо для того, чтобы сделать возможным анализ зависимостей, а в...

9
Почему LLVM выделяет избыточную переменную?

Вот простой C-файл с определением перечисления и mainфункцией: enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } Он переносится в следующий LLVM IR: define dso_local i32 @main() #0 { %1 = alloca i32, align 4 %2 = alloca i32, align 4 store i32 0, i32* %1, align 4 store...