делаю это вот так
Оно не работает, внутри функции main только ret void
Но если меняю 46 строчку на
llvm::BinaryOperator::Create(llvm::Instruction::Add ,x, y, "add", basicBlock);
То инструкция сложения добавляется в main. В чем может быть проблема?
А я вот и не знаю =( Такое может быть, как точно узнать? Это происходит внутри llvm::IRBuilder? Если нет, точему тогда во втором случае не оптимизируется?
Чтобы узнать наверняка, можно генерировать код который использует результат сложения. Если при генерации такого кода первый способ (CreateAdd) всё-таки добавит add инструкцию, значит дело в оптимизации
Обсуждают сегодня