-
Notifications
You must be signed in to change notification settings - Fork 149
Open
Description
libc.so.6!abort (Unknown Source:0)
libLLVM.so.21.1!llvm::llvm_unreachable_internal(const char * msg, const char * file, unsigned int line) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\Support\ErrorHandling.cpp:244)
libLLVM.so.21.1!operator()(const struct {...} * const __closure, const IP & I) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\Target\NVPTX\NVPTXLowerArgs.cpp:312)
libLLVM.so.21.1!convertToParamAS(llvm::Use * OldUse, llvm::Value * Param, bool HasCvtaParam, bool IsGridConstant) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\Target\NVPTX\NVPTXLowerArgs.cpp:317)
libLLVM.so.21.1!handleByValParam(const llvm::NVPTXTargetMachine & TM, llvm::Argument * Arg) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\Target\NVPTX\NVPTXLowerArgs.cpp:557)
libLLVM.so.21.1!runOnKernelFunction(const llvm::NVPTXTargetMachine & TM, llvm::Function & F) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\Target\NVPTX\NVPTXLowerArgs.cpp:671)
libLLVM.so.21.1!processFunction(llvm::Function & F, llvm::NVPTXTargetMachine & TM) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\Target\NVPTX\NVPTXLowerArgs.cpp:695)
libLLVM.so.21.1!(anonymous namespace)::NVPTXLowerArgsLegacyPass::runOnFunction((anonymous namespace)::NVPTXLowerArgsLegacyPass * const this, llvm::Function & F) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\Target\NVPTX\NVPTXLowerArgs.cpp:701)
libLLVM.so.21.1!llvm::FPPassManager::runOnFunction(llvm::FPPassManager * const this, llvm::Function & F) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\IR\LegacyPassManager.cpp:1398)
libLLVM.so.21.1!llvm::FPPassManager::runOnModule(llvm::FPPassManager * const this, llvm::Module & M) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\IR\LegacyPassManager.cpp:1444)
libLLVM.so.21.1!(anonymous namespace)::MPPassManager::runOnModule((anonymous namespace)::MPPassManager * const this, llvm::Module & M) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\IR\LegacyPassManager.cpp:1513)
libLLVM.so.21.1!llvm::legacy::PassManagerImpl::run(llvm::legacy::PassManagerImpl * const this, llvm::Module & M) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\IR\LegacyPassManager.cpp:531)
libLLVM.so.21.1!llvm::legacy::PassManager::run(llvm::legacy::PassManager * const this, llvm::Module & M) (\home\mixu\software\llvm-project-21.1.7\llvm\lib\IR\LegacyPassManager.cpp:1640)
libclang-cpp.so.21.1!(anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline((anonymous namespace)::EmitAssemblyHelper * const this, clang::BackendAction Action, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> > & OS, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile> > & DwoOS) (\home\mixu\software\llvm-project-21.1.7\clang\lib\CodeGen\BackendUtil.cpp:1260)
libclang-cpp.so.21.1!(anonymous namespace)::EmitAssemblyHelper::emitAssembly((anonymous namespace)::EmitAssemblyHelper * const this, clang::BackendAction Action, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> > OS, clang::BackendConsumer * BC) (\home\mixu\software\llvm-project-21.1.7\clang\lib\CodeGen\BackendUtil.cpp:1284)
libclang-cpp.so.21.1!clang::emitBackendOutput(clang::CompilerInstance & CI, clang::CodeGenOptions & CGOpts, llvm::StringRef TDesc, llvm::Module * M, clang::BackendAction Action, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> > OS, clang::BackendConsumer * BC) (\home\mixu\software\llvm-project-21.1.7\clang\lib\CodeGen\BackendUtil.cpp:1449)
libclang-cpp.so.21.1!clang::BackendConsumer::HandleTranslationUnit(clang::BackendConsumer * const this, clang::ASTContext & C) (\home\mixu\software\llvm-project-21.1.7\clang\lib\CodeGen\CodeGenAction.cpp:316)
libclang-cpp.so.21.1!clang::MultiplexConsumer::HandleTranslationUnit(clang::MultiplexConsumer * const this, clang::ASTContext & Ctx) (\home\mixu\software\llvm-project-21.1.7\clang\lib\Frontend\MultiplexConsumer.cpp:339)
libclang-cpp.so.21.1!clang::ParseAST(clang::Sema & S, bool PrintStats, bool SkipFunctionBodies) (\home\mixu\software\llvm-project-21.1.7\clang\lib\Parse\ParseAST.cpp:183)
libclang-cpp.so.21.1!clang::ASTFrontendAction::ExecuteAction(clang::ASTFrontendAction * const this) (\home\mixu\software\llvm-project-21.1.7\clang\lib\Frontend\FrontendAction.cpp:1341)
libclang-cpp.so.21.1!clang::CodeGenAction::ExecuteAction(clang::CodeGenAction * const this) (\home\mixu\software\llvm-project-21.1.7\clang\lib\CodeGen\CodeGenAction.cpp:1111)
libclang-cpp.so.21.1!clang::FrontendAction::Execute(clang::FrontendAction * const this) (\home\mixu\software\llvm-project-21.1.7\clang\lib\Frontend\FrontendAction.cpp:1221)
libclang-cpp.so.21.1!clang::CompilerInstance::ExecuteAction(clang::CompilerInstance * const this, clang::FrontendAction & Act) (\home\mixu\software\llvm-project-21.1.7\clang\lib\Frontend\CompilerInstance.cpp:1055)
libclang-cpp.so.21.1!clang::ExecuteCompilerInvocation(clang::CompilerInstance * Clang) (\home\mixu\software\llvm-project-21.1.7\clang\lib\FrontendTool\ExecuteCompilerInvocation.cpp:299)
cc1_main(llvm::ArrayRef<char const*> Argv, const char * Argv0, void * MainAddr) (\home\mixu\software\llvm-project-21.1.7\clang\tools\driver\cc1_main.cpp:297)
ExecuteCC1Tool(llvm::SmallVectorImpl<char const*> & ArgV, const llvm::ToolContext & ToolContext) (\home\mixu\software\llvm-project-21.1.7\clang\tools\driver\driver.cpp:223)
clang_main(int Argc, char ** Argv, const llvm::ToolContext & ToolContext) (\home\mixu\software\llvm-project-21.1.7\clang\tools\driver\driver.cpp:264)
main(int argc, char ** argv) (\home\mixu\software\llvm-project-21.1.7\build\tools\clang\tools\driver\clang-driver.cpp:17)
here is the debugging info
Unsupported instruction
UNREACHABLE executed at /home/mixu/software/llvm-project-21.1.7/llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp:312!
%6 = atomicrmw fadd ptr %"value.i'ipg_unwrap.i", double %5 monotonic, align 8
%6 = atomicrmw fadd ptr %"value.i'ipg_unwrap.i", double %5 monotonic, align 8
; Function Attrs: mustprogress nofree noinline norecurse nounwind willreturn memory(readwrite, inaccessiblemem: none)
define ptx_kernel void @_ZN8Cromwell8Patterns35one_dimensional_kernel_cuda_reverseINS_11CommonModel11CellZoneUDF23priv_CM_CzUDF_ScaTraTbl24OperationScalarPopulatorEEEvjT_S6_(i32 noundef %size, ptr noundef readnone byval(%"struct.Cromwell::CommonModel::CellZoneUDF::priv_CM_CzUDF_ScaTraTbl::OperationScalarPopulator") align 8 captures(none) %operation, ptr noundef byval(%"struct.Cromwell::CommonModel::CellZoneUDF::priv_CM_CzUDF_ScaTraTbl::OperationScalarPopulator") align 8 captures(none) %d_operation) local_unnamed_addr #11 comdat {
entry:
%0 = call ptr addrspace(101) @llvm.nvvm.internal.addrspace.wrap.p101.p0(ptr %d_operation)
%1 = call ptr addrspace(101) @llvm.nvvm.internal.addrspace.wrap.p101.p0(ptr %operation)
%2 = tail call noundef i32 @llvm.nvvm.read.ptx.sreg.tid.x() #142
%3 = tail call noundef i32 @llvm.nvvm.read.ptx.sreg.ntid.x() #142
%4 = tail call noundef i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #142
%mul.i = mul i32 %3, %4
%add.i = add i32 %mul.i, %2
%cmp.not.i = icmp ult i32 %add.i, %size
br i1 %cmp.not.i, label %if.end.i, label %diffe_ZN8Cromwell8Patterns34one_dimensional_kernel_cuda_deviceINS_11CommonModel11CellZoneUDF23priv_CM_CzUDF_ScaTraTbl24OperationScalarPopulatorEEEvjPv.exit
if.end.i: ; preds = %entry
%conv.i.i = zext i32 %add.i to i64
%"'ipl.i" = load ptr, ptr %d_operation, align 8, !tbaa !15, !alias.scope !22, !noalias !25
%"'ipl.i1" = addrspacecast ptr %"'ipl.i" to ptr addrspace(1)
%"'ipl.i2" = addrspacecast ptr addrspace(1) %"'ipl.i1" to ptr
%"arrayidx.i.i'ipg_unwrap.i" = getelementptr inbounds nuw double, ptr %"'ipl.i2", i64 %conv.i.i
%5 = load double, ptr %"arrayidx.i.i'ipg_unwrap.i", align 8, !tbaa !27, !alias.scope !29, !noalias !32
store double 0.000000e+00, ptr %"arrayidx.i.i'ipg_unwrap.i", align 8, !tbaa !27, !alias.scope !29, !noalias !32
%"value.i'ipg_unwrap.i3" = getelementptr inbounds i8, ptr addrspace(101) %0, i64 16
%"value.i'ipg_unwrap.i" = getelementptr inbounds nuw i8, ptr %d_operation, i64 16
%"value.i'ipg_unwrap.i3.gen" = addrspacecast ptr addrspace(101) %"value.i'ipg_unwrap.i3" to ptr
%6 = atomicrmw fadd ptr %"value.i'ipg_unwrap.i", double %5 monotonic, align 8
br label %diffe_ZN8Cromwell8Patterns34one_dimensional_kernel_cuda_deviceINS_11CommonModel11CellZoneUDF23priv_CM_CzUDF_ScaTraTbl24OperationScalarPopulatorEEEvjPv.exit
diffe_ZN8Cromwell8Patterns34one_dimensional_kernel_cuda_deviceINS_11CommonModel11CellZoneUDF23priv_CM_CzUDF_ScaTraTbl24OperationScalarPopulatorEEEvjPv.exit: ; preds = %entry, %if.end.i
ret void
}
%"value.i'ipg_unwrap.i" = getelementptr inbounds nuw i8, ptr %d_operation, i64 16
%"value.i'ipg_unwrap.i3" = getelementptr inbounds i8, ptr addrspace(101) %0, i64 16
%6 = atomicrmw fadd ptr %"value.i'ipg_unwrap.i", double %5 monotonic, align 8
ptr
%"value.i'ipg_unwrap.i" = getelementptr inbounds nuw i8, ptr %d_operation, i64 16
ptr %d_operation
; Function Attrs: mustprogress nofree noinline norecurse nounwind willreturn memory(readwrite, inaccessiblemem: none)
define ptx_kernel void @_ZN8Cromwell8Patterns35one_dimensional_kernel_cuda_reverseINS_11CommonModel11CellZoneUDF23priv_CM_CzUDF_ScaTraTbl24OperationScalarPopulatorEEEvjT_S6_(i32 noundef %size, ptr noundef readnone byval(%"struct.Cromwell::CommonModel::CellZoneUDF::priv_CM_CzUDF_ScaTraTbl::OperationScalarPopulator") align 8 captures(none) %operation, ptr noundef byval(%"struct.Cromwell::CommonModel::CellZoneUDF::priv_CM_CzUDF_ScaTraTbl::OperationScalarPopulator") align 8 captures(none) %d_operation) local_unnamed_addr #11 comdat {
entry:
%0 = call ptr addrspace(101) @llvm.nvvm.internal.addrspace.wrap.p101.p0(ptr %d_operation)
%1 = call ptr addrspace(101) @llvm.nvvm.internal.addrspace.wrap.p101.p0(ptr %operation)
%2 = tail call noundef i32 @llvm.nvvm.read.ptx.sreg.tid.x() #142
%3 = tail call noundef i32 @llvm.nvvm.read.ptx.sreg.ntid.x() #142
%4 = tail call noundef i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #142
%mul.i = mul i32 %3, %4
%add.i = add i32 %mul.i, %2
%cmp.not.i = icmp ult i32 %add.i, %size
br i1 %cmp.not.i, label %if.end.i, label %diffe_ZN8Cromwell8Patterns34one_dimensional_kernel_cuda_deviceINS_11CommonModel11CellZoneUDF23priv_CM_CzUDF_ScaTraTbl24OperationScalarPopulatorEEEvjPv.exit
if.end.i: ; preds = %entry
%conv.i.i = zext i32 %add.i to i64
%"'ipl.i" = load ptr, ptr %d_operation, align 8, !tbaa !15, !alias.scope !22, !noalias !25
%"'ipl.i1" = addrspacecast ptr %"'ipl.i" to ptr addrspace(1)
%"'ipl.i2" = addrspacecast ptr addrspace(1) %"'ipl.i1" to ptr
%"arrayidx.i.i'ipg_unwrap.i" = getelementptr inbounds nuw double, ptr %"'ipl.i2", i64 %conv.i.i
%5 = load double, ptr %"arrayidx.i.i'ipg_unwrap.i", align 8, !tbaa !27, !alias.scope !29, !noalias !32
store double 0.000000e+00, ptr %"arrayidx.i.i'ipg_unwrap.i", align 8, !tbaa !27, !alias.scope !29, !noalias !32
%"value.i'ipg_unwrap.i3" = getelementptr inbounds i8, ptr addrspace(101) %0, i64 16
%"value.i'ipg_unwrap.i" = getelementptr inbounds nuw i8, ptr %d_operation, i64 16
%"value.i'ipg_unwrap.i3.gen" = addrspacecast ptr addrspace(101) %"value.i'ipg_unwrap.i3" to ptr
%6 = atomicrmw fadd ptr %"value.i'ipg_unwrap.i", double %5 monotonic, align 8
br label %diffe_ZN8Cromwell8Patterns34one_dimensional_kernel_cuda_deviceINS_11CommonModel11CellZoneUDF23priv_CM_CzUDF_ScaTraTbl24OperationScalarPopulatorEEEvjPv.exit
diffe_ZN8Cromwell8Patterns34one_dimensional_kernel_cuda_deviceINS_11CommonModel11CellZoneUDF23priv_CM_CzUDF_ScaTraTbl24OperationScalarPopulatorEEEvjPv.exit: ; preds = %entry, %if.end.i
ret void
}
ways to reproduce the unsupport of atomicrw without enzyme
Metadata
Metadata
Assignees
Labels
No labels