Как мне сказать 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 дословно вставить инструкции в функцию, или как я уверен, что инструкции вставляются без каких-либо изменений?
Если возможно, пожалуйста, дайте ссылку на документацию, так как детали важны для приложения под рукой.