Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

アセンブリファイル生成でエラー #40

Closed
pekujapan opened this issue Jul 27, 2024 · 2 comments
Closed

アセンブリファイル生成でエラー #40

pekujapan opened this issue Jul 27, 2024 · 2 comments

Comments

@pekujapan
Copy link

#39投稿者です

テキストのp103を行っていますが、llc -march=riscv64 -filetype=asm riscv_test.bc がうまくいかないようです。
お手数ですが、ご対応いただけると助かります。

以下、ログです
// page103と同じ実施した結果
llvm-user@ca9a8bc8b8f3:/llvm_book$ export PATH=/llvm_book/llvm-project/build/bin:$PATH
llvm-user@ca9a8bc8b8f3:/llvm_book$ cd llvm-project/work/riscv_test
clang -emit-llvm -c riscv_test.c
llvm-user@ca9a8bc8b8f3:/llvm_book/llvm-project/work/riscv_test$ clang -emit-llvm -c riscv_test.c
llvm-user@ca9a8bc8b8f3:/llvm_book/llvm-project/work/riscv_test$ ls
riscv_test.bc riscv_test.c
//アセンブリファイル生成でエラー 対応できないアセンブリ命令がある????
llc -march=riscv64 -filetype=asm riscv_test.bc
llvm-user@ca9a8bc8b8f3:/llvm_book/llvm-project/work/riscv_test$ llc -march=riscv64 -filetype=asm riscv_test.bc
'x86-64' is not a recognized processor for this target (ignoring processor)
'generic' is not a recognized processor for this target (ignoring processor)
'+cx8' is not a recognized feature for this target (ignoring feature)
'+fxsr' is not a recognized feature for this target (ignoring feature)
'+mmx' is not a recognized feature for this target (ignoring feature)
'+sse' is not a recognized feature for this target (ignoring feature)
'+sse2' is not a recognized feature for this target (ignoring feature)
'+x87' is not a recognized feature for this target (ignoring feature)
'generic' is not a recognized processor for this target (ignoring processor)
'x86-64' is not a recognized processor for this target (ignoring processor)
'generic' is not a recognized processor for this target (ignoring processor)
'+cx8' is not a recognized feature for this target (ignoring feature)
'+fxsr' is not a recognized feature for this target (ignoring feature)
'+mmx' is not a recognized feature for this target (ignoring feature)
'+sse' is not a recognized feature for this target (ignoring feature)
'+sse2' is not a recognized feature for this target (ignoring feature)
'+x87' is not a recognized feature for this target (ignoring feature)
'generic' is not a recognized processor for this target (ignoring processor)
LLVM ERROR: Cannot select: t9: ch,glue = RISCVISD::CALL t6, TargetGlobalAddress:i64<i32 (i8*, ...)* @printf> 0 [TF=1], Register:i64 $x10, RegisterMask:Untyped, t6:1
t7: i64 = TargetGlobalAddress<i32 (i8*, ...)* @printf> 0 [TF=1]
t5: i64 = Register $x10
t8: Untyped = RegisterMask
t6: ch,glue = CopyToReg t4, Register:i64 $x10, t20
t5: i64 = Register $x10
t20: i64 = ADDI t19, TargetGlobalAddress:i64<[2 x i8]* @.str> 0 [TF=3]
t19: i64 = LUI TargetGlobalAddress:i64<[2 x i8]* @.str> 0 [TF=4]
t17: i64 = TargetGlobalAddress<[2 x i8]* @.str> 0 [TF=4]
t18: i64 = TargetGlobalAddress<[2 x i8]* @.str> 0 [TF=3]
In function: main
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc -march=riscv64 -filetype=asm riscv_test.bc

  1. Running pass 'Function Pass Manager' on module 'riscv_test.bc'.
  2. Running pass 'RISCV DAG->DAG Pattern Instruction Selection' on function '@main'
    #0 0x00005563514ab62c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /llvm_book/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:0
    RISCVアセンブリ生成が失敗してしまう #1 0x00005563514ab6e3 PrintStackTraceSignalHandler(void*) /llvm_book/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:0
    READMEの "LLVMビルド時の推奨オプション" について #2 0x00005563514a93a1 llvm::sys::RunSignalHandlers() /llvm_book/llvm-project/llvm/lib/Support/Signals.cpp:71:0
    FAILED after trying to install LLVM by the command "ninja". #3 0x00005563514aafad SignalHandler(int) /llvm_book/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:0
    誤記報告:P33のメモリストア命令の記述について #4 0x00007f8365c8c980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
    LLVMのバックエンドを作るための第一歩の章について #5 0x00007f836493de87 raise (/lib/x86_64-linux-gnu/libc.so.6+0x3ee87)
    riscv-toolsのビルドが失敗する #6 0x00007f836493f7f1 abort (/lib/x86_64-linux-gnu/libc.so.6+0x407f1)
    [FYI] LLVM 15でのチャレンジ #7 0x00005563513f07aa llvm::install_bad_alloc_error_handler(void ()(void, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool), void*) /llvm_book/llvm-project/llvm/lib/Support/ErrorHandling.cpp:130:0
    [FYI] MacOS Catalinaでのビルドについて #8 0x00005563513f05ac llvm::report_fatal_error(llvm::StringRef, bool) /llvm_book/llvm-project/llvm/lib/Support/ErrorHandling.cpp:90:0
    riscv-toolsのビルドが失敗する(その2) #9 0x00005563512b228d std::remove_reference<llvm::SelectionDAGISel::UpdateChains(llvm::SDNode*, llvm::SDValue, llvm::SmallVectorImplllvm::SDNode*&, bool)::'lambda'(llvm::SDNode*, llvm::SDNode*)&>::type&& std::move<llvm::SelectionDAGISel::UpdateChains(llvm::SDNode*, llvm::SDValue, llvm::SmallVectorImplllvm::SDNode*&, bool)::'lambda'(llvm::SDNode*, llvm::SDNode*)&>(llvm::SelectionDAGISel::UpdateChains(llvm::SDNode*, llvm::SDValue, llvm::SmallVectorImplllvm::SDNode*&, bool)::'lambda'(llvm::SDNode*, llvm::SDNode*)&) /usr/include/c++/7/bits/move.h:98:0
    誤記報告: P195の作成するファイルの名前、P513のテスト実行コマンドについて #10 0x00005563512b19c6 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) /llvm_book/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3666:0
    誤記報告: P195の作成するファイルの名前、P513のテスト実行コマンドについて #11 0x000055634fdcd3c4 llvm::RISCVDAGToDAGISel::SelectCode(llvm::SDNode*) /llvm_book/llvm-project/build/lib/Target/RISCV/RISCVGenDAGISel.inc:459585:0
    誤記報告:P325の表5について #12 0x000055634fdcbdf8 llvm::RISCVDAGToDAGISel::Select(llvm::SDNode*) /llvm_book/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:779:0
    誤記報告:P333のLLVMをコンパイルしてテストするについて #13 0x00005563512a3f17 llvm::SelectionDAGISel::DoInstructionSelection() /llvm_book/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1118:0
    Chipyardのインストールについて #14 0x00005563512a31f4 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /llvm_book/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:957:0
    LLVMのビルドについて #15 0x00005563512a18d3 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&) /llvm_book/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:711:0
    報告:P210〜P213のconstants2.llの扱い #16 0x00005563512a65c3 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /llvm_book/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1611:0
    P147のデータレイアウトの指定について #17 0x00005563512a04e9 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /llvm_book/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:506:0
    誤記報告:P71 riscv-toolsをインストールする #18 0x000055634fdcd395 llvm::RISCVDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /llvm_book/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h:37:0
    誤記報告 #19 0x00005563504c8d2d llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /llvm_book/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:72:0
    誤記報告 : P201~202 の定数について #20 0x0000556350af9eee llvm::FPPassManager::runOnFunction(llvm::Function&) /llvm_book/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1435:0
    質問:P274 #21 0x0000556350afa197 llvm::FPPassManager::runOnModule(llvm::Module&) /llvm_book/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1481:0
    質問:P337 #22 0x0000556350afa5bf (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /llvm_book/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1550:0
    LLVMのバックエンドを作るための第一歩のビルドエラー #23 0x0000556350af57a7 llvm::legacy::PassManagerImpl::run(llvm::Module&) /llvm_book/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:541:0
    Dockerイメージubuntu_1804_onlyenv が起動できない #24 0x0000556350afae49 llvm::legacy::PassManager::run(llvm::Module&) /llvm_book/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1678:0
    Rocket-ChipとBOOMのシュミレーション環境準備について #25 0x000055634f8ca899 compileModule(char**, llvm::LLVMContext&) /llvm_book/llvm-project/llvm/tools/llc/llc.cpp:687:0
    P.51 図2の出典が明記されていない。 #26 0x000055634f8c857d main /llvm_book/llvm-project/llvm/tools/llc/llc.cpp:385:0
    P99LLVMのコンパイルが失敗する #27 0x00007f8364920c87 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c87)
    LLVMのビルドをDebugビルドからReleaseビルド変更した場合に関して #28 0x000055634f8c74ca _start (/llvm_book/llvm-project/build/bin/llc+0x12a84ca)
    Aborted (core dumped)

// x86test.c で実施した結果 こちらはOKの模様
llvm-user@ca9a8bc8b8f3:/llvm_book/llvm-project/work/llvm$ clang -emit-llvm -c x86test.c
lvm-user@ca9a8bc8b8f3:/llvm_book/llvm-project/work/llvm$ llc x86test.bc -filetype=asm
llvm-user@ca9a8bc8b8f3:/llvm_book/llvm-project/work/llvm$ ls -l
total 44
-rwxr-xr-x 1 llvm-user llvm-user 8240 Jul 27 01:00 a.out
-rw-r--r-- 1 llvm-user llvm-user 3128 Jul 27 01:48 x86test.bc
-rw------- 1 llvm-user llvm-user 104 Jul 26 13:08 x86test.c
-rw------- 1 llvm-user llvm-user 2635 Jul 26 13:08 x86test.ll
-rw------- 1 llvm-user llvm-user 1580 Jul 27 01:49 x86test.s
llvm-user@ca9a8bc8b8f3:/llvm_book/llvm-project/work/llvm$ cat x86test.s
.text
.file "x86test.c"
.globl main # -- Begin function main
.p2align 4, 0x90
.type main,@function
main: # @main
.cfi_startproc

%bb.0: # %entry

pushq	%rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
@pekujapan
Copy link
Author

すみません。 下記と同じ内容かもしれませんので調査してみます。
#1 0x00005563514ab6e3 PrintStackTraceSignalHandler(void*) /llvm_book/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:0

@pekujapan
Copy link
Author

調査したところ。 #1 と同じ問題で解決したようです。
お騒がせしました。

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants