Issue 119917
Summary clang 20 + enzymeAd crashed while clang 19 works fine
Labels clang
Assignees
Reporter minansys
    I use the clang 20 + enzymeAd to differentiate the C++ code automatically. It works fine with Clang 19 but crashed with Clang 20 with the following msg:

				clang++: /home/mixu/software/llvm-project/llvm/lib/IR/Instruction.cpp:153: void llvm::Instruction::insertBefore(llvm::BasicBlock&, llvm::iplist_impl<llvm::simple_ilist<llvm::Instruction, llvm::ilist_iterator_bits<true>, llvm::ilist_parent<llvm::BasicBlock> >, llvm::SymbolTableListTraits<llvm::Instruction, llvm::ilist_iterator_bits<true>, llvm::ilist_parent<llvm::BasicBlock> > >::iterator): Assertion `!isa<PHINode>(this) && "Inserting PHI after debug-records!"' 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: /home/mixu/software/llvm-project/build/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_AUTO_PTR -DCromwell_CommonModel_EXPORTS -DFLUID_ENABLE_PARALLEL -DFLUID_MULTIPORT_AVAILABLE -DFLUID_USE_ADJOINT -DFLUID_USE_DVS_WRITER -DFLUID_USE_METIS -DFLUID_USE_METIS_V3 -DFLUID_USE_SUNDIALS_SOLVER -DREAL_IS_DOUBLE -D_CommonModelApi -I/mnt/d/dev/v201/Cromwell/Build_3ddp_debug_cpu/generated -I/mnt/d/dev/v201/Cromwell/Dependencies/../../FBU_Dependencies/thirdparty/compilers/gcc/linx64/include/c++/8.2.0 -I/mnt/d/dev/v201/Cromwell/Dependencies/../../FBU_Dependencies/thirdparty/compilers/gcc/linx64/include/c++/8.2.0/x86_64-pc-linux-gnu -I/mnt/d/dev/v201/Cromwell/Dependencies/magma/include -D_GLIBCXX_USE_CXX11_ABI=0 -g -fPIC -stdlib=libstdc++ -Wno-deprecated-builtins -fopenmp -std=gnu++17 -w -Wno-missing-template-arg-list-after-template-kw -fplugin=/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so -mllvm -enzyme-loose-types=1 -o CMakeFiles/Cromwell.CommonModel.dir/src/Operators/CellFieldMinMax.cxx.o -c /mnt/d/dev/v201/Cromwell/Cromwell/CFD/CommonModel/src/Operators/CellFieldMinMax.cxx
				1. <eof> parser at end of file
				2.      Optimizer
				3. Running pass "EnzymeNewPM" on module "/mnt/d/dev/v201/Cromwell/Cromwell/CFD/CommonModel/src/Operators/CellFieldMinMax.cxx"
				 #0 0x0000562904d573cf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/mixu/software/llvm-project/build/bin/clang+++0x43063cf)
				 #1 0x0000562904d550fc llvm::sys::CleanupOnSignal(unsigned long) (/home/mixu/software/llvm-project/build/bin/clang+++0x43040fc)
				 #2 0x0000562904c9ef18 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
				 #3 0x00007fc1771ea420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
				 #4 0x00007fc176a0e00b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
				 #5 0x00007fc1769ed859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
				 #6 0x00007fc1769ed729 get_sysdep_segment_value /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:509:8
				 #7 0x00007fc1769ed729 _nl_load_domain /build/glibc-LcI20x/glibc-2.31/intl/loadmsgcat.c:970:34
				 #8 0x00007fc1769fefd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
				 #9 0x00005629046a13e7 (/home/mixu/software/llvm-project/build/bin/clang+++0x3c503e7)
				#10 0x00005629046a141b llvm::Instruction::insertInto(llvm::BasicBlock*, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true, llvm::BasicBlock>, false, false>) (/home/mixu/software/llvm-project/build/bin/clang+++0x3c5041b)
				#11 0x000056290468fb97 llvm::IRBuilderDefaultInserter::InsertHelper(llvm::Instruction*, llvm::Twine const&, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true, llvm::BasicBlock>, false, false>) const (/home/mixu/software/llvm-project/build/bin/clang+++0x3c3eb97)
				#12 0x00007fc175ecd4bf llvm::PHINode* llvm::IRBuilderBase::Insert<llvm::PHINode>(llvm::PHINode*, llvm::Twine const&) const (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0x85f4bf)
				#13 0x00007fc175ecb18b llvm::IRBuilderBase::CreatePHI(llvm::Type*, unsigned int, llvm::Twine const&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0x85d18b)
				#14 0x00007fc1764678bc GradientUtils::fixLCSSA(llvm::Instruction*, llvm::BasicBlock*, bool) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xdf98bc)
				#15 0x00007fc176488dcc GradientUtils::lookupM(llvm::Value*, llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter>&, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false>>> const&, bool, llvm::BasicBlock*) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xe1adcc)
				#16 0x00007fc17645a5d0 GradientUtils::unwrapM(llvm::Value*, llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter>&, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false>>> const&, UnwrapMode, llvm::BasicBlock*, bool) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xdec5d0)
				#17 0x00007fc176489377 GradientUtils::lookupM(llvm::Value*, llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter>&, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false>>> const&, bool, llvm::BasicBlock*) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xe1b377)
				#18 0x00007fc176092561 AdjointGenerator::lookup(llvm::Value*, llvm::IRBuilder<llvm::ConstantFolder, llvm::IRBuilderDefaultInserter>&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xa24561)
				#19 0x00007fc176348e62 AdjointGenerator::visitBinaryOperator(llvm::BinaryOperator&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xcdae62)
				#20 0x00007fc176396f01 llvm::InstVisitor<AdjointGenerator, void>::visitFDiv(llvm::BinaryOperator&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd28f01)
				#21 0x00007fc17638803b llvm::InstVisitor<AdjointGenerator, void>::visit(llvm::Instruction&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd1a03b)
				#22 0x00007fc176374acb llvm::InstVisitor<AdjointGenerator, void>::visit(llvm::Instruction*) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd06acb)
				#23 0x00007fc17631f11e EnzymeLogic::CreatePrimalAndGradient(RequestContext, ReverseCacheKey const&&, TypeAnalysis&, AugmentedReturn const*, bool) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xcb111e)
				#24 0x00007fc17635e7ec AdjointGenerator::recursivelyHandleSubfunction(llvm::CallInst&, llvm::Function*, std::vector<bool, std::allocator<bool>> const&, bool, DIFFE_TYPE, bool) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xcf07ec)
				#25 0x00007fc176363984 AdjointGenerator::visitCallInst(llvm::CallInst&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xcf5984)
				#26 0x00007fc1763a5caa llvm::InstVisitor<AdjointGenerator, void>::delegateCallInst(llvm::CallInst&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd37caa)
				#27 0x00007fc1763974bf llvm::InstVisitor<AdjointGenerator, void>::visitCall(llvm::CallInst&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd294bf)
				#28 0x00007fc176388383 llvm::InstVisitor<AdjointGenerator, void>::visit(llvm::Instruction&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd1a383)
				#29 0x00007fc176374acb llvm::InstVisitor<AdjointGenerator, void>::visit(llvm::Instruction*) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd06acb)
				#30 0x00007fc17631f11e EnzymeLogic::CreatePrimalAndGradient(RequestContext, ReverseCacheKey const&&, TypeAnalysis&, AugmentedReturn const*, bool) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xcb111e)
				#31 0x00007fc17635e7ec AdjointGenerator::recursivelyHandleSubfunction(llvm::CallInst&, llvm::Function*, std::vector<bool, std::allocator<bool>> const&, bool, DIFFE_TYPE, bool) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xcf07ec)
				#32 0x00007fc176363984 AdjointGenerator::visitCallInst(llvm::CallInst&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xcf5984)
				#33 0x00007fc1763a5caa llvm::InstVisitor<AdjointGenerator, void>::delegateCallInst(llvm::CallInst&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd37caa)
				#34 0x00007fc1763974bf llvm::InstVisitor<AdjointGenerator, void>::visitCall(llvm::CallInst&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd294bf)
				#35 0x00007fc176388383 llvm::InstVisitor<AdjointGenerator, void>::visit(llvm::Instruction&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd1a383)
				#36 0x00007fc176374acb llvm::InstVisitor<AdjointGenerator, void>::visit(llvm::Instruction*) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xd06acb)
				#37 0x00007fc17631f11e EnzymeLogic::CreatePrimalAndGradient(RequestContext, ReverseCacheKey const&&, TypeAnalysis&, AugmentedReturn const*, bool) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xcb111e)
				#38 0x00007fc1762aafe4 (anonymous namespace)::EnzymeBase::HandleAutoDiff(llvm::Instruction*, unsigned int, llvm::Value*, llvm::Type*, llvm::SmallVectorImpl<llvm::Value*>&, std::map<int, llvm::Type*, std::less<int>, std::allocator<std::pair<int const, llvm::Type*>>> const&, std::vector<DIFFE_TYPE, std::allocator<DIFFE_TYPE>> const&, llvm::Function*, DerivativeMode, (anonymous namespace)::EnzymeBase::Options&, bool, llvm::SmallVectorImpl<llvm::CallInst*>&) Enzyme.cpp:0:0
				#39 0x00007fc1762ace00 (anonymous namespace)::EnzymeBase::HandleAutoDiffArguments(llvm::CallInst*, DerivativeMode, bool, llvm::SmallVectorImpl<llvm::CallInst*>&) Enzyme.cpp:0:0
				#40 0x00007fc1762b1fc0 (anonymous namespace)::EnzymeBase::lowerEnzymeCalls(llvm::Function&, std::set<llvm::Function*, std::less<llvm::Function*>, std::allocator<llvm::Function*>>&) Enzyme.cpp:0:0
				#41 0x00007fc1762b36e9 (anonymous namespace)::EnzymeBase::run(llvm::Module&) Enzyme.cpp:0:0
				#42 0x00007fc1762bc468 EnzymeNewPM::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xc4e468)
				#43 0x00007fc1762f6ddd llvm::detail::PassModel<llvm::Module, EnzymeNewPM, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/mixu/software/Enzyme/enzyme/build-20/Enzyme/ClangEnzyme-20.so+0xc88ddd)
				#44 0x0000562904742f39 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/mixu/software/llvm-project/build/bin/clang+++0x3cf1f39)
				#45 0x0000562904fe0d06 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::BackendConsumer*) BackendUtil.cpp:0:0
				#46 0x0000562904fe41d5 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/home/mixu/software/llvm-project/build/bin/clang+++0x45931d5)
				#47 0x0000562905656965 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/mixu/software/llvm-project/build/bin/clang+++0x4c05965)
				#48 0x000056290591f360 clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/mixu/software/llvm-project/build/bin/clang+++0x4ece360)
				#49 0x000056290708fe8c clang::ParseAST(clang::Sema&, bool, bool) (/home/mixu/software/llvm-project/build/bin/clang+++0x663ee8c)
				#50 0x0000562905657658 clang::CodeGenAction::ExecuteAction() (/home/mixu/software/llvm-project/build/bin/clang+++0x4c06658)
				#51 0x00005629058e2231 clang::FrontendAction::Execute() (/home/mixu/software/llvm-project/build/bin/clang+++0x4e91231)
				#52 0x000056290586f799 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/mixu/software/llvm-project/build/bin/clang+++0x4e1e799)
				#53 0x00005629059c2a51 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/mixu/software/llvm-project/build/bin/clang+++0x4f71a51)
				#54 0x0000562901f61740 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/mixu/software/llvm-project/build/bin/clang+++0x1510740)
				#55 0x0000562901f58a41 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
				#56 0x000056290569892d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
				#57 0x0000562904c9f41e llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/mixu/software/llvm-project/build/bin/clang+++0x424e41e)
				#58 0x000056290569901e clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.280) Job.cpp:0:0
				#59 0x000056290566343b clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/mixu/software/llvm-project/build/bin/clang+++0x4c1243b)
				#60 0x000056290566452b clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/mixu/software/llvm-project/build/bin/clang+++0x4c1352b)
				#61 0x000056290566de86 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/mixu/software/llvm-project/build/bin/clang+++0x4c1ce86)
				#62 0x0000562901f5dab2 clang_main(int, char**, llvm::ToolContext const&) (/home/mixu/software/llvm-project/build/bin/clang+++0x150cab2)
				#63 0x0000562901e721aa main (/home/mixu/software/llvm-project/build/bin/clang+++0x14211aa)
				#64 0x00007fc1769ef083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
				#65 0x0000562901f580ce _start (/home/mixu/software/llvm-project/build/bin/clang+++0x15070ce)
				clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
				clang version 20.0.0git (https://github.com/llvm/llvm-project.git c9fa3195f0f012a5606ec3e403a1f111b3a4e0c7)
				Target: x86_64-unknown-linux-gnu
				Thread model: posix
				InstalledDir: /home/mixu/software/llvm-project/build/bin
				Build config: +assertions
				clang++: note: diagnostic msg: 
				********************
				
				PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
				Preprocessed source(s) and associated run script(s) are located at:
				clang++: note: diagnostic msg: /tmp/CellFieldMinMax-d5118a.cpp
				clang++: note: diagnostic msg: /tmp/CellFieldMinMax-d5118a.sh
				clang++: note: diagnostic msg: 
				
********************
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to