Я пытаюсь загрузить большой массив в коде LLVM IR.Это мой код LLVM IR (хранится в p.ll):
; ModuleID = 'my_module'
source_filename = "my_module"
@arr = internal global [300 x [300 x i1]] zeroinitializer
define i32 @main() {
entry:
%arr = load [300 x [300 x i1]], [300 x [300 x i1]]* @arr
ret i32 0
}
Когда я пытаюсь скомпилировать его с llc p.ll
, выдается следующее сообщение об ошибке:
LLVMSymbolizer: error reading file: No such file or directory
#0 0x00007f7bfe16c9cb llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/usr/bin/../lib/libLLVM-6.0.so+0x8759cb)
#1 0x00007f7bfe16a886 llvm::sys::RunSignalHandlers() (/usr/bin/../lib/libLLVM-6.0.so+0x873886)
#2 0x00007f7bfe16a9d3 (/usr/bin/../lib/libLLVM-6.0.so+0x8739d3)
#3 0x00007f7bfd1e88f0 __restore_rt (/usr/bin/../lib/libc.so.6+0x368f0)
#4 0x00007f7bfe7ca360 llvm::SelectionDAG::DeallocateNode(llvm::SDNode*) (/usr/bin/../lib/libLLVM-6.0.so+0xed3360)
#5 0x00007f7bfe689c67 (/usr/bin/../lib/libLLVM-6.0.so+0xd92c67)
#6 0x00007f7bfe6933b7 llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOpt::Level) (/usr/bin/../lib/libLLVM-6.0.so+0xd9c3b7)
#7 0x00007f7bfe7dec11 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/usr/bin/../lib/libLLVM-6.0.so+0xee7c11)
#8 0x00007f7bfe7e946e llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/usr/bin/../lib/libLLVM-6.0.so+0xef246e)
#9 0x00007f7bfe7eba67 (/usr/bin/../lib/libLLVM-6.0.so+0xef4a67)
#10 0x00007f7bffef02c5 (/usr/bin/../lib/libLLVM-6.0.so+0x25f92c5)
#11 0x00007f7bfe452172 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/bin/../lib/libLLVM-6.0.so+0xb5b172)
#12 0x00007f7bfe254dc1 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/bin/../lib/libLLVM-6.0.so+0x95ddc1)
#13 0x00007f7bfe254e02 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/bin/../lib/libLLVM-6.0.so+0x95de02)
#14 0x00007f7bfe254592 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/bin/../lib/libLLVM-6.0.so+0x95d592)
#15 0x0000557aa4dbb3f9 (llc+0x223f9)
#16 0x0000557aa4daefd5 (llc+0x15fd5)
#17 0x00007f7bfd1d506b __libc_start_main (/usr/bin/../lib/libc.so.6+0x2306b)
#18 0x0000557aa4daf16a (llc+0x1616a)
Stack dump:
0. Program arguments: llc p.ll
1. Running pass 'Function Pass Manager' on module 'p.ll'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@main'
Segmentation fault (core dumped)
Но когда я уменьшу массив, например [30 x [30 x i1]]
, ошибка не появится.
Я не могу прочитать из сообщения об ошибке, какой файл мне не хватает.Почему это происходит с большим массивом?Какой файл мне не хватает?