Skip to content

After compiling llvm project, use Clang to compile a cuda kernel which calls cutlass gemm interface, but it report a compile error #144969

Open
@zhangzh33

Description

@zhangzh33

command is:
/data/llvm/build/bin/clang-19 -I/data/cutlass/include -I/usr/local/cuda-12.2/include --cuda-gpu-arch=sm_70 -O2 -std=c++17 --cuda-device-only -Xcuda-ptxas -v -o test.s test.cu

compile error:
clang-19: /data/llvm/clang/lib/AST/ExprClassification.cpp:72: Cl clang::Expr::ClassifyImpl(clang::ASTContext&, clang::SourceLocation*) const: Assertion `isPRValue()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /data/llvm/build/bin/clang-19 -cc1 -triple nvptx64-nvidia-cuda -aux-triple x86_64-unknown-linux-gnu -S -dumpdir test.ptx- -disable-free -clear-ast-before-backend -main-file-name test.cu -mrelocation-model static -mframe-pointer=all -fno-rounding-math -no-integrated-as -aux-target-cpu x86-64 -fcuda-is-device -mllvm -enable-memcpyopt-without-libcalls -fcuda-allow-variadic-functions -mlink-builtin-bitcode /usr/local/cuda-12.2/nvvm/libdevice/libdevice.10.bc -target-sdk-version=12.2 -target-cpu sm_70 -target-feature +ptx82 -debugger-tuning=gdb -fno-dwarf-directory-asm -fdebug-compilation-dir=/xp6/demo_cutlass -resource-dir /data/llvm/build/lib/clang/19 -internal-isystem /data/llvm/build/lib/clang/19/include/cuda_wrappers -include __clang_cuda_runtime_wrapper.h -I /data/cutlass/include -I /usr/local/cuda-12.2/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward -internal-isystem /data/llvm/build/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /usr/local/cuda-12.2/include -internal-isystem /data/llvm/build/lib/clang/19/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -std=c++17 -fdeprecated-macro -fno-autolink -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -vectorize-loops -vectorize-slp -cuid=27acb42ef6f99229 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/test-sm_70-0e74d8.s -x cuda test.cu

  1.  /data/cutlass/include/cute/numeric/integral_constant.hpp:227:1 <Spelling=/data/cutlass/include/cute/numeric/integral_constant.hpp:207:3>: at annotation token
    
  2.  /data/cutlass/include/cute/numeric/integral_constant.hpp:37:1: parsing namespace 'cute'
    

#0 0x0000598773feab36 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /data/llvm/llvm/lib/Support/Unix/Signals.inc:723:22
#1 0x0000598773feaf57 PrintStackTraceSignalHandler(void*) /data/llvm/llvm/lib/Support/Unix/Signals.inc:798:1
#2 0x0000598773fe83a7 llvm::sys::RunSignalHandlers() /data/llvm/llvm/lib/Support/Signals.cpp:105:20
#3 0x0000598773fea3ce SignalHandler(int) /data/llvm/llvm/lib/Support/Unix/Signals.inc:413:1
#4 0x0000703d15b65520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#5 0x0000703d15bb99fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#6 0x0000703d15bb99fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#7 0x0000703d15bb99fc pthread_kill ./nptl/pthread_kill.c:89:10
#8 0x0000703d15b65476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#9 0x0000703d15b4b7f3 abort ./stdlib/abort.c:81:7
#10 0x0000703d15b4b71b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#11 0x0000703d15b5ce96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#12 0x000059877a36646b clang::Expr::ClassifyImpl(clang::ASTContext&, clang::SourceLocation*) const /data/llvm/clang/lib/AST/ExprClassification.cpp:58:5
#13 0x0000598778aae760 clang::Expr::Classify(clang::ASTContext&) const /data/llvm/clang/include/clang/AST/Expr.h:407:3
#14 0x0000598779553d85 clang::Sema::DeduceAutoType(clang::TypeLoc, clang::Expr*, clang::QualType&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::TemplateSpecCandidateSet*) /data/llvm/clang/lib/Sema/SemaTemplateDeduction.cpp:5280:61
#15 0x0000598779320431 clang::Sema::CheckTemplateArgument(clang::NonTypeTemplateParmDecl*, clang::QualType, clang::Expr*, clang::TemplateArgument&, clang::TemplateArgument&, clang::Sema::CheckTemplateArgumentKind) /data/llvm/clang/lib/Sema/SemaTemplate.cpp:7879:25
#16 0x0000598779319c83 clang::Sema::CheckTemplateArgument(clang::NamedDecl*, clang::TemplateArgumentLoc&, clang::NamedDecl*, clang::SourceLocation, clang::SourceLocation, unsigned int, llvm::SmallVectorImplclang::TemplateArgument&, llvm::SmallVectorImplclang::TemplateArgument&, clang::Sema::CheckTemplateArgumentKind) /data/llvm/clang/lib/Sema/SemaTemplate.cpp:6374:45
#17 0x000059877931ac62 clang::Sema::CheckTemplateArgumentList(clang::TemplateDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo&, bool, llvm::SmallVectorImplclang::TemplateArgument&, llvm::SmallVectorImplclang::TemplateArgument&, bool, bool*, bool) /data/llvm/clang/lib/Sema/SemaTemplate.cpp:6665:32
#18 0x0000598779311f04 clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, clang::TemplateArgumentListInfo&) /data/llvm/clang/lib/Sema/SemaTemplate.cpp:4617:32
#19 0x0000598779313a48 clang::Sema::ActOnTemplateIdType(clang::Scope*, clang::CXXScopeSpec&, clang::SourceLocation, clang::OpaquePtrclang::TemplateName, clang::IdentifierInfo const*, clang::SourceLocation, clang::SourceLocation, llvm::MutableArrayRefclang::ParsedTemplateArgument, clang::SourceLocation, bool, bool, clang::ImplicitTypenameContext) /data/llvm/clang/lib/Sema/SemaTemplate.cpp:4930:40
#20 0x00005987784251ca clang::Parser::AnnotateTemplateIdTokenAsType(clang::CXXScopeSpec&, clang::ImplicitTypenameContext, bool) /data/llvm/clang/lib/Parse/ParseTemplate.cpp:1364:40
#21 0x000059877832827a clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*, clang::ImplicitTypenameContext) /data/llvm/clang/lib/Parse/ParseDecl.cpp:4165:7
#22 0x00005987782f9c39 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) /data/llvm/clang/include/clang/Parse/Parser.h:2500:38
#23 0x0000598778420f8d clang::Parser::ParseDeclarationAfterTemplate(clang::DeclaratorContext, clang::Parser::ParsedTemplateInfo&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) /data/llvm/clang/lib/Parse/ParseTemplate.cpp:238:13
#24 0x0000598778420bfb clang::Parser::ParseTemplateDeclarationOrSpecialization(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) /data/llvm/clang/lib/Parse/ParseTemplate.cpp:178:39
#25 0x000059877842067f clang::Parser::ParseDeclarationStartingWithTemplate(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&) /data/llvm/clang/lib/Parse/ParseTemplate.cpp:50:50
#26 0x000059877831fda2 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) /data/llvm/clang/lib/Parse/ParseDecl.cpp:1984:48
#27 0x00005987782ed983 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) /data/llvm/clang/lib/Parse/Parser.cpp:990:30
#28 0x000059877834ac8c clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) /data/llvm/clang/lib/Parse/ParseDeclCXX.cpp:273:5
#29 0x000059877834aaa2 clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) /data/llvm/clang/lib/Parse/ParseDeclCXX.cpp:252:22
#30 0x000059877831ffbe clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) /data/llvm/clang/lib/Parse/ParseDecl.cpp:2003:26
#31 0x00005987782ed983 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) /data/llvm/clang/lib/Parse/Parser.cpp:990:30
#32 0x00005987782ecca6 clang::Parser::ParseTopLevelDecl(clang::OpaquePtrclang::DeclGroupRef&, clang::Sema::ModuleImportState&) /data/llvm/clang/lib/Parse/Parser.cpp:763:36
#33 0x00005987782e7ce0 clang::ParseAST(clang::Sema&, bool, bool) /data/llvm/clang/lib/Parse/ParseAST.cpp:163:37
#34 0x000059877513d33a clang::ASTFrontendAction::ExecuteAction() /data/llvm/clang/lib/Frontend/FrontendAction.cpp:1192:11
#35 0x0000598774e0578a clang::CodeGenAction::ExecuteAction() /data/llvm/clang/lib/CodeGen/CodeGenAction.cpp:1147:5
#36 0x000059877513cbe4 clang::FrontendAction::Execute() /data/llvm/clang/lib/Frontend/FrontendAction.cpp:1082:38
#37 0x000059877504758f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /data/llvm/clang/lib/Frontend/CompilerInstance.cpp:1061:42
#38 0x00005987752f462f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /data/llvm/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:280:38
#39 0x0000598772057449 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /data/llvm/clang/tools/driver/cc1_main.cpp:232:40
#40 0x00005987720482d6 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /data/llvm/clang/tools/driver/driver.cpp:215:20
#41 0x000059877204882b clang_main(int, char**, llvm::ToolContext const&) /data/llvm/clang/tools/driver/driver.cpp:256:26
#42 0x0000598772083e28 main /data/llvm/build/tools/clang/tools/driver/clang-driver.cpp:17:20
#43 0x0000703d15b4cd90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#44 0x0000703d15b4ce40 call_init ./csu/../csu/libc-start.c:128:20
#45 0x0000703d15b4ce40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#46 0x0000598772047665 _start (/data/llvm/build/bin/clang-19+0x1079665)

Metadata

Metadata

Assignees

No one assigned

    Labels

    clang:frontendLanguage frontend issues, e.g. anything involving "Sema"cudaneeds-reductionLarge reproducer that should be reduced into a simpler form

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions