@mugiseyebrows У тебя main обладает всеми признаками вызываемой функции, но вызвать её нельзя, потому что стек вызовов обнулится.
Предполагается, что уже реализованные кем-то оптимизации тебе нахаляву выкинут кучу ненужных конструкций, даже если ты их задашь изначально. Например, для if достаточно двух goto с метками (и даже одного, если отличающиеся операции обратимы без побочных эффектов).
@mugiseyebrows Нет, я хочу сказать, что непродуманная ручная кодогенерация приводит к таким вот вещам. Всерьёз предлагать реализовывать .bat-файлы в качестве целевой архитектуры для LLVM было бы странно.
Если main — обычная функция, то
set instr_i=0
надо из неё вынести. Если это особый случай, то нет смысла оформлять её goto в начале и в конце.Делай сразу на llvm, будут халявные оптимизации и никаких лишних goto.
@mugiseyebrows У тебя main обладает всеми признаками вызываемой функции, но вызвать её нельзя, потому что стек вызовов обнулится.
Предполагается, что уже реализованные кем-то оптимизации тебе нахаляву выкинут кучу ненужных конструкций, даже если ты их задашь изначально. Например, для if достаточно двух goto с метками (и даже одного, если отличающиеся операции обратимы без побочных эффектов).
@mugiseyebrows Нет, я хочу сказать, что непродуманная ручная кодогенерация приводит к таким вот вещам. Всерьёз предлагать реализовывать .bat-файлы в качестве целевой архитектуры для LLVM было бы странно.