Summary: | OpenCL kernel fails to compile with R600 LLVM backend | ||
---|---|---|---|
Product: | Mesa | Reporter: | Grigori Goronzy <greg> |
Component: | Drivers/Gallium/r600 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED MOVED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | |||
Bug Blocks: | 99553 | ||
Attachments: |
Kernel source code with headers
Possible Fix Possible Fix Part 2 Fix part 3 |
Created attachment 86759 [details] [review] Possible Fix Does this patch help? It seems to fix the initial problem, but now I'm getting something else: PRT: /home/greg/build/llvm/include/llvm/Support/Casting.h:239: typename cast_retty<X, Y *>::ret_type llvm::cast(Y *) [X = llvm::BranchInst, Y = llvm::TerminatorInst]: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed. Stack dump: 0. Running pass 'Function Pass Manager' on module 'radeon'. 1. Running pass 'Region Pass Manager' on function '@shadow_ao' 2. Running pass 'Structurize control flow' on basic block '%if.end100' Created attachment 86760 [details] [review] Possible Fix Part 2 Try applying this patch along with the first fix. Still fails, but it's getting even further: LLVM ERROR: Not supported instr: <MCInst 292 <MCOperand Reg:1495> <MCOperand Reg:980> <MCOperand Imm:0> <MCOperand Imm:0>> Created attachment 86761 [details] [review] Fix part 3 Can you try this patch with the other two? Now it compiles fine, but locks up the GPU. This might be an issue with this particular kernel, though. Grigori, can you repost the kernel? -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/465. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 86758 [details] Kernel source code with headers The attached kernel fails to compile with this error message: PRT: /home/greg/build/llvm/lib/Target/R600/AMDILCFGStructurizer.cpp:1115: int <anonymous namespace>::AMDGPUCFGStructurizer::mergeLoop(llvm::MachineLoop *): Assertion `ExitBlkSet.size() == 1' failed. Stack dump: 0. Running pass 'Function Pass Manager' on module 'radeon'. 1. Running pass 'AMD IL Control Flow Graph structurizer Pass' on function '@shadow_ao'