We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
P.288のアセンブリ命令の変換の際に32ビット版では、P288のようなエラーになりますが、64ビット版ではエラーにならずアセンブラに変換されてしまいます。
ISEL: Starting pattern match Initial Opcode index to 0 Match failed at index 0 LLVM ERROR: Cannot select: t19: i32 = rotl t7, Constant:i32<30> t7: i32,ch = load<(dereferenceable load 4 from %ir.a.addr)> t6, FrameIndex:i32<0>, undef:i32 t3: i32 = FrameIndex<0> t5: i32 = undef t8: i32 = Constant<30> In function: rotate_left PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace. Stack dump: 0. Program arguments: /home/akiyoshi/llvm-myriscvx120/build/bin/llc -debug -march=myriscvx32 -filetype=asm rotate_test.rv32.bc -o -
Running pass 'Function Pass Manager' on module 'rotate_test.rv32.bc'.
Running pass 'MYRISCVX DAG->DAG Pattern Instruction Selection' on function '@rotate_left'
#0 0x0000555bb861bfb6 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/Unix/Signals.inc:565:22 #1 0x0000555bb861c071 PrintStackTraceSignalHandler(void*) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/Unix/Signals.inc:632:1 #2 0x0000555bb8619ce7 llvm::sys::RunSignalHandlers() /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/Signals.cpp:71:20 #3 0x0000555bb861b902 SignalHandler(int) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/Unix/Signals.inc:407:1 #4 0x00007f0854fe9420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420) #5 0x00007f0854a8600b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b) #6 0x00007f0854a65859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859) #7 0x0000555bb855bc89 llvm::install_bad_alloc_error_handler(void ()(void, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool), void*) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/ErrorHandling.cpp:130:61 #8 0x0000555bb855ba82 llvm::report_fatal_error(llvm::StringRef, bool) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/ErrorHandling.cpp:90:68 #9 0x0000555bb8418527 /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3763:21 #10 0x0000555bb8417c4f llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3666:9 #11 0x0000555bb6e24098 llvm::MYRISCVXDAGToDAGISel::SelectCode(llvm::SDNode*) /home/akiyoshi/llvm-myriscvx120/build/lib/Target/MYRISCVX/MYRISCVXGenDAGISel.inc:3962:1 #12 0x0000555bb6e23eea llvm::MYRISCVXDAGToDAGISel::Select(llvm::SDNode*) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Target/MYRISCVX/MYRISCVXISelDAGToDAG.cpp:141:13 #13 0x0000555bb840a1cf llvm::SelectionDAGISel::DoInstructionSelection() /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1118:32 #14 0x0000555bb84094a8 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:957:61 #15 0x0000555bb8407b7f llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:711:1 #16 0x0000555bb840c885 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1611:33 #17 0x0000555bb8406789 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:506:7 #18 0x0000555bb6e23792 llvm::MYRISCVXDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Target/MYRISCVX/MYRISCVXISelDAGToDAG.cpp:52:52 #19 0x0000555bb75c4741 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/MachineFunctionPass.cpp:72:33 #20 0x0000555bb7c2be9a llvm::FPPassManager::runOnFunction(llvm::Function&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:1435:20 #21 0x0000555bb7c2c163 llvm::FPPassManager::runOnModule(llvm::Module&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:1481:13 #22 0x0000555bb7c2c5d5 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:1550:20 #23 0x0000555bb7c276d0 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:541:13 #24 0x0000555bb7c2ceab llvm::legacy::PassManager::run(llvm::Module&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:1678:1 #25 0x0000555bb69619f0 compileModule(char**, llvm::LLVMContext&) /home/akiyoshi/llvm-myriscvx120/llvm/tools/llc/llc.cpp:687:66 #26 0x0000555bb695f6cc main /home/akiyoshi/llvm-myriscvx120/llvm/tools/llc/llc.cpp:385:35 #27 0x00007f0854a67083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083) #28 0x0000555bb695e6be _start (/home/akiyoshi/llvm-myriscvx120/build/bin/llc+0x13256be) Aborted
********** COMPUTING STACKMAP LIVENESS: rotate_left **********
Debug Range Extension .globl rotate_left # -- Begin function rotate_left .p2align 2 .type rotate_left,@function rotate_left: # @rotate_left
addi x2, x2, -8 sw x10, 4(x2) lwu x10, 4(x2) slli x11, x10, 30 srli x10, x10, 2 or x10, x11, x10 sw x10, 0(x2) lw x10, 0(x2) addi x2, x2, 8 ret
$func_end0: .size rotate_left, ($func_end0)-rotate_left # -- End function .ident "clang version 12.0.1 (https://github.com/llvm/llvm-project.git 05251477a312cbf758cdc06e9d8751dff0f842e0)" .section ".note.GNU-stack","",@progbits
本では、32ビット版、64ビット版ともにP.288のようなエラーとなるはずですが、本のように64ビット版でエラーを確認するのにはどうしたらよいでしょうか?教えていただけるとありがたいです。よろしくお願いします。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
P.288のアセンブリ命令の変換の際に32ビット版では、P288のようなエラーになりますが、64ビット版ではエラーにならずアセンブラに変換されてしまいます。
ISEL: Starting pattern match
Initial Opcode index to 0
Match failed at index 0
LLVM ERROR: Cannot select: t19: i32 = rotl t7, Constant:i32<30>
t7: i32,ch = load<(dereferenceable load 4 from %ir.a.addr)> t6, FrameIndex:i32<0>, undef:i32
t3: i32 = FrameIndex<0>
t5: i32 = undef
t8: i32 = Constant<30>
In function: rotate_left
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/akiyoshi/llvm-myriscvx120/build/bin/llc -debug -march=myriscvx32 -filetype=asm rotate_test.rv32.bc -o -
#0 0x0000555bb861bfb6 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/Unix/Signals.inc:565:22
#1 0x0000555bb861c071 PrintStackTraceSignalHandler(void*) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/Unix/Signals.inc:632:1
#2 0x0000555bb8619ce7 llvm::sys::RunSignalHandlers() /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/Signals.cpp:71:20
#3 0x0000555bb861b902 SignalHandler(int) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/Unix/Signals.inc:407:1
#4 0x00007f0854fe9420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#5 0x00007f0854a8600b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#6 0x00007f0854a65859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#7 0x0000555bb855bc89 llvm::install_bad_alloc_error_handler(void ()(void, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool), void*) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/ErrorHandling.cpp:130:61
#8 0x0000555bb855ba82 llvm::report_fatal_error(llvm::StringRef, bool) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Support/ErrorHandling.cpp:90:68
#9 0x0000555bb8418527 /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3763:21
#10 0x0000555bb8417c4f llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3666:9
#11 0x0000555bb6e24098 llvm::MYRISCVXDAGToDAGISel::SelectCode(llvm::SDNode*) /home/akiyoshi/llvm-myriscvx120/build/lib/Target/MYRISCVX/MYRISCVXGenDAGISel.inc:3962:1
#12 0x0000555bb6e23eea llvm::MYRISCVXDAGToDAGISel::Select(llvm::SDNode*) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Target/MYRISCVX/MYRISCVXISelDAGToDAG.cpp:141:13
#13 0x0000555bb840a1cf llvm::SelectionDAGISel::DoInstructionSelection() /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1118:32
#14 0x0000555bb84094a8 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:957:61
#15 0x0000555bb8407b7f llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:711:1
#16 0x0000555bb840c885 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1611:33
#17 0x0000555bb8406789 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:506:7
#18 0x0000555bb6e23792 llvm::MYRISCVXDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/Target/MYRISCVX/MYRISCVXISelDAGToDAG.cpp:52:52
#19 0x0000555bb75c4741 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/CodeGen/MachineFunctionPass.cpp:72:33
#20 0x0000555bb7c2be9a llvm::FPPassManager::runOnFunction(llvm::Function&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:1435:20
#21 0x0000555bb7c2c163 llvm::FPPassManager::runOnModule(llvm::Module&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:1481:13
#22 0x0000555bb7c2c5d5 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:1550:20
#23 0x0000555bb7c276d0 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:541:13
#24 0x0000555bb7c2ceab llvm::legacy::PassManager::run(llvm::Module&) /home/akiyoshi/llvm-myriscvx120/llvm/lib/IR/LegacyPassManager.cpp:1678:1
#25 0x0000555bb69619f0 compileModule(char**, llvm::LLVMContext&) /home/akiyoshi/llvm-myriscvx120/llvm/tools/llc/llc.cpp:687:66
#26 0x0000555bb695f6cc main /home/akiyoshi/llvm-myriscvx120/llvm/tools/llc/llc.cpp:385:35
#27 0x00007f0854a67083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#28 0x0000555bb695e6be _start (/home/akiyoshi/llvm-myriscvx120/build/bin/llc+0x13256be)
Aborted
********** COMPUTING STACKMAP LIVENESS: rotate_left **********
Debug Range Extension
.globl rotate_left # -- Begin function rotate_left
.p2align 2
.type rotate_left,@function
rotate_left: # @rotate_left
%bb.0: # %entry
$func_end0:
.size rotate_left, ($func_end0)-rotate_left
# -- End function
.ident "clang version 12.0.1 (https://github.com/llvm/llvm-project.git 05251477a312cbf758cdc06e9d8751dff0f842e0)"
.section ".note.GNU-stack","",@progbits
本では、32ビット版、64ビット版ともにP.288のようなエラーとなるはずですが、本のように64ビット版でエラーを確認するのにはどうしたらよいでしょうか?教えていただけるとありがたいです。よろしくお願いします。
The text was updated successfully, but these errors were encountered: