Added support for HIP texture kernel arguments to the MetadataStreamer.
For pointers to "__hip_texture", return ValueKind::Image.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Both tests fail with compiler crashing. Must always check hasName() before using getName().
I believe this needs to be reverted, this change will not work anyway if name was stripped, which llvm does.
Comment Actions
llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -mattr=-code-object-v3 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - < test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll llc: /home/stas/work/llvm/llvm/lib/IR/Type.cpp:500: llvm::StringRef llvm::StructType::getName() const: Assertion `!isLiteral() && "Literal structs never have names"' failed. Stack dump: 0. Program arguments: /home/stas/work/llvm/bin/bin/llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -mattr=-code-object-v3 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - 1. Running pass 'CallGraph Pass Manager' on module '<stdin>'. 2. Running pass 'AMDGPU Assembly Printer' on function '@test_pointee_align' #0 0x0000000005ae8819 llvm::sys::PrintStackTrace(llvm::raw_ostream&) /home/stas/work/llvm/llvm/lib/Support/Unix/Signals.inc:494:11 #1 0x0000000005ae89c9 PrintStackTraceSignalHandler(void*) /home/stas/work/llvm/llvm/lib/Support/Unix/Signals.inc:555:1 #2 0x0000000005ae72d6 llvm::sys::RunSignalHandlers() /home/stas/work/llvm/llvm/lib/Support/Signals.cpp:67:5 #3 0x0000000005ae906b SignalHandler(int) /home/stas/work/llvm/llvm/lib/Support/Unix/Signals.inc:357:1 #4 0x00007f16e04bdf40 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x13f40) #5 0x00007f16dff5bed7 raise /build/glibc-KRRWSm/glibc-2.29/signal/../sysdeps/unix/sysv/linux/raise.c:51:1 #6 0x00007f16dff3d535 abort /build/glibc-KRRWSm/glibc-2.29/stdlib/abort.c:81:7 #7 0x00007f16dff3d40f _nl_load_domain /build/glibc-KRRWSm/glibc-2.29/intl/loadmsgcat.c:1177:9 #8 0x00007f16dff4d012 (/lib/x86_64-linux-gnu/libc.so.6+0x35012) #9 0x00000000051a5526 llvm::StructType::getName() const /home/stas/work/llvm/llvm/lib/IR/Type.cpp:0:3 #10 0x0000000003308a8d llvm::Type::getStructName() const /home/stas/work/llvm/llvm/include/llvm/IR/DerivedTypes.h:357:34 #11 0x0000000003300804 llvm::AMDGPU::HSAMD::MetadataStreamerV2::getValueKind(llvm::Type*, llvm::StringRef, llvm::StringRef) const /home/stas/work/llvm/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:108:36 #12 0x0000000003302201 llvm::AMDGPU::HSAMD::MetadataStreamerV2::emitKernelArg(llvm::Argument const&) /home/stas/work/llvm/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:362:17 #13 0x0000000003301bfe llvm::AMDGPU::HSAMD::MetadataStreamerV2::emitKernelArgs(llvm::Function const&) /home/stas/work/llvm/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:306:18 #14 0x0000000003303742 llvm::AMDGPU::HSAMD::MetadataStreamerV2::emitKernel(llvm::MachineFunction const&, llvm::SIProgramInfo const&) /home/stas/work/llvm/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp:481:3 #15 0x00000000032f6619 llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart() /home/stas/work/llvm/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp:209:1 #16 0x00000000048ec9c4 llvm::AsmPrinter::EmitFunctionBody() /home/stas/work/llvm/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:1018:3 #17 0x00000000032f8085 llvm::AMDGPUAsmPrinter::runOnMachineFunction(llvm::MachineFunction&) /home/stas/work/llvm/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp:465:3 #18 0x0000000004c0c957 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/stas/work/llvm/llvm/lib/CodeGen/MachineFunctionPass.cpp:73:8 #19 0x0000000005110109 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/stas/work/llvm/llvm/lib/IR/LegacyPassManager.cpp:1648:23 #20 0x00000000046430ab (anonymous namespace)::CGPassManager::RunPassOnSCC(llvm::Pass*, llvm::CallGraphSCC&, llvm::CallGraph&, bool&, bool&) /home/stas/work/llvm/llvm/lib/Analysis/CallGraphSCCPass.cpp:176:20 #21 0x00000000046429dc (anonymous namespace)::CGPassManager::RunAllPassesOnSCC(llvm::CallGraphSCC&, llvm::CallGraph&, bool&) /home/stas/work/llvm/llvm/lib/Analysis/CallGraphSCCPass.cpp:441:16 #22 0x0000000004642341 (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) /home/stas/work/llvm/llvm/lib/Analysis/CallGraphSCCPass.cpp:497:18 #23 0x0000000005110cd5 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/stas/work/llvm/llvm/lib/IR/LegacyPassManager.cpp:1752:23 #24 0x00000000051107f5 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/stas/work/llvm/llvm/lib/IR/LegacyPassManager.cpp:1865:16 #25 0x0000000005111251 llvm::legacy::PassManager::run(llvm::Module&) /home/stas/work/llvm/llvm/lib/IR/LegacyPassManager.cpp:1896:3 #26 0x0000000002e3e250 compileModule(char**, llvm::LLVMContext&) /home/stas/work/llvm/llvm/tools/llc/llc.cpp:604:41 #27 0x0000000002e3c8a5 main /home/stas/work/llvm/llvm/tools/llc/llc.cpp:355:13 #28 0x00007f16dff3eb6b __libc_start_main /build/glibc-KRRWSm/glibc-2.29/csu/../csu/libc-start.c:342:3 #29 0x0000000002e3c02a _start (/home/stas/work/llvm/bin/bin/llc+0x2e3c02a) Aborted (core dumped)
llvm/trunk/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp | ||
---|---|---|
107–109 ↗ | (On Diff #207856) | You cannot rely on the pointer element type, or the name of IR types |