Я пытаюсь вставить вызов функции в основную функцию, поэтому, когда я запускаю сгенерированный двоичный файл, функция будет выполняться автоматически.Так как язык, который я пытаюсь «скомпилировать», выглядит как «скриптовый» язык:
function foo () begin 3 end;
function boo () begin 4 end;
writeln (foo()+boo()) ;
writeln (8) ;
writeln (9) ;
, где writeln - функция, доступная по умолчанию, и после выполнения бинарного файла я ожидаю увидеть 7 8 9. Есть лиспособ вставить последний вызов функции прямо перед оператором возврата основной функции?Прямо сейчас у меня есть
define i32 @main() {
entry:
ret i32 0
}
, и я хочу иметь что-то вроде
define i32 @main() {
entry:
%calltmp = call double @writeln(double 7.000000e+00)
%calltmp = call double @writeln(double 8.000000e+00)
%calltmp = call double @writeln(double 9.000000e+00)
ret i32 0
}
, редактирующее IR-файл вручную и скомпилирующее его впоследствии, но я хочу сделать это в части кода моегокод.
edit
, что я генерирую прямо сейчас, это
define double @__anon_expr() {
entry:
%main = call double @writeln(double 3.000000e+00)
ret double %main
}
define i32 @main() {
entry:
ret i32 0
}
, поэтому, когда я выполняю двоичный файл - ничего не происходит