You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
But the same program using f64 instead of i32 gives the error: LCompilersException: Module 'lfortran_intrinsic_optimization' not declared in the current source and the modfile was not found:
deftest_i64() ->f64:
a : f64=5.00a=a+a*10.00returna# Note: It works if we do# b : f64 = a * 10.00 # a = a + b print(test_i64())
Full Error
(base) sarthak@pop-os:~/lpython/examples$ lpython --fast add.py
Internal Compiler Error: Unhandled exception
Traceback (most recent call last):
Binary file "/home/sarthak/lpython/src/bin/lpython", in _start()
File "./csu/../csu/libc-start.c", line 392, in __libc_start_main_impl()
File "./csu/../sysdeps/nptl/libc_start_call_main.h", line 58, in __libc_start_call_main()
File "/home/sarthak/lpython/src/bin/lpython.cpp", line 1750, in ??
err = compile_python_to_object_file(arg_file, tmp_o, runtime_library_dir,
File "/home/sarthak/lpython/src/bin/lpython.cpp", line 750, in ??
res = fe.get_llvm3(*asr, pass_manager, diagnostics, infile);
File "/home/sarthak/lpython/src/lpython/python_evaluator.cpp", line 58, in LCompilers::PythonCompiler::get_llvm3(LCompilers::ASR::TranslationUnit_t&, LCompilers::PassManager&, LCompilers::diag::Diagnostics&, std::__cxx11::basic_string, std::allocator > const&)
run_fn, infile);
File "/home/sarthak/lpython/src/libasr/codegen/asr_to_llvm.cpp", line 7027, in LCompilers::asr_to_llvm(LCompilers::ASR::TranslationUnit_t&, LCompilers::diag::Diagnostics&, llvm::LLVMContext&, Allocator&, LCompilers::PassManager&, LCompilers::CompilerOptions&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&)
pass_manager.apply_passes(al, &asr, pass_options, diagnostics);
File "/home/sarthak/lpython/src/libasr/pass/pass_manager.h", line 214, in LCompilers::PassManager::apply_passes(Allocator&, LCompilers::ASR::TranslationUnit_t*, LCompilers::PassOptions&, LCompilers::diag::Diagnostics&)
_apply_passes(al, asr, _with_optimization_passes, pass_options,
File "/home/sarthak/lpython/src/libasr/pass/pass_manager.h", line 106, in LCompilers::PassManager::_apply_passes(Allocator&, LCompilers::ASR::TranslationUnit_t*, std::vector, std::allocator >, std::allocator, std::allocator > > >&, LCompilers::PassOptions&, LCompilers::diag::Diagnostics&)
_passes_db[passes[i]](al, *asr, pass_options);
File "/home/sarthak/lpython/src/libasr/pass/fma.cpp", line 172, in LCompilers::pass_replace_fma(Allocator&, LCompilers::ASR::TranslationUnit_t&, LCompilers::PassOptions const&)
v.visit_TranslationUnit(unit);
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4673, in LCompilers::ASR::BaseWalkVisitor::visit_TranslationUnit(LCompilers::ASR::TranslationUnit_t const&)
this->visit_symbol(*a.second);
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4480, in LCompilers::ASR::BaseVisitor::visit_symbol(LCompilers::ASR::symbol_t const&)
void visit_symbol(const symbol_t &b) { visit_symbol_t(b, self()); }
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4220, in ??
case symbolType::Module: { v.visit_Module((const Module_t &)x); return; }
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4686, in LCompilers::ASR::BaseWalkVisitor::visit_Module(LCompilers::ASR::Module_t const&)
this->visit_symbol(*a.second);
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4480, in LCompilers::ASR::BaseVisitor::visit_symbol(LCompilers::ASR::symbol_t const&)
void visit_symbol(const symbol_t &b) { visit_symbol_t(b, self()); }
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4221, in ??
case symbolType::Function: { v.visit_Function((const Function_t &)x); return; }
File "/home/sarthak/lpython/src/libasr/../libasr/pass/pass_utils.h", line 281, in LCompilers::PassUtils::SkipOptimizationFunctionVisitor::visit_Function(LCompilers::ASR::Function_t const&)
PassUtils::PassVisitor::visit_Function(x);
File "/home/sarthak/lpython/src/libasr/../libasr/pass/pass_utils.h", line 192, in LCompilers::PassUtils::PassVisitor::visit_Function(LCompilers::ASR::Function_t const&)
transform_stmts(xx.m_body, xx.n_body);
File "/home/sarthak/lpython/src/libasr/../libasr/pass/pass_utils.h", line 144, in LCompilers::PassUtils::PassVisitor::transform_stmts(LCompilers::ASR::stmt_t**&, unsigned long&)
self().visit_stmt(*m_body[i]);
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4495, in LCompilers::ASR::BaseVisitor::visit_stmt(LCompilers::ASR::stmt_t const&)
void visit_stmt(const stmt_t &b) { visit_stmt_t(b, self()); }
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4242, in ??
case stmtType::Assignment: { v.visit_Assignment((const Assignment_t &)x); return; }
File "/home/sarthak/lpython/src/libasr/pass/fma.cpp", line 130, in LCompilers::FMAVisitor::visit_Assignment(LCompilers::ASR::Assignment_t const&)
visit_expr(*x.m_value);
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4540, in LCompilers::ASR::BaseVisitor::visit_expr(LCompilers::ASR::expr_t const&)
void visit_expr(const expr_t &b) { visit_expr_t(b, self()); }
File "/home/sarthak/lpython/src/libasr/../libasr/asr.h", line 4308, in ??
case exprType::RealBinOp: { v.visit_RealBinOp((const RealBinOp_t &)x); return; }
File "/home/sarthak/lpython/src/libasr/pass/fma.cpp", line 120, in LCompilers::FMAVisitor::visit_RealBinOp(LCompilers::ASR::RealBinOp_t const&)
fma_var = PassUtils::get_fma(other_expr, first_arg, second_arg,
File "/home/sarthak/lpython/src/libasr/pass/pass_utils.cpp", line 632, in LCompilers::PassUtils::get_fma(LCompilers::ASR::expr_t*, LCompilers::ASR::expr_t*, LCompilers::ASR::expr_t*, Allocator&, LCompilers::ASR::TranslationUnit_t&, LCompilers::PassOptions&, LCompilers::SymbolTable*&, LCompilers::Location&, std::function, std::allocator > const&, LCompilers::Location const&)>)
ASR::symbol_t *v = import_generic_procedure("fma", "lfortran_intrinsic_optimization",
File "/home/sarthak/lpython/src/libasr/pass/pass_utils.cpp", line 405, in LCompilers::PassUtils::import_generic_procedure(std::__cxx11::basic_string, std::allocator >, std::__cxx11::basic_string, std::allocator >, Allocator&, LCompilers::ASR::TranslationUnit_t&, LCompilers::PassOptions&, LCompilers::SymbolTable*&, LCompilers::Location&)
ASR::Module_t *m = ASRUtils::load_module(al, current_scope,
File "/home/sarthak/lpython/src/libasr/asr_utils.cpp", line 172, in LCompilers::ASRUtils::load_module(Allocator&, LCompilers::SymbolTable*, std::__cxx11::basic_string, std::allocator > const&, LCompilers::Location const&, bool, LCompilers::PassOptions&, bool, std::function, std::allocator > const&, LCompilers::Location const&)>)
err("Module '" + module_name + "' not declared in the current source and the modfile was not found",
File "/usr/include/c++/11/bits/std_function.h", line 590, in std::function, std::allocator > const&, LCompilers::Location const&)>::operator()(std::__cxx11::basic_string, std::allocator > const&, LCompilers::Location const&) const
return _M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...);
File "/usr/include/c++/11/bits/std_function.h", line 290, in ??
return std::__invoke_r<_Res>(*_Base::_M_get_pointer(__functor),
File "/usr/include/c++/11/bits/invoke.h", line 111, in ??
std::__invoke_impl<__type>(__tag{}, std::forward<_Callable>(__fn),
File "/usr/include/c++/11/bits/invoke.h", line 61, in ??
{ return std::forward<_Fn>(__f)(std::forward<_Args>(__args)...); }
LCompilersException: Module 'lfortran_intrinsic_optimization' not declared in the current source and the modfile was not found
To fix this, let's rewrite the module lfortran_intrinsic_optimization in ASR itself to generate functions(during pass) based on the requirement and not just constrained to one such Frontend language. We could then reuse the same in both LPython and LFortran.
The following compiles successfully:
But the same program using
f64
instead ofi32
gives the error:LCompilersException: Module 'lfortran_intrinsic_optimization' not declared in the current source and the modfile was not found
:Full Error
Note: This seems to be related to #723 (comment)
The text was updated successfully, but these errors were encountered: