Как мне сказать LLVM вставить мой InlineAsm в исполняемый файл без каких-либо изменений?

Как мне сказать LLVM ввести InlineAsm в исполняемый файл без каких-либо изменений?

У меня есть последовательность InlineAsmвнутри моего LLVM ModulePass, что я хочу быть уверен, будет вставлен в конкретную функцию без каких-либо изменений, таких как оптимизация, переупорядочение и т. д.

InlineAsmвыглядит так:

Builder.CreateCall(InlineAsm::get(VoidFunTy, std::string(".cstart_") + Id + std::string(":"), "", true));

В основном, llc Компилятор отвечает за определение влияния этих InlineAsmи обычно он просто переводит их в синтаксис ассемблера в .s выходной файл.

Ли hasSideEffets Аргумент указывает LLVM дословно вставить инструкции в функцию, или как я уверен, что инструкции вставляются без каких-либо изменений?

Если возможно, пожалуйста, дайте ссылку на документацию, так как детали важны для приложения под рукой.

0 ответов

Другие вопросы по тегам